UC_10 - antoniodanielbf-isep/LAPR5-2021 GitHub Wiki

|| INICIO || VOLTAR ||

UC_10 -> Pesquisar utilizadores que conheça na rede, e pedir ligação de utilizador.

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

MENU

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

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

1. Requisitos

Monday, 1 de November de 2021 às 13:58

Boa tarde, Gostaria de saber, se possível, como é suposto efetuar a pesquisa de utilizadores. Quem se encontra apto para "ser encontrado"? Após encontrarmos a pessoa pretendida o pedido de ligação é enviado automaticamente ou é uma ação distinta? A minha grande duvida reside no fluxo de ações deste caso de uso. Obrigado pela compreensão, Márcio Brandão.

a pesquisa de utilizadores pode ser efetuado pelos atributos do perfil de utilizador (email, tags, pais, etc.)
os pedidos de ligação são iniciados pelo utilizador

Boa tarde, Ao seguimento da resposta, faz sentido o sistema responder a uma pesquisa de utilizadores todos os utilizadores com atributos não específicos? (Por exemplo, uma pesquisa por utilizadores de Portugal -> o sistema responde com todos os utilizadores com atributo pais = Portugal) Não seria mais correto a pesquisa mostrar apenas resultados com atributos mais específicos/únicos ao utilizador e usar os não específicos para filtrar os resultados? Cumprimentos, João Romano Barbosa

de um ponto de vista funcional pretende-se que o resultado da pesquisa seja o mais completo possivel. 
tratando-se de um grande número de resultados, o sistema deve estar desenhado para suportar 
e ssa realidade, por exemplo, infinte scrolling, paginação, número máximo de resultados   

Caro cliente, "Também é possível o utilizador recém registado pesquisar utilizadores que conheça na rede e fazer o pedido de ligação." A minha dúvida surge na dificuldade em perceber o que significa conhecer um utilizador na rede. Seria baseado nas tags em comum, nível de ligação, etc...? Atenciosamente, Eduardo Monteiro

pesquisa pelo username

Boa tarde, estimado cliente, Gostaria de saber quais os parâmetros de pesquisa que o utilizador recorre a fim de encontrar utilizadores conhecidos por ele? Cumprimentos, João Pereira em teoria poderá pesquisar por qualquer um dos atributos caracterizadores do utlizador. devem considerar pelo menos a pesquisa por email, nome, cidade/país bem como combinações "AND" desses atributos

->MENU


2. Análise

O utilizador pode pesquisar utilizadores que conheça na rede. Ao pesquisar utilizadores o utilizador pode selecionar um para o qual cria um pedido de ligação.

Alterações ao MD

Até ao momento não são necessárias alterações no MD.

Testes a Implementar

Testar possibilidade do utilizador não conhecer ninguém na rede. Testar possibilidade do utilizador tentar fazer pedido a um outro utilizador com quem já tenha uma ligação. Testar possibilidade do utilizador fazer pedido de ligação a utilizador que tenha um pedido de introdução pendente

Regras de Negócio

  • rede → os utilizadores terão uma rede associada onde poderá selecionar utilizadores com quem se pode ligar.
  • pedido de ligação → o utilizador terá a possibilidade de fazer um pedido de ligação a outro utilizador.

->MENU


3. Design

NÍVEL 1

SSD

NÍVEL 2

SSDN2

3.1. Realização da Funcionalidade

NÍVEL 3

SD

3.2. Diagrama de Classes

Nesta secção deve apresentar e descrever as principais classes envolvidas na realização da funcionalidade.

3.3. Padrões Aplicados

Nesta secção deve apresentar e explicar quais e como foram os padrões de design aplicados e as melhores práticas.

User Interface

O padrão de User Interface é usado para fornecer uma interface simples de usar para o utilizador e servir de intermediário entre o utilizador e as partes funcionais so sistema. Neste caso é utilizada a classe PesquisarutilizadoresUI.

Controller

O padrão Controller foi usado para ter um controlador (neste caso de uso PesquisarutilizadoresController) 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 representa, como é o caso do PedideLigacao, Relacionamento, ForcaDeLIgacao e Tag.

Creator

Normalmente as regras 1 e 2, neste caso de uso, o creator foi usado para instanciar uma ForcaDeLigacao, uma Tag, um PedidoDeLigacao e um Relacionamento.

High Cohesion, Low Coupling

Padrão usado para diminuir o acoplamento entre classes e, ao mesmo tempo, apenas atribuir-lhes 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. Como pode ser visto neste caso de uso:

UtilizadoresDTO salva os dados que resultam da pesquisa com a informação dos utilizadores

Relacionamento é usado para instanciar um Relacionamento;

UtilizadoresRepository é usado para armazenar os utilizadores da rede social

PesquisarutilizadoresController trata de toda a lógica de atualização de um evento delegando etapas intermediárias às outras classes.

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

Repository

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

->MENU


3.4. Testes

4. Implementação

Implementação não concluída, sendo que a pesquisa está concluída faltando apenas efetuar o pedido de ligação.

5. Integração/Demonstração

N/A

6. Observações

Implementação não concluída, sendo que a pesquisa está concluída faltando apenas efetuar o pedido de ligação.

->MENU


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