US3007 - ArthurSchiavom/gestao-informacao-chao-de-fabrica--projeto-academico GitHub Wiki
Como Gestor de Chão de Fábrica, eu pretendo consultar as notificações de erros de processamento arquivadas.
O sistema deve disponibilizar vários filtros.
Os filtros disponibilizados são:
- Escolha das linhas de produção a incluir no resultado
- Escolha dos tipos de notificação a incluir no resultado
O gestor de chão de fábrica inicia o caso de uso. O sistema mostra uma lista de linhas de produção e pede para o utilizador escolher aquelas que deseja incluir no resultado. O utilizador escolhe. O sistema mostra uma lista de tipos de notificações e pede para o utilizador escolher aqueles que deseja incluir no resultado. O utilizador escolhe. O sistema mostra o resultado e pede que o utilizador prima enter para continuar. O utilizador pressiona enter.
- Repository Pattern - Para abstrair o sistema de persistência de objetos, facilitando a implementação com diferentes tecnologias.
- Simple Factory - Na instanciação de repositórios.
- Data Transfer Object - Para poder isolar o domínio da UI.
- Controller - Para separar o layer da interface do layer de domínio, introduzindo então um layer de aplicação encarregue do processamento, mas não responsável por caracterizar o negócio ou interagir com o utilizador.
- Polymorphism & Template method - Usado na implementação do repositório específico de cada entidade bem como na implementação da UI específica deste caso de uso.
- Dependency inversion & Protected variation & Strategy - No uso de respositórios como uma instância da interface que implementam.
- Liskov Substitution principle & Dependency inversion - Em todas as implementações de interfaces e extensões de classes.
- Pure fabrication - Controller e UI.
- Information expert & HC/LC - Sempre presente: cada classe tem uma responsabilidade bem definida, visando a sua independência de outras classes.
- Singleton - Utilizado na RepositoryFactory
- Na seleção de linhas de produção ou tipos de notificações, enviar como input valores abaixo do limite minínimo.
- Na seleção de linhas de produção ou tipos de notificações, enviar como input valores acima do limite máximo.
- Na seleção de linhas de produção ou tipos de notificações, enviar como input a wildcard.
- Na seleção de linhas de produção ou tipos de notificações, enviar como input multiplos valores, alguns válidos e um inválido.
- Na seleção de linhas de produção ou tipos de notificações, enviar como input valores que não são números.
- Na seleção de linhas de produção ou tipos de notificações, enviar como input um valor que não é número.
- Na seleção de linhas de produção ou tipos de notificações, enviar como input números e virgulas sem conteudo entre elas.
Foi utilizada uma classe desenvolvida por Carl Eriksson que está disponível publicamente no GitHub. Esta classe gera tabelas em texto para a consola.


