US3007 - ArthurSchiavom/gestao-informacao-chao-de-fabrica--projeto-academico GitHub Wiki

USDemo1

1. Requisitos

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.

2. Análise

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.

SSD SSD

3. Design

3.1. Realização da Funcionalidade

SD SD

3.2. Diagrama de Classes

CD CD

3.3. Padrões Aplicados

  • 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

3.4. Testes

  • 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.

4. Implementação

Foi utilizada uma classe desenvolvida por Carl Eriksson que está disponível publicamente no GitHub. Esta classe gera tabelas em texto para a consola.

⚠️ **GitHub.com Fallback** ⚠️