UC_27 - antoniodanielbf-isep/LAPR5-2021 GitHub Wiki

|| INICIO || VOLTAR ||

UC_27: Consultar Tag cloud das tags do próprio utilizador

=======================================

MENU

|| REQUISITOS || ANÁLISE || DESIGN || OBSERVAÇÕES ||

=======================================

1. Requisitos

Esclarecimento de dúvidas pelo cliente

N/A

->MENU


2. Análise

Neste UC pretende-se que o utilizador consiga ver todas as suas Tags.

SSD

Alterações ao MD

Não foi feita qualquer alteração ao MD.

Testes a Implementar

N/A

Regras de Negócio

N/A

->MENU


3. Design

NÍVEL 1

SSD

NÍVEL 2

SSD NÍVEL 2

3.1. Realização da Funcionalidade

NÍVEL 3

SD

3.2. Padrões Aplicados

User Interface

O padrão de User Interface é usado para fornecer uma interface simples de usar para apresentar os dados da TagCloud para que as partes restantes do sistema sejam separadas.

Controller

O padrão Controller foi usado para ter um controlador que pode atuar como um organizador da lógica do caso de uso.

Information Expert

Esse padrão atribui responsabilidades às classes para o domínio de negócios que ele represent.

High Cohesion, Low Coupling

Padrão usado para diminuir o acoplamento entre classes e, ao mesmo tempo, apenas atribuir a elas associações que sejam realmente coesas com o seu propósito. Em todo esse caso de uso, tentamos restringir as responsabilidades próprias de cada classe e, assim, minimizar as associações apenas ao necessário. Neste caso de uso é visível através dos DTO´s que fazem a "ponte" entre camadas e que cada classe tem apenas as responsabilidades que deve ter.

DTO

O padrão DTO fornece um objeto intermediário para transferência de dados, reduzindo o acoplamento entre o domínio e as camadas do aplicativo, permitindo o carregamento rápido do aplicativo e garantindo mais segurança. Nesse caso de uso, temos a sua implementação na classe UtilizadorTagsDTO.

Repository

O Repositório ajuda a persistir, armazenar e acessar dados. É usado na camada de Persistência para garantir a instanciação de UserRepository, onde é armazenado e tem acesso aos utilizadores. Abstrai os detalhes dos métodos que modificam o estado deste objeto.

Dependency Injection

Mantém o baixo nível de acoplamento entre os diferentes módulos do sistema. Com este princípio, ao invés de se terem dependências programas nos módulos, elas são configuradas num "container", que é responsável por "injetar" (fornecer) as dependências necessárias a cada componente.

Inversion of Dependencies

É uma forma específica de desacoplamento de módulos de software. Partem de módulos de alto nível, responsáveis pela coordenação geral e lógica, para os de baixo nível. Assim, os módulos de alto nível tornam-se independentes dos detalhes de implementação dos de baixo nível. Módulos de alto nível não devem incorporar (ou incluir) nada dos módulos de baixo nível. Os dois módulos devem trabalhar apenas com abstrações, ou seja, através do uso de interfaces. Abstrações não devem depender de detalhes de implementação, mas os detalhes é que devem depender de abstrações.

->MENU


4. Observações

->MENU


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