O documento descreve a arquitetura de software do sistema Cockpit em 3 frases:
Define os objetivos e escopo do sistema para atualização e controle de licenças do software X de forma autônoma. Apresenta a estrutura do sistema em camadas e módulos para separar as funcionalidades. Descreve os casos de uso, visão lógica, pacotes e diagramas de classe para representar a interação entre os componentes da arquitetura.
2. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 2 of 13
Revisão Histórica do Documento
Data Versão Descrição Autor
16/09/2016 1.0 Descrição inicial da arquitetura do software Fábio Lucchiari
23/09/2016 1.0 Alteração da arquitetura do software Fábio Lucchiari
3. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 3 of 13
Índice
1. INTRODUÇÃO ...........................................................................................................................................4
1.1 OBJETIVO......................................................................................................................................................4
1.2 ESCOPO.........................................................................................................................................................4
1.3 DEFINIÇÕES, ACRÔNIMOS, ABREVIAÇÕES ....................................................................................................4
1.3.1 Anomalias ................................................................................................................................................4
1.3.2 Aplicação web..........................................................................................................................................4
1.3.3 C#.............................................................................................................................................................4
1.3.4 Camada....................................................................................................................................................4
1.3.5 Internet.....................................................................................................................................................4
1.3.6 Módulo.....................................................................................................................................................4
1.3.7 MVC.........................................................................................................................................................5
1.3.8 Portal.......................................................................................................................................................5
1.3.9 Premissas.................................................................................................................................................5
1.3.10 Processo ..............................................................................................................................................5
1.3.11 Windows Service..................................................................................................................................5
1.4 REFERÊNCIAS................................................................................................................................................6
1.5 CONTEÚDO ...................................................................................................................................................6
2. REPRESENTAÇÃO DA ARQUITETURA..........................................................................................6
3. OBJETIVOS E LIMITAÇÕES DA ARQUITETURA .....................................................................6
4. VISÃO DE CASO DE USO ....................................................................................................................7
4.1 REALIZAÇÕES DOS CASOS DE USO................................................................................................................7
4.1.1 UC – Atualizar Licenças..........................................................................................................................8
4.1.2 UC – Manter Servidores..........................................................................................................................8
4.1.3 UC – Atualizar Servidores.......................................................................................................................8
4.1.4 UC – Agendar Atualização......................................................................................................................8
5. VISÃO LÓGICA.........................................................................................................................................8
5.1 OVERVIEW....................................................................................................................................................8
5.2 PROJETO DOS PACOTES .................................................................................................................................9
5.2.1 Banco de dados........................................................................................................................................9
5.2.2 Atualização ..............................................................................................................................................9
5.2.3 Usuario....................................................................................................................................................9
5.3 DIAGRAMA DE CLASSES..............................................................................................................................10
5.3.1 Cockpit License Check...........................................................................................................................10
5.3.2 Cockpit Update......................................................................................................................................11
6. VISÃO DO PROCESSO........................................................................................................................12
6.1 ATUALIZAÇÃO DE LICENÇAS.......................................................................................................................12
6.2 ATUALIZAÇÃO DE ARQUIVOS......................................................................................................................13
4. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 4 of 13
1. Introdução
Esse documento apresenta a arquitetura de software utilizada como referência para a
construção do software que dará suporte ao projeto Cockpit, consolidando
informações de casos de uso, de processos, de implementação, implantação,
finalidade, o escopo, as definições, os acrônimos, as abreviações, as referências e a
visão geral deste Plano de Desenvolvimento de Software.
1.1 Objetivo
O projeto Cockpit tem como objetivo fornecer um sistema informatizado e autônomo
para atualização e controle de licenças do software X que ainda utilizam
procedimentos manuais de controle.
Este documento também deve esclarecer as decisões arquiteturais feitas sobre o
sistema Cockpit e dar uma visão mais compreensível sobre sua estrutura.
1.2 Escopo
Refere-se às características tratadas, que afetam e influenciam em relação ao
sistema do Cockpit. Assim sendo, representa um sistema autônomo de atualização e
controle de licenças do software X através de um windows service instalado no
servidor da aplicação que constantemente irá atualizar um banco de dados local.
Consolidando assim as informações já existentes em diversos bancos de dados
remotos. O usuário terá acesso a um portal onde poderá consultar as informações
pertinentes as licenças dos servidores e agendar sua atualização, inicialmente
teremos um escopo reduzido, onde pelo menos será possível atender os requisitos
mínimos do sistema.
1.3 Definições, Acrônimos, Abreviações
1.3.1 Anomalias
São o relatos de eventos que causaram ou estão causando impacto nos processos.
1.3.2 Aplicação web
É o termo utilizado para designar, de forma geral, sistemas de informática projetados
para utilização através de um navegador, na internet ou em redes privadas
(intranet).
1.3.3 C#
Linguagem de programação orientada a objetos.
1.3.4 Camada
Uma forma específica de agrupar pacotes em um modelo do mesmo nível de
abstração. A organização de classificadores ou pacotes no mesmo nível de abstração.
Uma camada representa um corte horizontal em uma arquitetura.
1.3.5 Internet
O grande conjunto de redes interconectadas que usa os protocolos TCP/IP e que
evoluiu da ARPANET no final dos anos 60 e início dos anos 70 e que permite o acesso
a informações e todo tipo por meio de transferência de dados.
1.3.6 Módulo
Módulo é uma parte do sistema que utiliza a mesma arquitetura tecnológica do
5. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 5 of 13
sistema, é responsável por atividades que satisfaz um assunto bem definido, as
atividades do módulo utilizam tarefas e componentes comuns do sistema
1.3.7 MVC
Model-View-Controller ou Controlador de Visão de Modelo é um padrão de
arquitetura de software que separa os componentes do aplicativo: o modelo
representa os dados ou a lógica de negócios; a visão representa a interface do
usuário; e o controlador gerencia entrada de usuário ou, em alguns casos, o fluxo de
aplicativos.
1.3.8 Portal
Site na Internet ou Intranet que serve de ponto de partida para aceder, nesse ou
noutros sites, a grande variedade de informações ou de serviços, organizados por
tópicos ou por áreas de interesse.
1.3.9 Premissas
Na lógica, uma premissa é uma fórmula considerada hipoteticamente verdadeira.
1.3.10 Processo
Uma série de ações que geram um resultado. Um processo faz parte de um conjunto
de etapas dentro de um Projeto.
1.3.11 Windows Service
Nos sistemas operacionais Windows NT, um serviço do Windows é um programa de
computador que funciona em segundo plano.
6. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 6 of 13
1.4 Referências
1. Documento de Visão do Projeto Cockpit.
1.5 Conteúdo
Refere-se às características tratadas, que afetam e influenciam em relação ao
sistema do Cockpit. Assim sendo, representa um sistema de atualização e
gerenciamento de licenças do sistema X. O sistema terá dois módulos principais, o
modulo de coleta e atualização das licenças e o modulo de atualização do software X,
inicialmente teremos um escopo reduzido, onde pelos menos será possível atender
os requisitos mínimos do sistema.
2. Representação da Arquitetura
A arquitetura do sistema é representada por modelos que mostram a visão de casos
de uso, processos, pacotes, implantação e implementação. Esses modelos mostram
como os artefatos estão distribuídos pela arquitetura e como que eles interagem
entre si.
3. Objetivos e Limitações da Arquitetura
• O sistema Cockpit deve ser desenvolvido seguindo os padrões W3C de modo que
possa ser disponibilizados pelos browsers mais utilizados atualmente no mercado;
• Não há restrições por questão de volume de acesso, mesmo pelo fato de que o
sistema será disponibilizado na internet podem ter restrições de acesso;
• A arquitetura deve ser modelada a fim de deixar o sistema escalavel.
7. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 7 of 13
4. Visão de Caso de Uso
UC Nome UC Descrição
UC-01 Atualizar
Licenças
O sistema deve permitir automaticamente
que os dados alterados nos bancos de
dados disponibilizados sejam
constantemente consolidados e atualizados.
UC-02 Manter
Servidores
O sistema deve permitir automaticamente
que novos servidores disponibilizados sejam
constantemente incluídos.
UC-03 Autenticar
Usuário
Permitir que as operações críticas do
sistema sejam efetuadas por usuários
cadastrados no sistema.
UC-04 Atualizar
Servidores
O sistema deve permitir que os arquivos
disponibilizados localmente para atualização
dos servidores remotos sejam atualizados
conforme agendamento.
UC-05 Agendar
Atualização
O sistema deve permitir que o usuário
agende um cancele uma atualização.
4.1 Realizações dos Casos de Uso
Para descrever a arquitetura do sistema foram eleitos dois casos de uso que
abrangem toda a arquitetura do sistema. Para auxiliar na explanação da arquitetura,
será feita uma breve introdução de cada caso de uso selecionado juntamente com
um cenário de execução. Os casos de uso selecionados são: Atualizar Licenças,
Manter Servidores, Atualizar Servidores e Agendar Atualização.
O caso de Manter Servidores é considerado a principal entrada de dados para realizar
qualquer interação com o sistema.
O caso de uso Atualizar Licenças é considerado relevante, pois a partir dele o banco
de dados do sistema é atualizado.
O caso de uso Atualizar Servidores é considerado relevante, pois é ele que vai
efetivar a atualização dos arquivos nos servidores remotos.
O caso de uso Agendar Atualização é considerado relevante, pois a partir dele o
banco de dados do sistema será atualizado para que a atualização seja agendada ou
cancelada.
8. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 8 of 13
4.1.1 UC – Atualizar Licenças
Este caso de uso começa quando os arquivos que contem os bancos de dados são
atualizados em pastas que estão dentro da aplicação. A partir da listagem destas
pastas o sistema identifica os servidores e altera dinamicamente a string de conexão
com os bancos de dados para obter as informações necessárias, atualizando assim a
aplicação.
4.1.2 UC – Manter Servidores
Ao realizar este caso o sistema terá disponível um novo servidor em sua base de
dados, este processo é automático sendo executado sempre que uma nova pasta é
incluída na estrutura da aplicação.
4.1.3 UC – Atualizar Servidores
Ao realizar este caso o sistema terá efetuado a atualização dos arquivos nos
servidores remotos da aplicação X. Este processo é automático sendo executado
sempre que um agendamento de atualização é solicitado.
4.1.4 UC – Agendar Atualização
Ao realizar este caso o sistema terá disponível um novo agendamento de atualização.
Este processo é manual e é solicitado por um usuário através do portal da aplicação.
5. Visão Lógica
5.1 Overview
O sistema Cockpit é composto por módulos que dividem funcionalidades em camadas
do sistema, existem 3 camadas bem definidas:
- Camada de Regra de Negocio (BLL)
As regras de negócio definem como o seu negócio funciona. Essas regras podem
abranger diversos assuntos como suas políticas, interesses, objetivos, compromissos
éticos e sociais, obrigações contratuais, decisões estratégicas, leis, regulamentações,
entre outros.
- Camada de Acesso de Dados (DAL)
É uma camada separada da camada da apresentação de dados que tem a função de
efetuar a conexão com a fonte de dados e através de comandos SQL (neste nosso
caso) obter os dados para apresentação.
- Transferência de Dados de Objetos (DTO)
São muitas vezes utilizados em conjunto com os objetos de dados de acesso para
recuperar dados de um banco de dados. A diferença entre os objetos de
transferência de dados e objetos de negócios ou objetos de acesso a dados é que um
DTO não tem qualquer comportamento, exceto para armazenamento e recuperação
de seus próprios dados.
9. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 9 of 13
5.2 Projeto dos Pacotes
5.2.1 Banco de dados
Contêm todos os atributos necessários para identificar os bancos de dados das
diversas instancias do software X.
Identificação do servidor
Nome do servidor
Quantidade de licenças ativas
Quantidade de licenças restantes
5.2.2 Atualização
Contêm todos os atributos necessários para atualização dos arquivos das diversas
instancias do software X.
Identificação do servidor
Pasta FTP de destino do arquivo
Nome do usuário FTP
Senha do usuário FTP
Pasta de origem dos arquivos a serem atualizados
Pasta de destino dos arquivos a serem atualizados
Pasta de backup dos arquivos a serem atualizados
Data do último update
Update forçado
Update agendado
5.2.3 Usuario
Contêm todos os atributos necessários para autenticar o usuário no sistema.
Login do usuário
Senha do usuário
10. Cockpit Versão: 1.0
Data: 16/09/2016
Confidencial Fabio Lucchiari, 2016 Page 10 of 13
5.3 Diagrama de Classes
5.3.1 Cockpit License Check