Skip to content

Documento de Arquitetura

Michel Martins de Camargo edited this page Sep 1, 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

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. Visão de Implementação
  7. Tamanho e Desempenho
  8. 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. 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 e exames.

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.

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

  • Controller : Responsável pela intermediação entre o usuário e o sistema, realiza operações ou manipulações dos dados ou informações convertendo em comandos para Model renderizando para a a View.

MTV

Figura 1- Diagrama do um MTV.

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

  • Model: A Model não se altera de acordo com a representação descrita no MVC.

  • Template: A Template é implementação da View.

  • View: A View é implementação da Controller.


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 de forma rápida. 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, Safari, Internet Explorer, Mozilla Firefox, Opera 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.


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

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 - Manter Receituário Este caso de uso permite ao profissional da saúde a criação, edição ou exclusão de um receituário.
UC04 - 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.
UC05 - Favoritar Receituário Este caso de uso permite que o profissional da saúde marque como favoritos receituários pesquisados.
UC06 - Convidar Este caso de uso permite que profissionais da saúde convidem pacientes a se cadastrarem no sistema.
UC07 - Conversar Este caso de uso oferece uma plataforma de comunicação entre profissionais da saúde e pacientes.
UC08 - Manter Pacientes Este caso de uso permite aos pacientes a criação, edição ou exclusão do seu cadastro.
UC09 - Enviar Exames Este caso de permite que pacientes enviem seus exames aos profissionais da saúde.
UC10 - Consultar Histórico Este caso de uso permite aos pacientes a realização de consultas ao seu histórico de receituário.
UC11 - Visualizar Exames Este caso de uso possibilita aos pacientes a visualização dos seus exames.
UC12 - Visualizar Receitas Este caso de uso possibilita aos pacientes visualização das suas receitas.

O Sistema de Receituário Médico será desenvolvido no padrão do framework Django. O sistema web deve ser desenvolvido utilizando um design responsivo para que o sistema se adapte ao browser do usuário.

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.

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

5.2.1 Model: As classes deste pacote são responsáveis pela manipulação dos dados e relação com a persistência(base de dados), representam os dados abstraídos do mundo real, bem como a validação dos dados.

  • Pescription: 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.

    • Orientation: Classe que representa os dados de recomendações médicas na aplicação.

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

    • Pacient: Classe filha de User que representa os dados de paciente na aplicação.

5.2.2 Template Neste pacote estão presentes os templates, arquivos html e afins.

  • Authentication Form

  • Receituário Form

  • Chat Form

5.2.3 View :

  • Receituário: Principal classe do sistema responsável pela lógica inerente ao receituário, como cadastrar receita, incluir medicamentos, incluir orientações médicas, incluir solicitação de exames, enviar receita e toda a funcionalidade de sugestões de preenchimento de receita.

  • Chat: Classe responsável pela implementação da lógica de chat entre usuários do sistema.


Como foi dito na secção 2 optamos por uma arquitetura em camadas (MTV), herdada do próprio Django. A lógica de separação de camadas segue a mesma premissa do MVC, porém, no MTV a controller é o próprio framework Django. Essa forma de modularização facilita o desenvolvimento do sistema, já que seu próprio framework fica responsável pelo funcionamento do sistema.

6.2 Camadas

  • 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 as regras de negócio para cada modelo do banco, 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.


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