Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
| pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:det_aplicativos [11/12/2017 13:15] – [8. Proposta de Solução] famoraes | pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:det_aplicativos [26/12/2017 18:39] (atual) – removida maugusto | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| - | ====== 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 ==== | ||
| - | |**Unidade**|**Nome**|**Fone**|**e-mail**| | ||
| - | ||||| | ||
| - | |||
| - | ==== INFORMAÇÕES DA SOLICITAÇÃO ==== | ||
| - | |**Tipo de Solicitação**|**DET de Origem**| | ||
| - | |Novo Desenvolvimento|XXX| | ||
| - | |||
| - | ==== INFORMAÇÕES DE AMBIENTE ==== | ||
| - | |Sistema operacional das estações dos clientes |Android| | ||
| - | |Sistema operacional das estações dos clientes |IOS| | ||
| - | |Versão dos Aplicativos|1.0.1| | ||
| - | |||
| - | ===== 2. Objetivo ===== | ||
| - | Trata o presente documento, de análise de sistema elaborada pela Cast-Brasília, | ||
| - | |||
| - | ===== 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, | ||
| - | **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), | ||
| - | |||
| - | **Domínio** → Uma esfera de conhecimento (ontologia), | ||
| - | |||
| - | **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, | ||
| - | |||
| - | **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. Destino do Dado ==== | ||
| - | Assim como na configuração da Origem de Dados para integração de dados, faz-se necessário a configuração do destino da informação. Nesse sentido, o sistema TCE.Integrador disponibilizará como configuração de destino de dado, onde os tipos de destino são: Aplicação, | ||
| - | |||
| - | === 8.2.1. Destino Tipo Banco de Dados === | ||
| - | |||
| - | == 8.1.1.1. Descrição das funcionalidades == | ||
| - | No destino de dados do tipo Banco de Dados, será apresentado na funcionalidade de manutenção de destino os campos Descrição (descrição que identifique o destino - de conteúdo único), Tipo SGBD (tipo de banco de dados, ex.: Oracle), Data Source (host do banco ou TNS do banco Oracle), Usuário (usuário de autenticação com o banco de dados) e Senha (senha de autenticação com o banco de dados), todos esses campos são de preenchimento obrigatório. Em seguida será apresentada a opção de verificar a conexão com o banco de dados. Em seguida é apresentado o campo Nome da Tabela que deverá conter no máximo 30 (trinta) caracteres. | ||
| - | |||
| - | Na grid de Colunas deverá se informado as colunas que compõem a tabela. Dessa forma será apresentada a opção de incluir uma nova coluna, que será apresentada a funcionalidade de Manutenção de Coluna Tabela. Nessa rotina serão apresentados os campos Tipo Propriedade (por default será apresentado Coluna Tabela), o campo Nome da Coluna (campo único para a tabela, que deverá conter no máximo 30 (trinta) caracteres, o campo Tipo de Dado (podendo ser Número, Monetário - que apresentará a precisão do campo, Texto, Data, Data e Hora, Hora e Arquivo), o campo Tamanho (que deverá ser informado o tamanho do campo para os Tipos de Dado Número, Monetário e Texto), o campo Precisão (que será apresentado quando o Tipo do Dado for Monetário) e por fim a opção que determina se a coluna é de preenchimento obrigatório ou não. Para determinar qual(ais) coluna(s) será(ão) a(s) chave(s) de identificação do registro no destino, o usuário deverá marcar a opção Campo Chave. Já para determinar se o campo é auto incrementado no banco de dados, deverá marcar a opção Auto Incrementado, | ||
| - | |||
| - | No momento de incluir/ | ||
| - | |||
| - | O processo de exclusão de um Destino de Dado não irá apagar (fazer DROP da tabela) caso a tabela contenha informações ou o registro de Destino esteja relacionado com uma configuração de De X Para, nesse sentido o processo de exclusão irá validar quando for executada a ação de excluir um registro de Destino de Dado. Dessa forma, no processo de exclusão caso seja identificada alguma inconsistência, | ||
| - | |||
| - | == 8.1.1.2. Proposta de Tela == | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | ==== 8.3. De X Para ==== | ||
| - | |||
| - | === 8.3.1. Funcionalidades === | ||
| - | As configurações de De X Para poderão ser consultadas a partir da descrição, | ||
| - | |||
| - | A situação da configuração de De X Para quando estiver Em Elaboração significa que a configuração ainda está sendo criada, dessa forma ela ainda poderá ser excluída (botão " | ||
| - | |||
| - | Quando a configuração de De X Para estiver em situação Publicado, o usuário apenas poderá visualizar a configuração ou cancelar, botão " | ||
| - | |||
| - | Na manutenção da configuração de De X Para o usuário deverá informar uma breve descrição que identifique o De X Para, selecionar a Origem de Dado (aplicação, | ||
| - | |||
| - | Em seguida, ainda na configuração de De X Para, o usuário deverá informar a configuração de Item de De X Para, informando para cada item qual a propriedade de Origem para qual propriedade de Destino será sincronizado. Quando a configuração de Destino for adicionada no momento da configuração de De X Para, será apresentada a opção de adicionar um destino, que apresentará a mesma rotina de Manutenção de Coluna Tabela da seção | ||
| - | 8.1.1. Na rotina de Manutenção de Item De X Para, será apresentado o campo de seleção da propriedade de Origem, um capo que será usado para apelidar a propriedade de Origem para melhor identificar o seu conteúdo, há campo de seleção/ | ||
| - | |||
| - | Na manutenção de Opção de Item De X Para, será apresentado ao usuário os campos de Descrição de Origem (breve descrição do valor da origem), o campo Valor de Origem, o campo Descrição do Destino (breve descrição do valor de Destino), e o valor de destino. Desses campos apenas os campos Valor Origem e Valor Destino são obrigatórios. | ||
| - | |||
| - | Na manutenção de De X Para o usuário poderá determinar a condição de exclusão da informação sincronizada no destino, utilizando a configuração Condição de Exclusão e/ou a opção para marcar se quando a origem deixar de existir deverá apagar no destino. | ||
| - | |||
| - | Na manutenção de condição para exclusão o usuário deverá selecionar a propriedade de Origem que determinará a condição de exclusão. O usuário poderá dar um apelido para a propriedade para melhor identificar a condição. E por fim, deverá informar o valor que a propriedade terá quando o registro de destino deverá ser excluído. | ||
| - | |||
| - | === 8.3.2. Proposta de Tela === | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | ==== 8.4. Controle de sincronização ==== | ||
| - | |||
| - | Para a sincronização das informações da origem para o destino serão controladas tupla a tupla, sendo cada tupla correspondente a um conjunto de itens de De X Para que representa uma informação da Origem de Dados para um Destino. Para cada tupla será mantido um item do controle de sincronização que irá identificar o conteúdo da ultima sincronização, | ||
| - | |||
| - | No controle de sincronização será identificado o tipo de sincronização, | ||
| - | |||
| - | No item do sincronismo terá o identificador da origem (chave da origem de identificação), | ||
| - | |||
| - | Para cada item do controle de sincronização será registrado log de sincronismo, | ||
| - | |||
| - | Será possível consultar as sincronizações realizadas para conferir o que foi sincronizado e qual a situação da sincronização, | ||
| - | |||
| - | === 8.4.1. Proposta de Tela === | ||
| - | {{ : | ||
| - | |||
| - | ==== 8.5. Agendamento/ | ||
| - | O agendamento da sincronização poderá ser feito para ser executado de forma Anual, Mensal, Semanal e Diário, que será identificado como tipo de execução. No agendamento Semanal deverá ser selecionado quais dias da semana deseja agendar a execução. Em todos os tipos de execução o usuário deverá informar a data de início do agendamento e caso queira determinar a uma data final, poderá informar a data e horário de quando será executada a última sincronização. Na última sincronização o sistema irá marcar o agendamento como inativo. | ||
| - | |||
| - | Na configuração de agendamento de sincronização o sistema irá validar apenas se existe configuração de agendamento iguais ativos para a mesma configuração de De X Para, não validando dessa forma se terá concorrência de sincronismo agendado com base na configuração. Assim, na execução da sincronização o sistema irá marcar o controle de sincronização quando em execução, de modo que outro agendamento possa identificar e reagendar a execução para adiar em 10 minutos. Nesse sentido, a responsabilidade do controle de sincronizações agendadas será do usuário que configurou, o qual deverá analisar a melhor configuração de agendamento para o que necessita. | ||
| - | |||
| - | Através da consulta dos agendamentos de sincronização por De X Para, o usuário poderá excluir uma sincronização através do botão " | ||
| - | |||
| - | O usuário a qualquer momento poderá inicializar um sincronismo de forma manual, sendo que esse sincronismo irá verificar da mesma forma que no sincronismo agendado, se já tem uma sincronização agendada, caso positivo será reagendado a cada 10 minutos. Na funcionalidade de Sincronização de De X Para, o usuário poderá inicializar uma sincronização manual, e visualizar as sincronizações em ordem decrescente de sincronização. Como o controle de sincronização será único por De X Para, nessa visualização terá apenas a última sincronização do De X Para. A partir dessa visualização o usuário poderá visualizar o resultado da sincronização a partir do botão " | ||
| - | |||
| - | |||
| - | === 8.5.1. Proposta de Tela === | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | |||
| - | {{ : | ||
| - | ==== 8.6. Diagramas do Projeto ==== | ||
| - | {{ : | ||