Data | Versão | Descrição | Autor |
---|---|---|---|
25/08/2018 | 0.0 | Versão inicial | Lieverton |
26/08/2018 | 0.1 | Descrição dos casos de uso | Paulo V. |
26/08/2018 | 0.2 | Diagrama de casos de uso | Ivan Dobbin |
31/08/2018 | 0.3 | Melhoria na descrição dos casos de uso | Paulo V. |
31/08/2018 | 0.4 | Diagrama de relações e visão lógica | Mateus Roriz |
02/09/2018 | 0.5 | Diagrama de pacotes back-end | Mateus Roriz |
02/09/2018 | 0.6 | Atualização do diagrama de casos de uso | Lieverton |
03/09/2018 | 0.7 | Visão geral, representação de arquitetura, metas e restrição, visão lógica, diagramas de classe | Paulo V. |
09/09/2018 | 0.8 | Versão inicial do diagrama de React-Native/Redux/Microsserviços | Mateus Roriz |
30/09/2018 | 0.9 | Corrigindo erros de digitação nos títulos | Ivan Dobbin |
01/10/2018 | 0.10 | Corrigindo erros de digitação nos títulos | Ivan Dobbin |
01/10/2018 | 0.11 | Adicionando títulos para a barra de menu | Ivan Dobbin |
01/10/2018 | 0.12 | Atualizando o diagrama de relações, Atualizando o diagrama react/expo/microsserviços, Atualizando pipeline de arquitetura, Adicionando diagram de db | Mateus Roriz |
02/10/2018 | 0.13 | Adicionando visão lógica do expo - tópico 5.5 | João Matheus de Sousa Rodrigues | 02/10/2018 | 0.14 | Atualização do diagrama de classes | Paulo V. |
02/10/2018 | 0.15 | Atualizando o diagrama de relações e o diagrama django rest | Mateus Roriz |
02/10/2018 | 0.16 | Adicionando o pipeline de integração | Taynara Carvalho |
14/11/2018 | 0.17 | Atualizando diagrama relações e pipeline arquitetura | Mateus Roriz |
26/11/2018 | 0.18 | Atualizando diagramas de caso de uso e diagrama de banco de dados | Mateus Roriz |
Este documento tem como objetivo apresentar uma visão geral abrangente da arquitetura de software e especificar decisões arquiteturais pertinentes para o desenvolvimento do aplicativo CarDefense. Logo a equipe poderá obter um melhor esclarecimento da estrutura e dos requisitos do sistema.
CarDefense é uma aplicativo para plataforma android projetado para auxiliar na proteção dos automóveis e motocicletas localizados na FGA. Os desenvolvedores são responsáveis em seguir este documento visando garantir o padrão proposto para a arquitetura.
Abreviação | Definição |
---|---|
FGA | Faculdade do Gama |
FUNPAR | Universidade Federal do Paraná |
Este documento contém os detalhes sobre as características arquiteturais escolhidas pela equipe de desenvolvimento para a solução em software do projeto CarDefense. Nele estão contidos os seguintes pontos, respectivamente: Representação da Arquitetura, Metas e restrições de Arquitetura, Visão dos casos de uso, Visão lógica e Visão de implementação.
A arquitetura utilizada no projeto será baseada em microsserviços. Microsserviço é uma abordagem para desenvolver uma única aplicação como um conjunto de serviços, cada um rodando em seu próprio processo e se comunicando através de mecanismos leves, geralmente através de uma API HTTP. Estes serviços são publicados em produção de maneira independente através de processos de deploys automatizados.
O diagrama representa cada etapa a ser seguida para que o aplicativo funcione, relacionando o front-end e o back-end.
Restrição | Ferramenta |
---|---|
Linguagem | Python |
Framework | Django REST |
Plataforma | Android |
Segurança | O sistema terá informações pessoais dos usuários que só poderão ser vistas e editadas pelo próprio usuário |
Idioma | Português |
A seguir são descritos os casos de uso presentes no diagrama:
A aplicação CarDefense é construída sobre o framework react native no front-end e sobre o framework django REST no back-end. React native utiliza a arquitetura Redux, tal arquitetura permite a utilização de um container de estados para facilmente administrar os estados da sua aplicação. O framework django REST utiliza uma variação da arquitetura MVC, chamada MTV(Model Template View) onde a “view” delega a informação apresentada para o template. O desenvolvimento em camadas e componentes é benéfico pois tem custos reduzidos de desenvolvimento e manutenção e também de fácil reutilização em outros projetos.
A model é uma interface de apresentação do banco de dados que permite o uso dos dados do banco sem conhecer as complexidades do banco de dados subjacente. O modelo geralmente também fornece uma camada de abstração com seu banco de dados, para que seja possível usar o mesmo modelo com vários tipos de bancos de dados.
Estabelece a conexão entre a Model e o Template. Ela recebe as requisições do usuário, acessa o banco de dados e retorna a informação solicitada.
É a camada de apresentação. Nela é onde se decide como alguma informação do banco de dados deve ser apresentada para o usuário.
O framework Django REST, organiza o projeto em diretórios em que cada um contém uma funcionalidade independente do restante da aplicação como sugere a imagem a seguir:
Elaborado em função do React Native, o conjunto de ferramentas Expo possibilita o desenvolvimento por meio de JavaScript e React de projetos nativos em Android e IOS, com acesso a diversas funcionalidades, como envio e recebimento de push notifications, e implementação de RefreshControl e ListView.
Documento de Arquitetura de Software. FUNPAR. Disponível em:
< http://www.funpar.ufpr.br:8080/rup/process/artifact/ar_sadoc.htm>.