ABC reuso Reengenharia Primeiras concluses ABC reuso Anlise
ABC reuso Reengenharia Primeiras conclusões
ABC reuso Análise do Código Fonte • Arquitetura em Camadas Fachada (SIAlocacao. Plus) Componentes Básicos Negócio (Cadastros) (Entidades Persistência (Databases) de Negócio)
ABC reuso Fachada • Classe concreta – “impede” a substituição por outra implementação • Acoplado com implementação dos Cadastros • Apenas delegação
ABC reuso Negócio • Possui interface • Negócio implementado aqui – delegação para persistência • Usa genetico. dll (só roda no windows) • Alto acoplamento
ABC reuso Persistência • Possui interface • SQL • Subclasse de Database • Alto grau de código semelhante
ABC reuso Componentes Básicos • Entidades de Negócio • Não possuem inteligência (negócio fica em outra camada) • Usam o padrão Data Transfer Object
ABC reuso Outros • Estrutura de empacotamento inadequada (alto acoplamento) – interfaces e implementação no mesmo pacote – existência de ciclos de dependências • Tratamento de exceções complexo (muitas exceções)
ABC reuso Conclusão • Arquitetura deve ser modificada para facilitar o reuso – uso do GRASP (General Responsibility Assignment Software Patterns) – uso de interfaces • Identificação de 2 domínios: controle acadêmico (vertical) e alocação de recursos (horizontal)
ABC reuso Conclusão • Ferramentas (frameworks) indicadas para aumentar reusabilidade – Hibernate (Persistência - domínio horizontal) – Pico. Container (Component Model) • promove inversion of control
ABC reuso Conclusão • Importante implementação NEUTRA, sem dependência com nenhum Component Model (Pico. Container permite isso). • Existe uma. DLL sendo utilizada (genetico. dll) - só roda no windows. . . reimplementação em Java aumentaria o reuso)
ABC reuso Questões • Priorizar o reuso do código existente ou reutilizar o que for possível? • Engenharia de domínio: trabalhar com dois domínios, ou combinar em um domínio híbrido?
- Slides: 11