generated from UnBArqDsw2024-1/RepositoryTemplate
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/UnBArqDsw2024-1/2024.1_G7_M…
- Loading branch information
Showing
23 changed files
with
837 additions
and
10 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
# 4.1.2 Visão de Dados | ||
|
||
|
||
|
||
A visão de dados é um componente essencial na arquitetura de sistemas, responsável por descrever a estrutura, organização e fluxo dos dados dentro de uma aplicação. Ela fornece uma compreensão detalhada de como os dados são armazenados, acessados e manipulados, servindo como um guia para garantir a integridade, consistência e segurança das informações no sistema. | ||
<br> | ||
|
||
No projeto em questão, foram desenvolvidos um Modelo Entidade-Relacionamento (ME-R), que foi validado pelo Product Owner do projeto, depois disso foi feito um Diagrama Entidade-Relacionamento (DE-R) e um Diagrama Lógico de Dados (DLD). O ME-R e o DE-R representam graficamente as entidades do sistema e suas relações, enquanto o DLD detalha a estrutura lógica dos dados, mostrando como eles serão organizados e manipulados no banco de dados. Esses artefatos são fundamentais para garantir que a modelagem dos dados esteja alinhada com os requisitos do sistema, facilitando a implementação e manutenção. | ||
|
||
|
||
|
||
## 4.1.2.1 ME-R | ||
No projeto em questão, foi desenvolvido um Modelo Entidade-Relacionamento (ME-R) como parte da visão de dados. O ME-R foi criado com o objetivo de representar as principais entidades e seus relacionamentos no sistema, servindo como uma base fundamental para a estruturação do banco de dados. | ||
|
||
Após a elaboração do ME-R, foi realizada uma validação por meio de uma entrevista online com o Product Owner (João Costa) do projeto. A entrevista ocorreu via Microsoft Teams e teve como propósito garantir que o modelo atendesse aos requisitos e expectativas do cliente, bem como identificar possíveis ajustes ou melhorias. Essa validação foi essencial para assegurar o alinhamento entre o modelo de dados proposto e as necessidades do projeto, contribuindo para a qualidade e a eficácia da solução desenvolvida. | ||
|
||
Gravação da Reunião de validação do ME-R : https://www.youtube.com/watch?v=p-feHWuKib0 | ||
|
||
<br> | ||
|
||
### Entidades: | ||
- CLIENTE | ||
- ENDERECO | ||
- TELEFONE | ||
- PRODUTO | ||
- AVALIACAO | ||
- VENDA | ||
- FORNECEDOR | ||
- PRODUTOCOR | ||
- PRODUTOTAMANHO | ||
- PRODUTOCATEGORIA | ||
|
||
<br> | ||
|
||
### Atributos: | ||
- CLIENTE (senha, nome, cpf, rg, dataNascimento, email) | ||
- ENDERECO(cep, rua, numero, complemento) | ||
- TELEFONE(ddi, ddd, numero) | ||
- PRODUTO (idProduto, nome, categoria, descricao, valorAquisicao, valorVenda, imagem,quantidade, cnpjFornecedor ) | ||
- AVALIACAO (cpfCliente, idProduto, comentario, dataPostagem, nota) | ||
- VENDA (idVenda, cpfCliente, valor, descricao) | ||
- FORNECEDOR(nome, cnpj, email, numero) | ||
- PRODUTOCOR ((hexadecimal), cor,) | ||
- PRODUTOTAMANHO ((centimetros), tamanho) | ||
- PRODUTOCATEGORIA ((descricao), categoria) | ||
|
||
<br> | ||
|
||
### Relacionamentos: | ||
- CLIENTE - participa - VENDA | ||
|
||
cardinalidade 1:m | ||
- VENDA - contém - PRODUTO | ||
|
||
cardinalidade n:m | ||
- CLIENTE - possui - ENDERECO | ||
|
||
cardinalidade n:m | ||
- CLIENTE - detém - TELEFONE | ||
cardinalidade 1:n | ||
- CLIENTE - faz - AVALIACAO | ||
|
||
cardinalidade 1:n | ||
- FORNECEDOR - tem - TELEFONE | ||
|
||
cardinalidade 1:n | ||
- PRODUTO - fornecido - FORNECEDOR | ||
|
||
cardinalidade n:m | ||
- PRODUTO - tem - PRODUTOCOR | ||
|
||
cardinalidade n:m | ||
- PRODUTO - disponivel - PRODUTOTAMANHO | ||
|
||
cardinalidade n:m | ||
- PRODUTO - pertence - PRODUTOCATEGORIA | ||
|
||
cardinalidade n:m | ||
|
||
## 4.1.2.2 DE-R | ||
|
||
O DE-R, desenvolvido no BRModelo com base no ME-R depois de validado pelo P.O, capturou as principais entidades e seus relacionamentos, servindo como base para a modelagem do banco de dados. | ||
|
||
<br> | ||
|
||
 | ||
<h6 align = "center">Figura 1: Diagrama Entidade-Relacionamento</h6> | ||
|
||
|
||
## 4.1.2.3 DLD | ||
|
||
A partir do diagrama entidade-relacionamento, foi possível gerar o DLD, que detalha a implementação lógica das entidades e suas interações no banco de dados relacional. | ||
|
||
 | ||
<h6 align = "center">Figura 2: Diagrama Lógico de Dados </h6> | ||
Referências | ||
|
||
>PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 7. ed. Porto Alegre: AMGH, 2016. | ||
Versionamento | ||
|
||
| Versão | Alteração | Responsável | Revisor | Data de realização | Data de revisão | | ||
| :------: | :---: | :-----: | :----: | :----: | :-----: | | ||
| 1.0 | Inicio da estrutura do documento | [Guilherme Oliveira](https://github.com/GG555-13)|[Rodrigo Wright](https://github.com/RodrigoWright) | 14/08/2024 | 14/08/2024 | | ||
| 1.1 | Adicionando o texto ME-R, DE-R e DLD | [Guilherme Oliveira](https://github.com/GG555-13)|[Rodrigo Wright](https://github.com/RodrigoWright) | 14/08/2024 | 14/08/2024 | | ||
| 1.2 | Participantes da entrevista e texto | [Guilherme Oliveira](https://github.com/GG555-13) [Rodrigo Wright](https://github.com/RodrigoWright) [JoãoCosta](https://github.com/jvcostta) |[Rodrigo Wright](https://github.com/RodrigoWright) | 15/08/2024 | 15/08/2024 | | ||
| 1.3 | Elaboração e adição do DE-R e DLD | [Rodrigo Wright](https://github.com/RodrigoWright) |[Guilherme Oliveira](https://github.com/GG555-13) | 15/08/2024 | 15/08/2024 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,187 @@ | ||
# Documento de Arquitetura de Software (DAS) - Chatbot de Atendimento | ||
|
||
## O documento em questão foi criado e desenvolvido pelos alunos [Miguel de Frias](https://github.com/migueldefrias) e [Guilherme Basilio](https://github.com/GuilhermeBES) | ||
|
||
## 1. Introdução | ||
|
||
O **Documento de Arquitetura de Software (DAS)** É um documento crucial no desenvolvimento de sistemas, oferecendo uma visão aprofundada da estrutura e organização do sistema. Ele detalha os principais componentes, suas interações e os princípios de design que orientam sua construção, ajudando a comunicar de forma eficaz entre todas as partes envolvidas e assegurando uma compreensão compartilhada do sistema. | ||
|
||
Este DAS é focado no sistema de gerenciamento de um chatbot de atendimento para o projeto "My Market", uma plataforma de e-commerce para uma loja. O documento segue o modelo arquitetural 4+1, que inclui cinco visões diferentes para capturar e abordar diversas preocupações dos stakeholders, conforme proposto por Philippe Kruchten em 1995. | ||
|
||
## 2. Objetivo | ||
|
||
Este documento tem como objetivo ilustrar a arquitetura do sistema de gerenciamento de chatbot de atendimento do projeto "MyMarket", empregando o modelo arquitetural **4+1**. A abordagem sistemática aborda as diferentes preocupações dos stakeholders e oferece uma visão clara e acessível do sistema. | ||
|
||
 | ||
|
||
<h6 align = "center">Figura 1: Exemplo de modelo arquitetural 4+1. Fonte: Mateus Orlando, Pedro Lucas e Thiago Vivan.</h6> | ||
|
||
## 3. Visão de Casos de Uso | ||
|
||
A visão de casos de uso ilustra como o sistema de gerenciamento do chatbot de atendimento interage com os usuários e outros sistemas. Cada caso de uso especifica uma funcionalidade particular e as interações necessárias para executar essa funcionalidade. | ||
|
||
Casos de uso elicitados: | ||
<center> | ||
|
||
| Código | Descrição do Caso de Uso | | ||
|---------|--------------------------------------------------| | ||
| UC01 | Consulta de Produtos | | ||
| UC02 | Acompanhamento de Pedido | | ||
| UC03 | Perguntas Frequentes (FAQ) | | ||
| UC04 | Suporte Técnico | | ||
| UC05 | Recomendações Personalizadas | | ||
| UC06 | Trocas e Devoluções | | ||
| UC07 | Suporte em Tempo Real | | ||
|
||
|
||
Tabela 2: Casos de uso elicitados | ||
|
||
</center> | ||
|
||
### Diagrama de Casos de Uso (DCU) | ||
|
||
O diagrama de caso de uso pode ser visualizado abaixo: | ||
<div align = "center"><img src="https://raw.githubusercontent.com/UnBArqDsw2024-1/2024.1_G7_My_Market/main/docs/Imagens/Diagramas/Miguel_GuilhermeB_UseCases_DAS.jpeg" alt="Diagrama de Casos de Uso"> | ||
<p>Figura 2 - Diagrama de Casos de Uso<br> Autor: Guilherme Basilio e Miguel de Frias</p></div> | ||
|
||
## 4. Visão Lógica | ||
|
||
A Visão Lógica apresenta a estrutura estática do sistema, detalhando a organização dos principais componentes, como classes e pacotes, e suas interações. Ela é fundamental para entender as funcionalidades e a arquitetura interna do sistema. | ||
|
||
### 4.1 Diagrama de Classes | ||
|
||
O diagrama de classes exibe a estrutura do sistema de gerenciamento do chatbot de atendimento, detalhando as classes, seus atributos, métodos e as relações entre elas. Esse diagrama é essencial para o desenvolvimento e a documentação do sistema. | ||
|
||
O diagrama de classes pode ser visualizado abaixo: | ||
<div align = "center"><img src="https://raw.githubusercontent.com/UnBArqDsw2024-1/2024.1_G7_My_Market/main/docs/Imagens/Diagramas/Miguel_GuilhermeB_DiagramaDeClasses_DAS.png" alt="Diagrama de Classes"> | ||
<p>Figura 3 - Diagrama de Classes<br> Autor: Guilherme Basilio e Miguel de Frias</p></div> | ||
|
||
### 4.2 Diagrama de Estados | ||
|
||
Um diagrama de estados é uma representação gráfica que descreve os estados possíveis de um objeto ao longo do tempo, juntamente com as transições entre esses estados. Ele mostra como o sistema reage a eventos ou condições, detalhando as mudanças de estado de um objeto específico. Usado frequentemente para modelar o comportamento dinâmico de sistemas, o diagrama ajuda a entender e projetar processos, especialmente aqueles que envolvem ciclos de vida, como o processamento de pedidos ou interações de usuários. | ||
|
||
O diagrama de estados a seguir, ilustra os diferentes estados que ocorrem durante a funcionalidade Troca e Devolução, oferecida pelo chatbot. | ||
|
||
*Fluxo de Estados do Chatbot:* | ||
<div align = "center"><img src="https://raw.githubusercontent.com/UnBArqDsw2024-1/2024.1_G7_My_Market/main/docs/Imagens/Diagramas/Miguel_GuilhermeB_DiagramaDeEstados_DAS.png" alt="Diagrama de Estados"> | ||
<p>Figura 4 - Diagrama de Estados<br> Autor: Guilherme Basilio e Miguel de Frias </p></div> | ||
|
||
### 4.3 Diagrama de Pacotes | ||
|
||
O diagrama de pacotes organiza e representa a estrutura modular do chatbot de atendimento, destacando a forma como os pacotes são agrupados e as dependências entre eles. | ||
|
||
O diagrama de pacotes pode ser visualizado a seguir: | ||
|
||
<div align = "center"><img src="https://raw.githubusercontent.com/UnBArqDsw2024-1/2024.1_G7_My_Market/main/docs/Imagens/Diagramas/Miguel_GuilhermeB_DiagramaDePacotes_DAS.png" alt="Diagrama de Pacotes"> | ||
<p>Figura 5 - Diagrama de Pacotes<br> Autor: Guilherme Basilio e Miguel de Frias</p></div> | ||
|
||
## 5. Visão de Processo | ||
|
||
A visão de processo detalha como as atividades fundamentais do chatbot de atendimento são realizadas, incluindo as interações e funções principais. | ||
|
||
### Usuário | ||
|
||
| Nome | Descrição | Destino | | ||
|---------------------------|-----------------------------------------------|---------------------------| | ||
| u1: iniciarConversa() | Inicia uma conversa com o chatbot | Chatbot de Atendimento | | ||
| u2: fazerPergunta() | Envia uma pergunta para o chatbot | Chatbot de Atendimento | | ||
| u3: fornecerFeedback() | Fornece feedback sobre a conversa | Chatbot de Atendimento | | ||
| u4: encerrarConversa() | Finaliza a interação com o chatbot | Chatbot de Atendimento | | ||
|
||
*Tabela 3: Descrição dos processos do Usuário* | ||
|
||
### Sistema de Atendimento | ||
|
||
| Nome | Descrição | Destino | | ||
|---------------------------|-----------------------------------------------|---------------------------| | ||
| sa1: processarPergunta() | Processa as perguntas enviadas pelos usuários | Chatbot de Atendimento | | ||
| sa2: gerarResposta() | Gera respostas baseadas nas perguntas | Chatbot de Atendimento | | ||
| sa3: registrarFeedback() | Registra o feedback fornecido pelos usuários | Banco de Dados | | ||
| sa4: finalizarConversa() | Finaliza a conversa e armazena informações | Banco de Dados | | ||
|
||
*Tabela 4: Descrição dos processos do Sistema de Atendimento* | ||
|
||
## 6. Visão de Implementação | ||
|
||
A Visão de Implementação detalha a organização do sistema em termos de módulos e pacotes de código. Ela ilustra como os componentes estão estruturados e como interagem entre si para garantir uma implementação eficiente. | ||
|
||
### 6.1 Diagrama de Componentes | ||
|
||
O diagrama de Componentes pode ser visualizado abaixo: | ||
<div align = "center"><img src="https://raw.githubusercontent.com/UnBArqDsw2024-1/2024.1_G7_My_Market/main/docs/Imagens/Diagramas/Miguel_GuilhermeB_DiagramaDeComponentes_DAS%20.png" alt="Diagrama de Componentes"> | ||
<p>Figura 6 - Diagrama de Componentes<br> Autor: Guilherme Basilio e Miguel de Frias</p></div> | ||
|
||
### 6.2 Explicação dos Componentes do Chatbot | ||
|
||
#### Chatbot Engine: | ||
|
||
- Dialogue Management: Gerencia o fluxo de conversa e o estado da interação com o usuário. | ||
- Intent Recognition: Identifica a intenção do usuário com base nas entradas fornecidas. | ||
- Response Generation: Gera respostas adequadas com base nas intenções identificadas. | ||
|
||
#### Integration APIs: | ||
|
||
- User Data API: Interface para acessar e manipular dados de usuários. | ||
- Product Data API: Interface para acessar e manipular dados de produtos. | ||
- Order Data API: Interface para acessar e manipular dados de pedidos. | ||
|
||
Esses componentes permitem que o chatbot interaja com o sistema existente de forma eficaz, acessando dados relevantes e realizando operações necessárias para atender às solicitações dos usuários. | ||
|
||
|
||
## 7. Visão de Implantação | ||
|
||
A Visão de Implantação descreve a distribuição física dos componentes de software e como eles interagem em um ambiente de produção. | ||
|
||
Os diagramas de implantação são fundamentais para arquitetos de software e engenheiros de sistemas, pois permitem visualizar e planejar a distribuição física dos componentes de software. Eles asseguram que todos os aspectos físicos da implantação do sistema sejam compreendidos e documentados, facilitando a comunicação entre as partes interessadas e garantindo uma implementação bem-sucedida. | ||
|
||
Este documento apresenta a arquitetura de implantação de um sistema distribuído, com ênfase em eficiência, segurança e escalabilidade. O sistema é organizado em vários nós principais: Cliente, Proxy, Web Server e Database, cada um contendo componentes e entidades específicas. Vale ressaltar que o diagrama foi criado sem a definição completa das tecnologias a serem utilizadas e pode ser ajustado conforme as decisões do grupo evoluem. | ||
|
||
<div align = "center"><img src="https://raw.githubusercontent.com/UnBArqDsw2024-1/2024.1_G7_My_Market/main/docs/Imagens/Diagramas/Miguel_GuilhermeB_DiagramaDeImplantacao_DAS.png" alt="Diagrama de implantação" alt="Diagrama de implantação"> | ||
<p>Figura 7 - Diagrama de Implantação<br> Autor: Guilherme Basilio e Miguel de Frias </p></div> | ||
|
||
## 7. Arquitetura de Implantação | ||
|
||
### 7.1 Nó Cliente | ||
|
||
**Componentes:** | ||
- **Interface de Chat:** Permite ao usuário interagir com o chatbot de atendimento. | ||
|
||
**Comunicação:** | ||
- Conecta-se ao servidor através de HTTPS para garantir a segurança da comunicação. | ||
|
||
### 7.2 Nó Servidor de Aplicação | ||
|
||
**Componentes:** | ||
- **Gerenciamento de Conversas:** Lida com a lógica e fluxo das interações do chatbot. | ||
- **API de Integração:** Facilita a comunicação com outros sistemas e serviços externos. | ||
|
||
**Comunicação:** | ||
- Estabelece conexão com o banco de dados utilizando SQL para armazenar e recuperar informações. | ||
|
||
### 7.3 Nó Banco de Dados | ||
|
||
**Componentes:** | ||
- **MySQL:** Armazena dados relacionados às interações do chatbot, histórico de conversas e perfis de usuários. | ||
|
||
### 7.4 Fluxo de Dados e Controle | ||
|
||
- **Do Cliente para o Servidor:** As interações do usuário são enviadas ao servidor por meio de HTTPS. | ||
- **Do Servidor para o Banco de Dados:** O servidor realiza consultas e atualizações no banco de dados conforme necessário. | ||
- **Respostas ao Cliente:** O servidor processa as informações e envia as respostas de volta para o cliente. | ||
|
||
### Conclusão | ||
|
||
A arquitetura descrita para o sistema de chatbot de atendimento oferece uma solução eficaz e escalável, com foco em segurança e usabilidade. A visão detalhada da distribuição física e das interações entre os componentes proporciona uma base sólida para a implementação e manutenção contínua do sistema. | ||
|
||
## Referências | ||
|
||
> **Arquitetura e Desenho de Software - Aula DAS**. Material de apoio em slides. Milene Serrano. | ||
## Histórico de Versões | ||
|
||
| Versão | Data | Descrição | Autor(es) | Revisor(es) | | ||
| ------ | ----------- | ----------- | --------- | ----------- | | ||
| `1.0` | 12/08/2024 | Criação da estrutura do artefato | [Miguel de Frias](https://github.com/migueldefrias) e [Guilherme Basilio](https://github.com/GuilhermeBES)| [Miguel de Frias](https://github.com/migueldefrias) | | ||
| `2.0` | 12/08/2024 | Desenvolvimento do Artefato | [Miguel de Frias](https://github.com/migueldefrias) e [Guilherme Basilio](https://github.com/GuilhermeBES) | [Miguel de Frias](https://github.com/migueldefrias) | | ||
| `3.0` | 12/08/2024 | Adição do diagrama de Casos de Uso | [Miguel de Frias](https://github.com/migueldefrias) e [Guilherme Basilio](https://github.com/GuilhermeBES)| [Miguel de Frias](https://github.com/migueldefrias) | | ||
| `4.0` | 15/08/2024 | Adição dos diagramas restantes | [Miguel de Frias](https://github.com/migueldefrias) e [Guilherme Basilio](https://github.com/GuilhermeBES) | [Guilherme Basilio](https://github.com/GuilhermeBES)| |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# Sumário DAS | ||
|
||
O grupo se dividiu em pequenos grupos de forma que cada grupo desenvolvesse um docoumento DAS e depois criaríamos um documento único, que uniria a ideia de cada grupo. | ||
|
||
**Ressalto que houve um abandono e falta de compromisso de alguns membros nessa entrega e apenas 4 grupos participaram o que dificultou a realização da mesma.** | ||
|
||
Dessa maneira, segue o hyperlink do DAS de cada grupo: | ||
|
||
| Grupo | Visão | | ||
|-------------------------------------------------|-------------------------------------------------------------------------| | ||
| [Mateus Orlando](https://github.com/MateusPy), [Pedro Lucas](https://github.com/AlefMemTav) e [Thiago Vivan](https://github.com/thiago-vivan) | - | | ||
| [Guilherme Nishimura](https://github.com/Guilherme-Nishi) e [Pedro Henrique](https://github.com/pehenobra2) | - | | ||
| [Miguel de Frias](https://github.com/migueldefrias) e [Guilherme Basilio](https://github.com/GuilhermeBES) | - | | ||
| [Guilherme Oliveira](https://github.com/GG555-13)|[Rodrigo Wright](https://github.com/RodrigoWright) | - | | ||
|
||
|
||
## Versionamento | ||
|
||
| Versão | Alteração | Responsável | Revisor | Data de realização | | ||
| :------: | :---: | :-----: | :----: | :----: | | ||
| 1.0 | Criação do sumário do DAS | [Mateus Orlando](https://github.com/MateusPy) | - | 15/08/2024 | |
Oops, something went wrong.