TechProf Projeto SuporteProf Versão 1.0 15 de junho de 2016 Responsáveis: Adelson Santos de Melo Filho, Edvaldo Nicolau da Silva, Moisés Luis da Silva
Histórico de Revisões Data Versão Descrição Autor 02/06/2016 1.0 Primeira versão do Documento de Arquitetura. Adelson, Edvaldo e Moisés Sistema Educacional de Treinamento e Avaliação 2
Sistema Educacional de Treinamento e Avaliação 3
1. Introdução A arquitetura é a base de todo o desenvolvimento e das soluções, envolvidas na implementação, de sistema. Este documento visa detalhar as principais partes da arquitetura do projeto SuporteProf Suporte ao professor. Seus objetivos, os padrões de projeto que foram utilizados, elementos que compõe a arquitetura, requisitos básicos e algumas de suas funcionalidades. 2. Objetivos O do Software tem como objetivo mostrar uma visão geral da arquitetura, além da visão dos diferentes aspectos do software. Este documento é um elo entre o Arquiteto de Software e os outros membros da equipe de projeto sobre as decisões importantes e significativas que foram tomadas durante a realização do projeto. 3. Considerações Gerais Definições arquiteturais de um projeto de software segue o mesmo modelo de uma organização ou instituição e que atenda a todas as necessidades existentes no projeto, desde a segurança, regras de negócio, até a persistência dos dados. Essas definições do projeto em geral estão em um documento à parte, elaborado durante um trabalho de consultoria arquitetural, no caso, será produzido um documento de elaboração de uma Arquitetura proposta para o SuporteProf. As informações documentadas do projeto devem guiar as primeiras versões do do Software, que é desenvolvido durante a fase de elaboração, onde a principal função deste documento é descrever funções arquiteturais do projeto. 4. Responsabilidades O Arquiteto de Software é o responsável por construir este documento e manter a integridade do mesmo durante o processo de desenvolvimento do software. A visão de um arquiteto de software é ampla, não se restringindo a uma determinada tarefa. O arquiteto de software deve: Sistema Educacional de Treinamento e Avaliação 4
Validar todas as mudanças arquiteturais significativas e para poder documentá-las. Representar o comitê que faz as decisões sobre os problemas que possam causar algum impacto arquitetural. 5. Referências 1. Artefato: de Software. Disponível em:< http://www.wthreex.com/rup/process/artifact/ar_sadoc.htm#top> Acessado em Junho de 2016. 2. Tratando exceções em Java. Disponível em: <http://www.devmedia.com.br/tratandoexcecoes-em-java/25514> Acessado em Junho de 2016. 3. Conceitos fundamentos de banco de dados. Disponível em:< http://www.devmedia.com.br/conceitos-fundamentais-de-banco-de-dados/1649> Acessado em Junho de 2016. 4. Banco de dados. Disponível em:< http://www.infoescola.com/informatica/banco-dedados/> Acessado em Junho de 2016. 5. Entendendo Coesão e Acoplamento. Disponível em:< http://www.infoescola.com/informatica/banco-de-dados/> Acessado em Junho de 2016. 6. Repositório. Disponível em :< https://pt.wikipedia.org/wiki/reposit%c3%b3rio> Acessado em Junho de 2016. 7. Padrão de Projeto Facade em Java. Disponível em:< http://www.devmedia.com.br/padrao-de-projeto-facade-em-java/26476> Acessado em Junho de 2016. 6. Arquitetura O que é? E como é composta? A arquitetura foi desenvolvida com coesão e baixo acoplamento, e que ao mesmo tempo fosse independente de tecnologia de solução existentes no mercado atualmente. 6.1. Elementos que compõe a Arquitetura Quais são os principais elementos da arquitetura? A arquitetura é composta por alguns elementos, principalmente por classes, que em conjunto produzem o efeito desejado pela arquitetura como um produto final para o desenvolvimento. Elementos pertencentes à arquitetura: Banco de dados Sistema Educacional de Treinamento e Avaliação 5
Cadastro Exceções Fachadas JDBC Ao decorrer do documento vamos listar cada elemento desses, e sua importância dentro da arquitetura do projeto e/ou o padrão adotado para a implementação do mesmo. 6.2. Banco de Dados O que é essa camada? E para que serve? Banco de dados é na verdade um conjunto de informações que se relacionam e compartilham o mesmo conteúdo. No caso da arquitetura desenvolvida temos uma camada apenas de banco de dados. Para armazenar informações em banco de dados é necessário a criação de tabelas, e dentro dessas tabelas são criadas as colunas. Por isso é de extrema importância que essas tabelas não tenham o mesmo nome, para evitar a mistura de informações. O acesso ao banco é feito através de repositórios e a conexão do banco de dados e o NetBeans é estabelecida através do driver JDBC. Por fim é possível fazer a implementação de funcionalidades básicas de acesso à base de dados e gerenciadores de conexão. 6.3. Cadastro Qual a sua principal finalidade? O cadastro tem como principal função armazenar informações relativas ao projeto SuporteProf. Ele é dividido em dois, o cadastro de turmas e o cadastro de alunos. O cadastro de turmas armazena informações como: O código, nome, endereço e e-mail da turma. O cadastro de alunos segue o mesmo padrão, sendo que não possui código, e sim uma numeração para identificação do aluno. O cadastro acessa a camada de persistência utilizando-se de uma interface, conhecida como interface negócio-dados. Essa interface proporciona uma separação total entre as camadas de negócio e dados. Sistema Educacional de Treinamento e Avaliação 6
6.4. Exceções Para que servem? Quando estamos criando programas em JAVA, podem ocorrer diversos problemas provenientes, por exemplo, de erro de lógica. Por isso um dos recursos mais utilizados pelos programadores, são as exceções (Exceptions). JAVA disponibiliza vários tipos de exceções já existentes, onde são verificadas a todo momento, algumas delas são as exceções de tempo de execução e exceções fatais do sistema. Além disto, é verificado uma solução para tratar dessa exceção, como no caso do projeto SuporteProf, onde foi utilizado os comandos try e catch. Assim criamos algumas exceções que utilizam mais recursos dentro da nossa arquitetura. Algumas exceções criadas são apenas o encapsulamento de exceções já existentes, só que, com mais recursos que facilitarão o desenvolvimento dos sistemas dentro da arquitetura e outras exceções são novas, e foram criadas para estarem dentro do contexto da arquitetura. 6.5. Fachada A porta de entrada para as regras de negócio. A fachada é um padrão de projeto que oculta toda uma complexidade de uma ou mais classes. Ela é a entrada única, tanto das interfaces gráficas do usuário como de outros sistemas, para o acesso as regras de negócio. Com a fachada, conseguimos obter uma independência de interface gráfica, como também podemos proteger e controlar o acesso às regras de negócio. Assim, por exemplo, criamos um sistema totalmente desenvolvido utilizando a tecnologia Swing (recurso usado para a elaboração de interfaces gráficas clientes em JAVA). Conseguimos também facilitar e controlar o acesso às regras de negócio por outros sistemas através deste padrão. Desta forma podemos descrever a fachada como sendo a porta de entrada para um conjunto de casos de usos, que possuem afinidades, que serão acessadas por elementos externos como interfaces gráficas e/ou sistemas. Podemos ter, por exemplo, mais de uma fachada por sistema. Sistema Educacional de Treinamento e Avaliação 7
6.6. Desenho GERAL da Arquitetura.Exe Fachada Cadastro ClasseBasica Interface JDBC ArmazenamentoBD Apresentação Negócio Acesso a Dados Sistema Educacional de Treinamento e Avaliação 8
7. Padrões de Projeto Os padrões de projeto possibilitam a reutilização de técnicas comprovadas com o objetivo de atender requisitos técnicos relacionados ao projeto de um sistema. Para o SSAA, foram analisados alguns padrões de projeto e selecionados aqueles que poderiam ser satisfatoriamente aplicados. 7.1. Facade O padrão de projeto Facade oferece um ponto centralizado e unificado para um conjunto de interfaces em um subsistema ou do sistema como um todo, que representa o conjunto de serviços oferecidos. A TechProf implementa a Fachada como um ponto de acesso único para as funcionalidades, isolando os diversos componentes do sistema. 7.2. Singleton Assegura que a classe terá uma única instância e provê um ponto único de acesso a ela. O padrão Singleton é usado, portanto, dentro da classe Fachada, para limitar a sua instância, acessível a partir de um único ponto específico. Isto é importante por que é a Fachada que serve de ponto de acesso a todos os serviços oferecidos pela TechProf, e que dispõe do conjunto de dados que será compartilhado entre os usuários. 8. Objetivos e Restrições arquiteturais Esta seção descreve os requisitos básicos e objetivos do software que têm algum impacto na arquitetura, tais como: segurança, proteção de dados, privacidade, portabilidade, distribuição, reuso. Também são descritos nesta seção restrições arquiteturais que se aplicam ao projeto, tais como: estratégias de modelagem e implementação, ferramentas de desenvolvimento, sistemas legados. 8.1. Requisitos básicos A arquitetura deve seguir o padrão J2SE. Ambiente de produção utilizado: Windows 7. O modelo de interface deverá ser um arquivo executável. 8.2. Objetivo do Software Tem com finalidade ajudar o professor a monitorar o aluno, fazendo cadastro de turmas e alunos, realizando a lista de frequência, a média bimestral e final. 8.3. Estratégias de implementação Sistema Educacional de Treinamento e Avaliação 9
Persistência de obrigatoriedade, como verificar se todos os campos obrigatórios de um formulário foram preenchidos pode ser feito no próprio software. 8.4. Ferramentas de desenvolvimento Para desenvolver o projeto SuporteProf foi utilizada a ferramenta Netbeans, e o gerenciador de banco de dados PostgreSQL. 8.5. Sistema legado O software roda no sistema Windows 7 ou superior, com Java atualizado. Não é possível utilizá-lo em sistemas ultrapassados. Sistema Educacional de Treinamento e Avaliação 10