Ajuda com arquitetura

1 resposta
M

Trabalho em um sistema que vai ser evoluído para uma nova normativa do governo e que vai ter um alto impacto.
Hoje trabalhamos como modelo anemico (Action, BO e DAO) e teremos que manter a compatibilidade com a versão antiga.

Dado um conceito como: Formulario de Reclamação, Formulário de Dúvida, formulário de Auditoria…

Temos as seguintes classes:

FormularioReclamacaoAction, FormularioReclamacaoBO, formularioReclamacaoDAO.
FormularioDuvidaAction, FormularioDuvidaBO, formularioDuvidaDAO.
FormularioAuditoriaAction, FormularioAuditoriaBO, formularioAuditoriaDAO.

As entidades estendem uma entidade genérica (Formulario.java) que possui atributos genéricos a todo formulário.
As classes de negócio estendem uma entidade genérica (FormularioBO.java) que possui regra de negócio comum a todo formulário.

Cada formulário deste possui várias regras de negócio já criadas em sua respectiva BO, porém com a normativa os formulários vão ter regras adicionas e regras retiradas.

Em uma reunião preliminar, foram cogitadas as seguintes soluções:

1 - Manter as entidades entre as duas versões incluíndo novos atríbutos e quando não for necessário manter a versõa antiga, remover os atributos desnecessários.

2 - Crias novas BO’s estendendo as bo’s antigas especializando o que for necessário.

3 - Criar novas BO’s totalmente separado e quando o cliente utilizar versão antiga, chamar as bo’s antigas, quando utilizar a nova, chamar as novas BO’s.

4 - Criar novas JSP’s e controlar o forward com base na versão utilizada pelo cliente.

Minhas observações:

Item 2, acredito que o sistema fique muito frágil, devido a qualquer alteração no módulo antigo, quebrar o funcionamento das novas classes. Sem contar que quando o suporte a versão antiga acabar, teremos que refatorar as classes.

Item 3 - Teremos por algum tempo código duplicado, pois conforme eu descrevi o problema, alguns conceitos permanecerão iguais. Porém quando o suporte a versão antiga acabar, fica mais fácil retirar do sistema os conceitos que não serão mais necessários.

Os demais items, não consegui identificar nenhum grande problema.

Como exposto problema, gostaria de perguntar aos colegas, se vocês já passaram por alguma situação parecida e como foi a resolução do problema ou se alguém tem uma alternativa para o problema.

OBS: O domínio do problema é diferente do especificado, porém a lógica é parecida.

Obrigado.

1 Resposta

J

Ola matracaweb, tud bem?

De um pesquisada sobre camadas anti-corrupção.

Pelo que eu entendi no seu post, elas podem ser úteis.

falow.

Criado 20 de maio de 2013
Ultima resposta 23 de mai. de 2013
Respostas 1
Participantes 2