Skip to content

Documento de Arquitetura

Felipe Borges edited this page Sep 4, 2017 · 28 revisions

Controle de Versão

Data Versão Descrição Autor
24/08 1.0 Estrutura básica do documento, inicio da Introdução e do Tamanho e Desempenho Hiroshi
28/08 2.0 Adição do Definições, Referências e Começar Representação de Arquitetura Guilherme
28/08 2.1 Finalização do Tópico Representação de Arquitetura Guilherme
29/08 2.2 Adição do Tópico Visão de Casos de Uso Natália Rodrigues
29/08 2.3 Adição dos Tópicos Tamanho e Desempenho e Qualidade Lucas kishima
29/08 2.4 Iniciando tópico Visão de Implementação Felipe Borges
30/08 2.5 Adição do Tópico Restrições e Metas de Arquitetura Mateus Nóbrega
30/08 2.6 Conclusão do tópico Visão de Implementa Felipe Borges
30/08 2.7 estruturação do tópico Introdução Visão Geral de acordo com os tópicos do documento e seus conteúdos Felipe Borges
31/08 2.8 Ajustes no Tópico Visão de Casos de Uso Natália Rodrigues
31/08 2.9 Adição do Tópico Visão Lógica Michel Camargo
31/08 3.0 Ajustes no Tópico Restrições e Metas de Arquitetura Mateus Nóbrega
31/08 3.1 Ajustes no Tópico Introdução Escopo, Restrições e Metas e Referências Hiroshi
31/08 3.2 Revisão Hiroshi, Felipe Borges, Guilherme
31/08 3.3 Revisão dos Tópicos Tamanho e desempenho e Qualidade Lucas Kishima
31/08 3.4 Revisão do Tópico Visão Lógica Michel Camargo
02/09 3.5 Revisão do Diagrama de pacotes e do Diagrama de classes Felipe e Mateus

Sumário

  1. Introdução
  2. Representação de Arquitetura
  3. Restrições e Metas de Arquitetura
  4. Visão de Caso de Uso
  5. Visão Lógica
  6. Tamanho e Desempenho
  7. Qualidade

Este documento tem como objetivo apresentar uma visão da arquitetura escolhida para o software. Para isso são utilizadas abordagens diversas em diferentes aspectos do sistema, de modo a explicitar as decisões arquiteturais que foram tomadas pela equipe durante a definição do escopo. Cada tópico irá explicar e formalizar as decisões com base nos requisitos do sistema.

1.2 Escopo

Serão descritos neste documento, os componentes de software, padrões, plataformas de desenvolvimento e frameworks utilizados para o desenvolvimento do sistema que tem como foco auxiliar os profissionais da saúde durante a prescrição de medicamentos, exames e orientações. O documento explora a arquitetura para o sistema explicitando suas características como metas e restrições arquiteturais desenvolvido por alunos da disciplina de Métodos de Desenvolvimento de Software da Faculdade Gama.

Este documento é dividido nas seguintes secções:

  • Introdução: Apresentação da finalidade e organização do documento.

  • Representação de Arquitetura: Demonstra a arquitetura que usaremos no sistema.

  • Restrições e Metas de Arquitetura: Mostra os requisitos de usabilidade do software o os objetivos que impactam significativamente a aplicação.

  • Visão de Casos de Uso: Mostra todos casos de uso da aplicação.

  • Visão de Implementação: Apresenta como será implementado a arquitetura no sistema.

  • Visão Lógica: Apresenta partes importantes do projeto do ponto de vista da arquitetura e da modelagem do design.

  • Tamanho e Desempenho: Descreve as características da aplicação que impactam no desempenho.

  • Qualidade: Descreve como a escolha da arquitetura do software contribui para os recursos da aplicação.

  • MTV - Model-Template-View.
  • MVC - Model-View-Controller.
  • Profissionais de saúde - A quem compete prescrever medicamentos, exames ou recomendações.

Fundação Universidade Federal do Paraná - Documento de Arquitetura: A estrutura de tópicos do documento de Arquitetura. Disponível em: http://www.funpar.ufpr.br:8080/rup/webtmpl/templates/a_and_d/rup_sad.htm. Acesso em: 22 ago. 2017;

FREIRE, Thiago; OLIVEIRA, Rodrigo; MORENO, Augusto; NASCIMENTO, Josué; AUGUSTO, Marcelo. Projeto WikiLegis: Documento de Visão. Disponível em: https://github.com/fga-gpp-mds/2016.2-WikiLegis/wiki. Acesso em 22 ago. 2017;

BATISTA, Matheus; ARAÚJO, Igor; WILLER, Guilherme; OLIVEIRA, Vinícius; BARCELOS, Filipe; SOUSA, André. Projeto Escola X: Documento de Visão. Disponível em: https://github.com/fga-gpp-mds/2017.1-PlataformaJogosUnB/wiki/Documento-de-Arquitetura. Acesso em 22 ago. 2017;


O MVC é um padrão de arquitetura que separa a implementação das funcionalidades em camadas chamadas Model, View, Controller.

  • Model : Responsável pela gerência dos dados, lógica de aplicação e regras de negócio referente ao banco de dados do sistema.

  • View : Responsável pela interação com o usuário, define elementos de interface como botões, imagens, tabelas entre outros.

  • Controller : Responsável por receber requisições do usuário e comandar ações dentro do sistema. A controller é responsável por integrar a view e a model. Nesta camada existem os comando de manipulações de informações (enviando e recebendo requisições da model e renderizando para a view) além das regras de negócios referentes a manipulações do sistema.

A arquitetura do Django, de acordo com o DjangoBook, segue o padrão MVC da sua própria maneira como MTV. Na arquitetura MTV as os pacotes funcionam da seguinte maneira:

  • Model: É na model onde se define o banco de dados, seu comportamento, suas classes, métodos e leitura e escrita bem como suas validações. Nesta camada também é definida algumas regras de negócio referentes a manipulações do banco de dados, ou seja, a model é a camada que concentra tudo referente ao banco de dados e seu comportamento na aplicação.

  • Template: Esta camada é a interface do usuário, nela contém apenas como será apresentado as informações enviadas pela view além de comunicar para a mesma as interações do usuário com a aplicação.

  • View: A view é uma ponte entre a model e o template. Nesta camada é implementado a lógica de comunicação da aplicação com a model além de direcionar as informações que serão apresentadas para o template correto.

MTV

Figura 1- Diagrama do um MTV, retirado no site.


3.1 Metas

O sistema deve garantir a privacidade dos dados inseridos em seu banco de dados, ele deve ser eficiente e conseguir responder às requisições em poucos segundos. Ela também deverá atender aos recursos não funcionais, como o estruturamento de código, para que a manutenção do sistema ocorra de modo versátil.

O sistema vai ser suportado nos navegadores Google Chrome 60, Safari, Mozilla Firefox 55, Opera 47 e Microsoft Edge. O desenvolvimento do mesmo será feito na linguagem de programação Python, versão 3.6, com a framework de desenvolvimento web Django, versão 1.11.4, com modelo MTV. A conexão com a internet deverá ser obrigatória e a aplicação também deverá ser responsiva.


4.1 Atores

Profissionais da Saúde Os profissionais da saúde estarão aptos a se cadastrarem no sistema e convidarem pacientes para a utilização do mesmo. Eles farão a geração de receitas, terão a possibilidade de criar padrões personalizados para facilitar essa geração e, ainda, terão a viabilidade de consulta a outros receituários, assim como a marcação desses como favoritos. Os profissionais terão acesso a uma plataforma de comunicação com os pacientes.
Pacientes Os pacientes poderão se cadastrar no sistema, em conformidade com o convite recebido do profissional competente. Terão a possibilidade de comunicação com os profissionais da saúde, poderão enviar exames aos mesmos e consultar o histórico de receitas, assim como fazer a visualização das mesmas e dos seus respectivos exames.

Diagrama de Casos de Uso

Figura 2 - Diagrama de caso de uso do sistema Receituário Médico

Caso de Uso Descrição
UC01 - Realizar Login Este caso de uso permite a profissionais da saúde e pacientes a realização de login e logout, ou seja, permite a entrada e saída do sistema.
UC02 - Manter Profissionais de saúde Este caso de uso permite ao profissional da saúde a criação, edição ou exclusão do seu cadastro.
UC03 - Pesquisar Receituário Este caso de uso permite que o usuário profissional da da saúde faça pesquisas pelos receituários existentes na base de dados do sistema.
UC04 - Favoritar Receituário Este caso de uso permite que o profissional da saúde marque como favoritos receituários pesquisados.
UC05 - Convidar Este caso de uso permite que profissionais da saúde convidem pacientes a se cadastrarem no sistema.
UC06 - Conversar Este caso de uso oferece uma plataforma de comunicação entre profissionais da saúde e pacientes.
UC07 - Manter Pacientes Este caso de uso permite aos pacientes a criação, edição ou exclusão do seu cadastro.
UC08 - Enviar Exames Este caso de permite que os pacientes enviem seus exames aos profissionais da saúde por meio do receituário.
UC09 - Consultar Histórico Este caso de uso permite aos pacientes a realização de consultas ao seu histórico de receituários.
UC10 - Visualizar Exames Este caso de uso possibilita aos pacientes a visualização dos seus exames.
UC11 - Visualizar Receitas Este caso de uso possibilita aos pacientes a visualização das suas receitas.
UC12 - Manter Recomendação Este caso de uso permite ao profissional da saúde a criação, edição ou exclusão de uma recomendação.
UC13 - Manter Medicamento Este caso de uso permite ao profissional da saúde a criação, edição ou exclusão de um medicamento.
UC14 - Manter Exame Este caso de uso permite ao profissional da saúde a criação, edição ou exclusão de uma exame.

As principais classes do ponto de vista da arquitetura do software e as implementações funcionalidades são divididas pacotes que representam as camadas do modelo MTV. A divisão em pacotes está representada no diagrama abaixo.

Visão geral da aplicação do ponto de vista de pacotes e aplicativos dentro da arquitetura do sistema.

Pacotes

Figura 3 - Diagrama de pacotes do sistema Receituário Médico

Model
Pacote Nome Descrição
recipe Presciption Classe que representa os dados gerais da receita médica.
Medication Classe que representa os dados de medicamentos na aplicação.
Exam Classe que representa os dados de exames na aplicação.
Recommendation Classe que representa os dados de recomendações médicas na aplicação.
user User Classe abstrata que representa os dados gerais de usuários da aplicação comuns a médico e paciente.
Doctor Classe filha de User que representa os dados de médico na aplicação.
Patient Classe filha de User que representa os dados de paciente na aplicação.
messenger Message Classe responsável pela comunicação entre profissionais da saúde e pacientes
File Contém as informações do arquivo no banco de dados da aplicação.
View
Pacote Nome Descrição
recipe PrescriptionView Classe responsável por realizar as ações da prescrição, contém os métodos e interage com o banco de dados
user UserView Classe abstrata que contém as funcionalidades básicas de um usuário e seus atributos.
PatientView contém as funcionalidades do paciente.

Descrição das principais camadas do sistema e suas classes:

Diagrama de Classes

Figura 4 - Diagrama de classes do sistema Receituário médico

Devido à quantidade de receitas que serão mantidas no banco de dados, o tamanho do sistema tende a ser grande, haja vista que é previsto o processamento de um grande volume de dados. O desempenho do sistema será afetado por fatores como a velocidade da conexão do usuário com a internet, a quantidade de requisições sendo realizadas e a quantidade de filtros utilizados durante as buscas.


O padrão de arquitetura MTV organiza as camadas da aplicação de forma que elas se tornem mais independentes, ou seja, cada camada possui sua responsabilidade, tornando o código mais organizado e compreensível, possibilitando uma melhor visualização de onde se encontra cada aspecto do produto e seus casos de uso.


Grupo 2

logo

Release II

Equipe

Sprints

Sprint 0

Sprint 1

Sprint 2

Sprint 3

Sprint 4

Sprint 5

Sprint 6

Sprint 7

Sprint 8

Release I

Gerência do Projeto














Desenvolvimento de Software

Clone this wiki locally