Tabela de conteúdos

DET - Documento de Especificação Técnica

1. Informações Gerais sobre o Levantamento

RESPONSÁVEL PELA ELABORAÇÃO

Unidade
Cast - Brasília

NOME DO CLIENTE

UnidadeNomeFonee-mail

INFORMAÇÕES DA SOLICITAÇÃO

Tipo de SolicitaçãoDET de Origem
Novo DesenvolvimentoXXX

INFORMAÇÕES DE AMBIENTE

Sistema operacional das estações dos clientes Android
Sistema operacional das estações dos clientes IOS
Versão dos Aplicativos1.0.1

2. Objetivo

Trata o presente documento, de análise de sistema elaborada pela Cast-Brasília, tendo por escopo a o desenvolvimento dos aplicativos para apoio ao processo de registro de manifestações e solicitações de informação.

3. Contexto Normativo

O aplicativo deve integrar com os módulos já criados do Solicitação de Informação ao Cidadão(e-SCI) e Portal da Ouvidoria, portanto seguirá as normas dos mesmos.

4. Finalidade

Este documento apresenta uma visão geral abrangente da arquitetura do sistema e utiliza uma série de visões arquiteturais diferentes para ilustrar os diversos aspectos do sistema. Sua intenção é capturar e transmitir as decisões significativas do ponto de vista da arquitetura que foram tomadas em relação ao sistema.

5. Escopo

Este documento de arquitetura afeta os produtos Aplicativo Android, Aplicativo iOS e a especificação da camada de Serviço Restfull influênciado assim a implementação da mesma: implementação essa que porém não é escopo deste documento.

6. Definições, Acrônimos e Abreviações

Aplicativo Móvel → Software projetado e desenvolvido para ser executado em um sistema operacional móvel.

Android → Sistema Operacional Móvel. iOS → Sistema Operacional Móvel.

Serviço → Uma função que poder ser acessada por outros softwares através de rede (Internet) para a execução de uma funcionalidade específica.

API Rest → Representational State Transfer (REST) é um estilo arquitetural e o modelo de comunicação utilizado para desenvolvimento de serviços tendo como principais características o baixo consumo de rede de dados e o desecomplamento dos protocolos de comunicação.

OpenAPI Specification → Ferramental teórico para modelagem de APIs REST.

Swagger → Ferramental que implementa as definições da OpenAPI Specification.

End Point → O endereço URL através do qual o serviço pode ser acesso pelo aplicativo cliente.

Ontologia → Um conjunto de conceitos (funcionalidades), nomenclaturas, definições de tipos, propriedades e inter-relacionamentos.

Domínio → Uma esfera de conhecimento (ontologia), influência ou atividade. A área que o programa deve atender é o domínio do software.

Subdomínio → Um domínio é composto de multíplos subdomínios. Cada subdomínio corresponde a uma parte diferente do negócio.

HTTP Session → Modelo que estabelece um mecanismo através do qual os multiplas chamadas HTTP podem ser vinculadas estabelcendo, por exemplo, condições de controle de segurança ao garantir que a sessão existente é a mesma sessão criada no momento da autenticação de um usuário.

Autenticação → é o processo que garante que alguém realmente é quem diz ser.

Autorização → é o processo referente às regras que permitem a um usuário executar ou não uma funcionalidade.

Problem Details for HTTP APIs → Especificação que estabelece um modelo unificado e normatizado (RFC 7807) de comunicar aos Aplicativos todos os erros ocorridos no serviço.

Kotlin → Liguangem de programação funcional para desenvolvimento Android.

Swift → Linguagem de programação funcional para desenvolvimento iOS.

7. Referências

API Rest TCE → Modelo em formato Swagger da API Rest.

Protótipos → Protótipos visuais com as definições de UX e de design dos aplicativos

8. Proposta de Solução | Arquitetura

A arquitetura da aplicação está representada nos diagrama abaixo. Sendo subdividida em subsistemas para que a aplicação tenha um baixo acoplamento e seu desenvolvimento em paralelo.

8.1. Arquitetura

Os serviços que atendem os aplicativos Android e iOS estão organizados na forma de uma API REST cuja modelagem baseia-se nos padrões estabelecidos pela OpenAPI Especification na versão do Swagger com a organização inicial de Domínio e Subdomínios sendo guiadas pelas definições da área de negócio da Ouvidoria e pelas definições de segurança construída no modelo clássido HTTP Session.

APLICATIVO ANDROID

APLICATIVO iOS

8.2. METAS E RESTRIÇÕES DE ARQUITETURA

8.3. Visão de Implementação

Descreve as classes mais importantes, sua organização em pacotes e subsistemas de serviço, e a organização desses subsistemas em camadas detalhados de acordo com cada plataforma.

8.3.1. Android

A visão geral do aplicaitvo Android é composta por 4 pacotes principais abaixo descritos:

A visão estrutural central do aplicaitvo Android é baseada nas seguintes classes:

A visão de organização do layout de telas:

8.3.2. iOS

A visão geral do aplicaitvo iOS é composta por 4 pacotes principais abaixo descritos:

A visão estrutural central do aplicaitvo iOS é baseada nas seguintes classes:

A visão de organização do layout de telas:

8.3.3. Processo Software

O sistema é gerenciado por meio de processos (threads), esses processos (threads) podem ser divididos com base na sua capacidade de influência para o sistema como um todo, podendo ser classificados em dois tipos :

8.3.5. Implantação

Os aplicativos são construídos em plataformas nativas com liguagem Kotlin para o Android e Swift para o iOS.

Os aplicativos devem ser implantados para distribuição para os usuários nas respectivas lojas de cada plataforma (Google Play e AppStore) sendo necessária a existencia de uma conta específica para cada loja em nome do TCE-GO.

8.3.6. Dependências

São as principais decisões tomadas em termos de ferramental a ser empregado no desenvolvimento.

8.3.6.1 Android
8.3.6.2. iOS

Observação: Todas dependência são licenciadas através de Apache 2.

8.3.7. Qualidade

Sabendo que qualidade e seus atributos são a base para as estratégias e decisões de design da arquitetura. Os padrões adotados oferecem uma solução mais satisfatória para atender a qualidade esperada do sistema.