= Requisitos para o Novo Módulo Applications = || 01 || Implementar a estrutura da aplicação com divisão em camadas: controller, model e view || || 02 || A camada controller deve conhecer a camada view e model || || 03 || A camada model não terá acesso a camada view || || 04 || Será obrigatório implementar as camadas controller, model e view || || 05 || Registrar as ações da aplicação e os perfis de acesso às ações || || 06 || Possibilitar a associação de usuários/grupos aos perfis || || 07 || A associação de usuários/grupos aos perfis será o controle de acesso da aplicação || || 08 || A primeira fronteira da camada controller será a página de entrada do módulo || || 09 || Os dados passados para a controller deverão ser: identificador da aplicação, identificador da ação, e opcionalmente dados para consumo na execução da atividade || || 10 || A camada model deve retornar um objeto de dados VO para a camada controller || || 11 || A camada model deve ter acesso a qualquer classe de negócio do sistema || || 12 || A camada model deve ter acesso à biblioteca (lib) do módulo || || 13 || Implantar uma ferramenta para mapeamento de objetos de banco de dados || || 14 || Definir uma estrutura de armazenamento de código para aplicação, que contemple as novas características do mvc || || 15 || Obrigar a implementação de uma ação padrão para a aplicação || || 16 || Gerar o código básico da camada model || || 17 || Implementar uma estrutura de mensagens para o processo, com possibilidade de internacionalização || || 18 || A camada controller fornece dados para a camada view através de um objeto VO || || 19 || A camada de visualização tem a responsabilidade de criar as interfaces, usando ferramentas que estejam disponíveis || || 20 || A camada view deve mesclar os dados com a interface || || 21 || A camada view não deve misturar código da aplicação servidora com código html || || 22 || A camada view executa chamadas endereçadas para ações da controller, utilizando protocolo http/post || || 23 || Disponibilizar uma interface de serviço para ações da camada controller || || 24 || Autenticar as chamadas de serviço usando sessão do Expresso || || 25 || Implantar uma ferramenta para construção de interfaces, com template padrão e internacionalização || || 26 || Validar os dados no lado cliente, usando javascript, garantido adequação às propriedades dos campos, e prevenindo contra sqlinjection e xss || || 27 || É recomendável a validação de dados no lado servidor || || 28 || Criar uma biblioteca (lib) de classes utilitárias || || 29 || Possibilitar a construção de classes utilitárias pelas organizações || || 30 || Disponibilizar as classes utilitárias, para as camada model, sob demanda. Controlar a inicialização e destruição das classes através de métodos da camada model || || 31 || Construir componentes de visualização específicos para o negócio do workflow || || 32 || Executar a aplicação sob tratamento de erros || || 33 || Implementar a sinalização de erro em todos as classes utilitárias disponíveis para o sistema || || 34 || Prover um local para a armazenamento da configuração e dados constantes do sistema || || 35 || Identificar quais bibliotecas de javascript estarão disponíveis para o sistema || || 36|| O código da aplicação não poderá ter acesso à classes do módulo || || 37 || Registrar a estrutura de processos de workflow vinculados a uma aplicação || || 38 || Compartilhar os perfis de uma aplicação com os seus processos || || 39 || Associar ações de uma aplicação com atividades do processo || || 40 || Possibilitar à camada model definir operações sobre a instância: iniciar, completar, enviar, definir transição, definir usuário, atualizar atributos || || 41 || A classe de instância deverá percorrer o fluxo, executando as atividades não interativas || || 42 || A classe de instância será responsável por persistir os seus dados ||