O ambiente de desenvolvimento utilizado por padrão (IDE) deverá ter suporte ao Maven, podendo ser principalmente Eclipse ou o Netbeans na sua última versão com no mínimo os plugins para o Maven e o Subversion - SVN.
Gerenciamento da Configuração
O código e a documentação produzida deverá ser armazenado no controle de versão Subversion - SVN.
Para cada versão liberada (release) do projeto deverá ser criada uma tag no Subversion - SVN no formato X.Y.Z onde X, Y, Z são números que indicam detalhes de cada versão conforme abaixo:
X é o número da versão principal e não evolui a não ser que a funcionalidade do sistema seja profundamente alterada ou comporte uma parte totalmente nova
Y é o número da versão menor que corresponde às evoluções menos importantes ou menores
Z é facultativo e designado para uma pequena evolução de ordem meramente técnica (geralmente correção de bugs).
Testes unitários
Os testes unitários serão desenvolvidos para cada método de serviço nas camadas de serviço e enterprise.
Para facilitar a implementação dos testes da camada de serviço deverá ser utilizado os Mock Tests e contextos de testes do Spring.
Os testes unitários deverão ser desenvolvidos para cada método de serviço de persistência na camada de persistência.
Para facilitar a implementação dos testes da camada de persistência deverá ser utilizado os Mock Tests e contextos de testes do Spring.
O desenvolvimento dos testes unitários deverá utilizar o framework JUnit. Para facilitar a implementação dos testes da camada cliente deverá ser utilizado os Mock Tests do Struts.
O conjunto de dados associado aos testes unitários deverá ser fornecido com um procedimento de instalação base. Nesta especificação, os parâmetros de conexão à base deverão ser facilmente modificáveis.
Todo teste unitário que realizar modificações sobre os dados deverá retornar os dados ao estado inicial ao final do teste. Para isto deverá ser utilizado o contexto transacional de testes (AbstractTransactionalSpringContextTests) do Spring.
public class ExampleDAOTest extends AbstractTransactionalSpringContextTests {
Um procedimento para lançar todos os testes unitários em cadeia (TestSuite) poderá ser fornecido para facilitar a execução dos testes.