pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:det_aplicativos

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

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] famoraespres: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, 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. 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, Banco de Dados, Arquivo e Web Service. Para essa faze do projeto (Fase 1), será tratado apenas o destino Banco de Dados. 
- 
-=== 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, uma vez esse campo marcado a propriedade de campo obrigatório deixará de ser válida, visto que não poderá ser informado se ele é auto incrementado. Este opção de auto incremento só estará disponível para os campos do tipo de dado Número. 
- 
-No momento de incluir/atualizar um registro de Destino de Dado, será validada a conexão, se a opção de criar a tabela caso não exista estiver marcado será validado se a tabela de nome informada não existe para então criar, no processo de atualização essa opção não será permitido caso a tabela já exista. Será validado ainda se no nome e nas colunas informadas tem injeção de SQL. No processo de validação caso seja identificada alguma inconsistência será apresentado ao usuário a mensagem com as inconsistências identificadas, caso não seja apresentado inconsistências e o processo for para criar a tabela com as colunas configuradas, o sistema tentará criar a tabela conforme configurado, caso ocorra algum erro inesperado como de privilégios de DDL (Data Definition Laguage) no banco de dados informado, será registrado o Log da exceção e apresentado para usuário o identificador do erro registrado. Na atualização de uma definição de Destino de Dado para incluir, ou alterar ou excluir uma coluna da tabela no banco de dados caso ela já exista e contenha registro só será possível ser feito por um profissional DBA, o sistema não fará tal manipulação por questão de segurança e integridade do banco de dados a ser manipulado. 
- 
-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, será apresentado ao usuário a mensagem de validação com as inconsistências identificadas, caso contrario será apresentada mensagem de que a exclusão ocorreu com sucesso. 
- 
-== 8.1.1.2. Proposta de Tela == 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:tela_aterrissagem_destino_bd.png?1000 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:manutencao_destino_bd.png?1000 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:manutencao_coluna_destino.png?1000 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:consulta_destino_bd.png?1000 |}} 
- 
-==== 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, da Origem de Dados (aplicação, categoria/dimensão da informação, tipo de formulário e versão de formulário), do Destino dos Dados, pela situação da configuração de De X Para (Em Elaboração, Publicado, Cancelado), e pelo período quem a configuração foi criada. 
- 
-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 "X" da grid), editada (botão "E" da grid) e publicada (botão "P" da grid). Quando o usuário solicitar a exclusão da configuração de De X Para, todas as configurações filhas serão também excluídas, e ao final do processo o sistema irá informar ao usuário que a configuração de De X Para foi excluída com sucesso. Caso o usuário solicite a edição da configuração de De X Para, será apresentado para ele as informações da configuração até o momento salvas, através da rotina de manutenção de configuração de De X Para. Já quando o usuário solicitar a operação de publicação da configuração de De X Para não poderá mais editar a configuração, e esta estará elegível para ser executada pelo processo de sincronização, seção 8.5 deste documento. 
- 
-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 "V" e botão "C", respectivamente. O cancelamento/inativação da configuração de De X Para será uma exclusão lógica, que irá impossibilitar o uso dessa configuração de modo não ser possível sincronizar as informações a partir dessa configuração de De X Para. 
- 
-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, categoria/dimensão da informação, tipo de formulário e versão de formulário), selecionar ou adicionar uma nova configuração de Destino. No momento da configuração de De X Para a inclusão de uma nova configuração de Destino será somente para o tipo Banco de Dados. 
- 
-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/inclusão do Item de Destino, um campo para apelidar a propriedade de Destino para melhor identificar a propriedade, será apresentado campo que identifica se a propriedade é uma Opção - quando marcado será apresentada a opção de configuração dos itens da opção, da Origem para o Destino. 
- 
-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 === 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:tela_aterrissagem_dexpara_2.png?1200 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:manutencao_dexpara_2.png?800 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:manutencao_item_dexpara_2.png?800 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:manutencao_cond_exclusao.png?800 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:dexpara_incluir_destino_bd.png?800 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:manutencao_opcao_item_dexpara.png?800 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:inclusao_propriedade_destino_item_dexpara.png?800 |}} 
- 
-==== 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, para que quando for executado o sincronismo agendado ou manual, seja possível comparar com o conteúdo atual da origem, em que caso esteja diferente será sincronizado para o destino a atualização da informação conforme a informação origem.  
- 
-No controle de sincronização será identificado o tipo de sincronização, se manual ou agendada e quem executou a sincronização, bem como a data e hora de início e data e hora de término, e qual máquina executou o sincronismo e qual a configuração de De X Para foi sincronizada. 
- 
-No item do sincronismo terá o identificador da origem (chave da origem de identificação), o identificador do destino (chave da origem de identificação), o tipo da operação de sincronização (Inclusão, Atualização ou Exclusão), hash do conteúdo da origem, hash do conteúdo de destino e a situação da sincronização (Iniciado, Concluído, Erro de Sincronização ou Erro de Validação). 
- 
-Para cada item do controle de sincronização será registrado log de sincronismo, contendo a situação da sincronização, e a descrição do passo a passo do que foi sincronizado, incluindo mensagem de erro quando tiver. 
- 
-Será possível consultar as sincronizações realizadas para conferir o que foi sincronizado e qual a situação da sincronização, para caso tenha alguma anomalia possa ser identificada no log do sincronismo. 
- 
-=== 8.4.1. Proposta de Tela === 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:controle_sincronizacao.png?1100 |}} 
- 
-==== 8.5. Agendamento/Execução de Sincronização ==== 
-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 "X", editar uma configuração de agendamento de sincronização através do botão "E", inativar uma configuração a partir do botão "I" ou ativar uma configuração que esteja inativa a través do botão "A" 
- 
-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 "V" que irá carregar a funcionalidade de consulta do Controle de Sincronização, carregando as informações de sincronização da configuração de De X Para selecionada. 
- 
- 
-=== 8.5.1. Proposta de Tela === 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:tela_aterrissagem_agendamento_sincronizacao.png?1300 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:manutencao_agendamento_sincronismo.png?800 |}} 
- 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:sincronizacao_dexpara.png?1300 |}} 
-==== 8.6. Diagramas do Projeto ==== 
-{{ :pres:gerti:servico_de_desenvolvimento_de_sistemas_de_informacao:projetos:tce-contex:diagrama_classe.png?1200 |}} 
  
  • pres/gerti/servico_de_desenvolvimento_de_sistemas_de_informacao/projetos/det_aplicativos.1512998135.txt.gz
  • Última modificação: 11/12/2017 13:15
  • por famoraes