Documento de Arquitetura de Software

Versionamento

Data Versão Descrição Autor(es)
14/11/2020 0.1 Criação do documento e adição do tópico de Introdução Murilo Loiola
17/11/2020 0.2 Adição do tópico de Visão Geral na Introdução e Adição do tópico de Escopo Murilo Loiola
18/11/2020 0.3 Adição do tópico de Tecnologias André Goretti
18/11/2020 0.4 Adição do tópico de Metas e Restrições Arquiteturais Murilo Loiola
18/11/2020 0.5 Adição do tópico de Visão Lógica, Visão de Dados, Visão de Casos de Uso Murilo Loiola, Gabriel Tiveron, André Goretti
19/11/2020 0.6 Correção no tópico de tecnologias Gabriel Tiveron
19/11/2020 0.7 Adição do diagrama de arquitetura geral Gustavo Carvalho
19/11/2020 0.8 Adição do diagrama de pacotes geral Gustavo Carvalho, Murilo Loiola
19/11/2020 0.9 Adição do tópico de Visão de Processos Murilo Loiola
19/11/2020 0.10 Adição da descrição do diagrama de pacotes e descrição dos processos Gustavo Carvalho, Murilo Loiola
20/11/2020 0.11 Adição de acrônimos e abreviações Rodrigo Dadamos
20/11/2020 0.12 Adição de diagrama de classes focado nas mais relevantes Rodrigo Dadamos
20/11/2020 0.13 Adição de diagrama de comunicação e da Visão de Implementação Rodrigo Dadamos
20/11/2020 0.14 Revisão da visão da dados Gustavo Carvalho, Rodrigo Dadamos
20/11/2020 0.15 Adicionando referências Murilo Loiola
20/11/2020 0.16 Adição do estilo arquitetural Rodrigo Dadamos
20/11/2020 0.17 Adição da visão de implantação Rodrigo Dadamos

Introdução

Finalidade

  Este documento fornece uma visão arquitetural abrangente do sistema, utilizando-se de um número de diferentes visões arquiteturais para descrever diferentes aspectos do sistema. Seu propósito é capturar e transmitir as decisões arquiteturais mais importantes que foram tomadas em relação ao sistema.

Escopo

  Este Documento de Arquitetura de Software fornece uma visão arquitetural abrangente do sistema Diário da Saúde. O sistema em questão está sendo desenvolvido por alunos da UnB-FGA com o intuito de facilitar a comunicação entre paciente e profissional da saúde em grupos de acompanhamento de UBS.

Acrônimos e Abreviações

Referências

Visão Geral

  Este documento busca informar de maneira compreensiva a arquitetura geral, bem como prover links para especificações mais detalhadas, do aplicativo Diário da Saúde. O documento traz, primeiramente, uma visão geral do sistema no tópico de Representação Arquitetural, demonstrando uma relação de macro nível entre os módulos do sistema, onde também são descritas as tecnologias utilizadas. Em seguida, há o tópico de Metas e Restrições da Arquitetura, descrevendo os requisitos e objetivos que geram impacto significativo na arquitetura. Logo após, são descritas as visões pertinentes para a compreensão da arquitetura, sendo elas: Visão de Casos de Uso, Visão Lógica, Visão de Processos, Visão de Implantação, Visão de Implementação e Visão de Dados. Por último, o tópico de Qualidade.

Representação Arquitetural

  Este documento apresenta a arquitetura como uma série de visões: Visão de Casos de Uso, Visão Lógica. Essas visões são descritas e detalhadas através de diagramas UML acompanhados de descrições curtas.

Estilos arquiteturais

   Estilo arquitetural é uma forma de expressar a organização de uma estrutura e o conjunto pré-definido de subsistemas e suas responsabilidades.

   Considerando o desenvolvimento incremental e a modelagem de interfaces de subsistemas, o estilo arquitetural utilizado é uma adaptação do N-Camadas, junto a uma adaptação do padrão arquitetural MVC, com N igual a 4. Para a comunicação entre as camadas de backend e frontend é utilizado o estilo REST.

Camadas

diagrama_caso_de_uso_profissional_da_saude

   O estilo N-Camadas permite a alteração dos dados independentemente da sua representação, assim como permite alterar a representação independentemente dos dados. Dessa forma, os dados podem ser apresentados de maneiras diferentes e de forma sincronizada. Nota-se uma tendência de acoplamento entre as controllers e as models no backend.

Tecnologias

Back-End

Front-End

Banco de Dados

Outros

Metas e Restrições Arquiteturais

Restrições

Metas

Visão de Casos de Uso

  Neste tópico há uma descrição da visualização dos casos de uso da arquitetura de software. Aqui são descritos cenários e/ou casos de uso que representam uma funcionalidade significativa para o sistema.
  Os casos de uso deste sistema estão listados abaixo. Aqueles destacados em negrito possuem impacto significativo na arquitetura e são descritos posteriormente neste mesmo tópico.


Casos de uso - Paciente

diagrama_caso_de_uso_paciente

Casos de uso - Profissional da Saúde

diagrama_caso_de_uso_profissional_da_saude

Descrição dos casos de uso significativos

Visão Lógica

  Neste tópico há uma descrição das principais classes e pacotes que compõem o sistema. As descrições estão posicionadas logo após os diagramas de Classe e Pacotes.

Diagrama de Classes

  O diagrama de classes sem métodos e atributos colapsados pode ser visto no diagrama de classe completo.

diagrama_de_classe

Principais classes

Diagrama de Pacotes

diagrama_caso_de_uso_profissional_da_saude

Diagrama de comunicação

  Uma importante interação entre objetos é a interação entre Profissional de Saúde e o Grupo descrita no Diagrama de Comunicação:

diagrama_comunicação_profissional

Visão de Processos

  Neste tópico há uma descrição dos principais processos que ocorrem durante a utilização do sistema. Para acompanhar a descrição dos principais processos, seguem os Diagramas de Sequência pertinentes.

Diagramas de Sequência

diagrama_de_sequência_1

diagrama_de_sequência_2

diagrama_de_sequência_3

Principais processos

Visão de Implantação

  O aplicativo mobile fica hospedado na Google Play Store disponível para download no celular do usuário com sistema operacional Android. O aplicativo comunica-se com o backend atráves da internet com uma conexão wireless ou conexão móvel (3G/4G). O backend fica hospedado em uma instância EC2 da AWS com servidor ubuntu. A base de dados também fica hospedada na instância Amazon EC2. A comunicação do backend com a base de dados é feita pela rede local (LAN).

Diagrama de Implantação

diagrama_de_implatação

Visão de Implementação

  Após a autenticação, pacientes podem responder as questões dos formulários dos grupos aos quais pertencem, fornecendo os dados para a geração de relatórios individuais. Profissionais de saúde, após a autenticação, podem gerenciar grupos e gerar relatórios individuias e gerais. Uma representação de como esses importantes componentes do sistema são conectados pode ser vista no diagramas de componentes.

Diagrama de Componentes

diagrama_de_componente

Visão de Dados

  Neste tópico há uma descrição do modelo de persistência de dados utilizado no sistema, representando como os modelos são persistidos no banco de dados não-relacional MongoDB.

Modelo Grupo

Formato dos dados

Exemplo

  {
    "_id":1,
    "groupName":"Grupo de Hipertensos",
    "idForm":1,
    "idUBS":1,
    "users":[12,23,56,12]
  }

Modelo Profissional da Saúde

Formato dos dados

Exemplo

 {
   "id":1,
   "name":"Ipsolum",
   "password":"76bb1ff3699e0af3750e9fa119dea44e",
   "cpf":1234567890,
   "role":"healthProfessional",
 }

   Considerando o paradigma de orientação a objetos, temos a descrição do comportamento das entidades do sistema utilizando o DE-R e para definir as regras de negócio entre as entidades temos o Diagrama Lógico.

Qualidade