1 FACULDADE DE BALSAS CURSO DE SISTEMAS DE INFORMAÇÃO SISJOL - SISTEMA DE CONTROLE ACADÊMICO PARA ESCOLA JOVEM ON LINE José Euclides da Silva Lopes Balsas (MA) 2013 2 FACULDADE DE BALSAS CURSO DE SISTEMAS DE INFORMAÇÃO SISJOL - SISTEMA DE CONTROLE ACADÊMICO PARA ESCOLA JOVEM ON LINE por José Euclides da Silva Lopes Trabalho de Conclusão de Curso apresentado como exigência parcial para obtenção do título de Bacharel em Sistemas de Informação à Faculdade de Balsas, sob a orientação do Professor Jefferson Fontinelle da Silva. Balsas (MA) 2013 3 DEDICATÓRIA A Deus por ter me dado a oportunidade de viver. A todos os meus familiares pelo incentivo e carinho constante. Em especial a minha mãe, pois sem ela nada seria possível, a minha amada esposa e meu querido filho que tanto me apoiaram nessa etapa da minha vida. 4 AGRADECIMENTOS Agradeço a todos que direta ou indiretamente, contribuíram para a elaboração deste trabalho. Em especial ao professor Jefferson Fontinele da Silva, pelo apoio e paciência. A meus companheiros de curso por ter me ajudado no decorrer desta etapa. 5 RESUMO O desenvolvimento de sistemas computacionais pra desktop são o foco deste projeto. Para tanto serão estudadas técnicas de análise e modelagem de sistemas, softwares para gerenciamento de informação, softwares para geração de relatórios e softwares para controle de versão. A proposta é desenvolver um sistema para cadastro de alunos e controle de frequências, bem como cadastro de usuários de uma instituição de ensino de informática denominada Jovem On Line. O sistema será implementado no ambiente de programação NetBeans. Estre as várias linguagens de programação que ele disponibiliza optou-se por JAVA devido às vantagens que a mesma disponibiliza tais como: utiliza o paradigma de programação orientado a objetos permitindo assim que o desenvolvedor crie um programa a partir de pequenas partes e possibilita a criação de programas com recursos gráficos semelhantes aos utilizados em interface Windows. Esperasse que com o uso do SISJOL haja uma redução de custos. Palavras-chave: Desktop. JAVA. Orientação a Objetos. 6 LISTA DE FIGURAS Figura 2.2.1 - Prototipação evolucionária ............................................. 18 Figura 2.2.2 - Prototipação descartável ................................................. 19 Figura 2.10.1: Tabela de departamentos ............................................... 29 Figura 2.10.2: Tabela de funcionários ................................................... 29 Figura 4.1.1: Arquitetura do SISJOL ...................................................... 34 Figura 4.1.2: Estrutura de pastas........................................................... 35 Figura 4.2.1: Diagrama de caso de uso do cadastro de aluno. ............. 37 Figrua 4.2.2: Diagrama de atividades de cadastro do aluno. ................ 37 Figura 4.3.1: Diagrama ER do banco ................................................... 39 Figura 4.4.1: Tela principal do SISJOL. ................................................ 41 Figura 4.5.1: Tela para matricula de alunos. ......................................... 42 Figura 4.6.1: Tela de cadastro de aluno. .............................................. 43 Figura 4.8.1: Uso da ferramenta Git. .................................................... 46 7 LISTA DE SIGLAS API - application programming interfaces ..................................................... 21 Birt - Business Intelligence and Reporting Tools ......................................... 25 CPF – Cadastro de Pessoa Física ................................................................. 43 DBMS - database management system ....................................................... 27 IDE - Interface Development Environment ................................................... 21 JUDE - Java and UML Developer Environment .......................................... 31 SGBD’s - Sistemas de Gerenciamento de Banco de Dados .................... 30 SQL - Structured Query Language ................................................................. 30 TI – Tecnologia da Informação......................................................................... 12 UML - Unified Modeling Language .................................................................. 31 XML - eXtensible Markup Language .............................................................. 26 8 LISTA DE APÊNDICES APENDICE A – Especificação de Caso de Uso/ Requisitos ............... 51 ADENDICE B – Telas do SISJOL ....................................................... 63 APENDICE C – Relatório de Cadastro de Alunos............................... 68 APENDICE D – Relatório de alunos aptos a receber certificado......... 79 9 SUMÁRIO 1. INTRODUÇÃO ............................................................................... 11 1.1. Delimitação do tema .................................................................... 13 1.2. Problemática ................................................................................ 13 1.3. Problemas Específicos ................................................................ 13 1.4. Objetivos ......................................................................................13 1.4.1. Objetivo Geral ........................................................................... 13 1.4.2. Objetivos Específicos ................................................................ 13 1.5. Justificativa ..................................................................................14 1.6. Metodologia ................................................................................. 15 2. REFERENCIAL TEÓRICO ............................................................ 16 2.1. Análise de Software ..................................................................... 16 2.2. Prototipação................................................................................. 17 2.3. Desenvolvimento de Software Java para Desktop ....................... 20 2.4. Ferramentas de Desenvolvimento ............................................... 21 2.5. Ferramentas de Controle de Versão ............................................ 22 2.6. Teste de Software ........................................................................ 23 2.7. Ferramentas para Geração de Relatórios .................................... 25 2.8. Levantamento de Requisitos........................................................ 26 2.9. Banco de Dados .......................................................................... 27 2.10. SGBD MySQL............................................................................ 30 2.11. MySQL WorkBench ................................................................... 31 2.12. Jude Community ........................................................................ 31 3. ESTUDO DE CASO ....................................................................... 32 3.1. Requisitos mínimos que o sistema deve atender ......................... 33 10 4. IMPLEMENTAÇÃO DO SISJOL .................................................... 34 4.1. Sistema Proposto ........................................................................ 34 4.2. Levantamento de Requisitos........................................................ 36 4.3. Modelo do Banco de Dados ......................................................... 38 4.4. Projeto de Telas ........................................................................... 40 4.5. Padronização do Layout .............................................................. 41 4.6. Implementação Lógica de Negócios ............................................ 42 4.7. Relatórios .................................................................................... 44 4.8. Controle de Versão ...................................................................... 45 4.9. Teste............................................................................................46 4.10. Implantação ............................................................................... 47 4.11. Redução de custos .................................................................... 47 5. CONCLUSÃO................................................................................. 48 5.1. Trabalhos Futuros ........................................................................ 48 6. REFERÊNCIAS BIBLIOGRÁFICAS............................................... 49 APÊNDICE ......................................................................................... 51 11 1. INTRODUÇÃO Segundo Moran (2003) a cada dia que passa as escolas estão incluindo novas tecnologias em seu ambiente e utilizando-as nas atividades pedagógicas e administrativas, visando garantir o acesso imediato à informação. Ainda em conformidade com o autor acima citado é comum o uso de sistemas informatizados capazes de integrar todas as informações da escola em bancos de dados, tornado possível não só registrar como também atualizar instantaneamente toda a documentação referente aos processos escolares e a vida acadêmica do aluno. Para Santos (2002) a instituições escolares estão sofrendo mudanças a cada dia para melhor formar cidadãos oferecendo a possibilidade de aprender competências e habilidades necessárias que facilitam a inserção social. Com isso, a cada vez mais é exigido das instituições de ensino uma gestão escolar eficiente, a qual pode ser facilitada pela utilização de recursos inteligentes oferecidos pela tecnologia de informação e sistemas de informação. (STAIR, 2002). A tecnologia da informação tem facilitado à tomada de decisões nas instituições de ensino. Pois para que haja um bom planejamento das atividades escolares e a instituição consiga desempenhar bem seu papel é indispensável no cenário atual o uso da tecnologia da informação. A TI é utilizada para que os processos escolares sejam dotados de confiabilidade, eficiência e eficácia, melhorando assim o desempenho das atividades em uma instituição de ensino e por consequência apoia os processos educacionais e a gestão escolar. (FRANCO et al., 2009). A gestão escolar tem a ver com todas as atividades organizacionais e documentais necessárias para garantir que todos os cursos oferecidos cumpram com seus requisitos, com o mínimo de erro o máximo de eficiência e participação dos alunos e professores. Com a quantidade enorme de informação surgem problemas para os gestores escolares na maioria das vezes relacionados com a vida acadêmica do aluno. Por isso os gestores estão cada vez mais recorrendo a sistemas informatizados que auxiliam de maneira rápida e eficiente a inserção e localização de dados escolares da vida acadêmica do aluno. (STAR, 2002). 12 A tecnologia veio para mecanizar os processos e a informação tem o propósito básico de habilitar a instituição escolar a alcançar seus objetivos pelo uso eficiente dos recursos disponíveis através da tecnologia, portanto, tecnologia e informação trabalhando juntas podem dar condições favoráveis ao crescimento e auxiliar no futuro de instituições escolares. Segundo Josuttis (2008) a tecnologia de informação aliada a uma melhor prática em desenvolvimento de software possibilita a construção e aplicações em prazos bastante curtos, capazes de atender desde pequenos a grandes volumes de utilização com precisão e eficiência. Para que um software seja criado bem estruturado e possua boa qualidade é necessário que o processo de desenvolvimento seja feito de tal forma que possibilite uma boa manutenção e um bom reaproveitamento do mesmo. (SOMMERVILLE, 2003). Existem dois aspectos entre muitos que se deve dar uma atenção especial ao se desenvolver um software para uma empresa ou instituição são eles: heterogeneidade e mudança. A heterogeneidade lida com o fato das intuições possuírem vários sistemas e quase sempre esses sistemas são dotados de arquiteturas diferentes. O mundo por sua vez esta em constante mudança, obrigando a TI a se modificar para dar suporte a essas mudanças. (HURWITZ et al., 2009). Com o intuito de enfrentar desafios tais como, heterogeneidade e mudança, optou-se por Java como linguagem para desenvolvimento tendo em vista que segundo Deitel (2005) essa linguagem lida muito bem com esses dois aspectos. Dois outros fatores tiveram peso crucial na escolha da linguagem, são eles: facilidade de desenvolvimento e habilidade previa do desenvolvedor com a linguagem. Baseado nisso a proposta deste trabalho é desenvolver um software utilizando a linguagem de programação acima citada para um ambiente de gestão acadêmica de uma instituição de ensino de informática que faça o controle de todos os dados da vida acadêmica do aluno. 13 1.1. Delimitação do tema Este trabalho tem como objetivo apresentar o desenvolvimento de um sistema em Java SE, o sistema em questão será proposto para uma instituição de ensino de informática e fará entre outros o controle de frequências dos alunos. A instituição escolhida foi à escola de informática Jovem On Line. 1.2. Problemática Todo o processo escolar é realizado de forma manual o que gera uma baixa produtividade e falta de informações quantitativas confiáveis. 1.3. Problemas Específicos Há uma grande dificuldade em controlar os processos escolares tais como, lançamento de notas, de frequências entre outros, o que acaba gerando desorganização, devido os seus processos escolares serem realizado exclusivamente de forma manual. 1.4. Objetivos 1.4.1.Objetivo Geral Este trabalho tem como objetivo o desenvolvimento do sistema de controle acadêmico para a escola de informática Jovem On Line localizada à Rua José Leão s\n centro. 1.4.2.Objetivos Específicos • Fazer o levantamento de requisitos do sistema; • Desenvolver o projeto do sistema; • Realizar a prototipação; • Desenvolver o banco de dados; 14 • Realizar a implementação; • Implantação do sistema; • Realizar testes. 1.5. Justificativa A informação é um fator crucial na gestão acadêmica por ser um recurso decisivo e indispensável tanto no contexto interno como no relacionamento com o exterior, pois atua como método facilitador na busca e no registro das informações dos processos de tomada de decisão no ambiente acadêmico. (MORAN, 2003). Quanto mais confiável, segura e oportuna for essa informação, maior será a agilidade nos processos do ambiente escolar e melhor será a resposta diante da concorrência. Para alcançar o objetivo proposto depende, em sua maioria, reconhecer a importância da informação e do aproveitamento das oportunidades oferecidas pela TI para orientarem os gestores diante dos problemas de eficiência e eficácia dentro da gestão escolar. O desenvolvimento deste sistema fará com que os processos tornem-se mais rápidos e práticos de ser realizados tendo em vista que atualmente a escola Jovem On Line não possui um sistema de informação gerencial que facilite a administração escolar no que diz respeito à execução, acompanhamento e controle de suas atividades, já que todos os seus processos acadêmicos de um modo geral são realizados de forma manual que acaba gerando desorganização, excesso de papel, e extravio de documentos, o que acarreta em uma baixa produtividade e falta de informações. O uso da linguagem de programação Java para o desenvolvimento do sistema de controle acadêmico (SISJOL) se dá principalmente pelas vantagens que esta linguagem oferece, de acordo com (DEITEL, 2005) aqui estão algumas delas: • Linguagem multiplataforma: Uma das grandes vantagens da utilização de Java é dá-se pelo fato de que a mesma é uma linguagem facilmente adaptável para uma infinidade de sistemas em qualquer plataforma, além de 15 ser uma linguagem é também uma plataforma de desenvolvimento, por esta razão é possível desenvolver aplicações para desktop, web, celular, cartão; • Orientada a Objetos: A linguagem Java segue o paradigma de programação Orientado a Objetos, o que a torna linguagem extremamente poderosa. 1.6. Metodologia Através do levantamento de informações nos arquivos da escola de informática Jovem On Line pôde-se dar inicio a metodologia que seria usada para desenvolvimento deste trabalho. A metodologia é composta pelas seguintes etapas: Primeira: foi feita uma análise para saber quem seriam os possíveis usuários do sistema e os mesmos foram também identificados; Segunda: foram colhidos dados em geral para a elaboração do documento de requisitos do sistema; Terceira: revisão bibliográfica sobre a linguagem de programação Java; Quarta: definição e desenvolvimento do banco de dados; Quinta: implementação do sistema; O restante deste trabalho esta organizado em 4 capítulos: • Capítulo 2 – Referencial Teórico: apresenta os principais conceitos e tecnologias utilizadas para o desenvolvimento deste trabalho. • Capítulo 3 – Estudo de Caso: define o estudo de caso e mostra a proposta de solução. • Capítulo 4 – Implementação do SISJOL: mostra os detalhes da implementação do SISJOL. • Capítulo 5 – Conclusão: apresenta as considerações finais. 16 2. REFERENCIAL TEÓRICO Neste capítulo será abordada toda a pesquisa bibliográfica utilizada no trabalho. Os temas que são apresentados nesse capítulo englobam os assuntos relacionados ao desenvolvimento de um software utilizando Java. Também são apresentadas as ferramentas e tecnologias utilizadas durante o desenvolvimento. 2.1. Análise de Software Atualmente existem diversos tipos de softwares cada um com suas propriedades e particularidades, dentre eles estão os que são destinados à educação e ao controle escolar. Porém o desenvolvimento de um sistema mesmo de pequeno porte requer um alto nível de complexidade, pois muitas são as etapas que precisam ser seguidas, tais como: especificação, desenvolvimento, gerenciamento e evolução. (SOMMERVILLE, 2003). O termo software abrange muito mais do que um simples programa de computador, dependendo do porte e da finalidade, um software pode ser até uma série de programas separados, tendo em vista um software não é apenas um programa más também toda a documentação associada que explica como utilizar o sistema e os dados de configuração necessários para fazer com que esses programas operem corretamente. (PRESSMAN, 2006). Por esta razão ao se desenvolver um sistema de computador deve-se antes de tudo pensar nas especificações, pois possuem a finalidade de descrever as funcionalidades e restrições do software, no desenvolvimento, já que o software deve ser produzido de modo que atenda as suas especificações, na validação, pois o software tem de ser validado para garantir que ele faça o que o cliente deseja, e na possível evolução do mesmo já que ele deve evoluir para atender às necessidades de mudança do cliente. (SOMMERVILLE, 2003). As atividades descritas acima para desenvolvimento de um sistema podem ser realizadas utilizando diferentes processos de software (descritos mais detalhadamente na seção 2.7) e de diversas maneiras distintas, para que o mesmo atenda as necessidades do cliente. 17 Um sistema de computador é dito bem sucedido quando ele atende às necessidades tanto do cliente quanto das pessoas que o usam, quando apresentem um bom desempenho sem falhas por um longo período, quando é fácil de modificar e mais fácil ainda de usar. Porém para que se consiga um bom resultado ao se desenvolver um software é necessário que haja disciplina tanto no projeto quanto na construção do protótipo e do sistema final. (PRESSMAN, 2006). 2.2. Prototipação Para se desenvolver um software deve-se sempre ouvir os clientes e usuários finais, pois são eles que expressão boa parte dos requisitos que o mesmo irá conter. Porém na maioria das vezes esses usuários sentem muitas dificuldades em expressar seus reais requisitos (ver seção 2.9), tornando assim quase impossível prever como o sistema afetará as práticas de trabalho, como interagirá com outros sistemas e que operações dos usuários devem ser automatizadas. Para reduzir as incertezas sobre o que o sistema irá fazer é necessário que se faça uma análise cuidadosa do mesmo bem como previsões sistemáticas de requisitos e isso só será possível se um protótipo do sistema estiver disponível. (SOMMERVILLE, 2003). A versão inicial de um sistema de software recebe o nome de protótipo, ela é utilizada para mostrar conceitos, experimentar opções de projeto e, em geral, para conhecer mais sobre os problemas e suas possíveis soluções. Para que os usuários possam fazer experiências há à necessidade do desenvolvimento rápido de um protótipo, isso ajuda também a controlar os custos de desenvolvimento além de apoiar atividades importantíssimas para o desenvolvimento tais como, levantamento e validação de requisitos. (DENNIS & WIXOM, 2005). No que se refere ao levantamento de requisitos o protótipo é de fundamental importância, pois permite que os usuários do sistema realizem experiências para ver como o sistema apoia seu trabalho, isso faz com que esses usuários tenham novas ideias para os requisitos já existentes, podendo até identificar pontos positivos e negativos em relação ao software e criar novos requisitos. Outra função importante do protótipo é que ele pode revelar erros nos requisitos. 18 Como foi dito anteriormente é difícil para o usuário final prever como vai utilizar o sistema para dar apoio ao seu trabalho diário. A situação piora ainda mais se o sistema for de grande porte, pois o nível de complexidade é muito maior, e provavelmente será impossível fazer essa avaliação antes de o sistema ser construído e colocado em operação. Para lidar com essa dificuldade no desenvolvimento de um protótipo pode-se utilizar duas abordagens de implementação, são elas: prototipação evolucionária e descartável. (PRESSMAN, 2006). A prototipação evolucionária fornece ao usuário um sistema incompleto e relativamente simples, que implementa os requisitos mais importantes do usuário ao longo de muitos estágios. À medida que novos requisitos estão sendo descobertos e implementados o sistema é ampliado, até chegar o ponto que se deseja (Figura 2.2.1). Na prototipação evolucionária não existe nenhuma especificação detalhada de sistema e, em alguns casos, pode nem haver um documento formal de requisitos. Atualmente a prototipação evolucionária é a técnica mais utilizada para o desenvolvimento de sites e aplicações de correio eletrônico. (DENNIS & WIXOM, 2005). Construir sistema protótipo Desenvolver especificação abstrata Utilizar sistema protótipo Não Sim Entregar sistema Sistema adequado? Figura 2.2.1 - Prototipação evolucionária Fonte: (SOMMERVILLE, 2003). De acordo com SOMMERVILLE, 2003, o uso da prototipação evolucionária para o desenvolvimento de software oferece duas principais vantagens: 1. Rápido fornecimento do sistema: Como discutido anteriormente é essencial que o software seja disponibilizado rapidamente, já que em alguns casos o fornecimento rápido e a facilidade de uso são mais 19 importantes do que detalhes de funcionalidade ou facilidade de manutenção do software a longo prazo. 2. Compromisso do usuário com o sistema: O fato dos usuários do sistema estarem envolvidos com o processo de desenvolvimento não quer dizer apenas que o sistema tenha uma maior possibilidade de atender seus requisitos, mas significa dizer também que os usuários vão querer contribuir para que ele funcione já que assumiram um compromisso. Por outro lado a prototipação descartável esta mais voltada em ajudar no aprimoramento e na classificação da especificação do sistema. Essa abordagem é utilizada quando se quer a redução de custos totais no ciclo de vida do protótipo e para isso ela amplia o processo de análise de requisitos, o protótipo é escrito, avaliado e modificado (Figura 2.2.2). A função principal nesse tipo de abordagem é esclarecer os requisitos e fornecer informações adicionais para que os gerentes avaliem os riscos de processo. O protótipo é dito descartável por que após a avaliação ele é descartado não sendo, portanto utilizado como base para o desenvolvimento do posterior do sistema. (DENNIS & WIXOM, 2005). Esboçar requisitos Desenvolver protótipo Avaliar protótipo Especificar sistema Componentes reutilizáveis Desenvolver software Validar sistema Sistema de software entregue Figura 2.2.2 - Prototipação descartável Fonte: (SOMMERVILLE, 2003). Porém, o protótipo descartável de software é mais utilizado para ajudar a desenvolver os requisitos que o sistema irá conter e não para a validação de projeto, por isso quase sempre o protótipo é bem diferente o sistema final. Mas de acordo com Sommerville (2003), essa abordagem possui vários problemas tais como: 20 1. Para que se obtenha uma implementação rápida simplifica-se demais e características importantes como às funções de segurança acabam sendo excluídas do protótipo. 2. Esse tipo de implementação não possui apoio legal como um contrato entre o cliente e o fornecedor. 3. Em uma implementação de protótipo requisitos não funcionais, como capacidade de segurança e confiabilidade não podem ser testados adequadamente. Por essas razões é que frequentemente desenvolvedores optam por utilizar uma abordagem de prototipação evolucionária tanto para softwares para desktop quanto para Web. Optou-se por abordar esse tópico já que atualmente há um protótipo do mesmo em funcionamento que foi desenvolvido para que os usuários pudessem experimentar para ver como o sistema pode apoiar o seu trabalho de maneira rápida bem como servir de base para validação dos requisitos do sistema final. 2.3. Desenvolvimento de Software Java Para Desktop Em maio de 1995 foi anunciada pela empresa Sun Microsystems a linguagem de programação que faria uma das grandes revoluções no mundo do software. Tal linguagem de programação foi desenvolvida por uma equipe de programadores chefiada por James Gosling e recebeu o nome de Java, que atualmente pertence a Oracle. O fato de a linguagem ser portável para outros sistemas operacionais é o que chamava mais atenção. Embora a linguagem seja constantemente utilizada para o desenvolvimento de aplicações Web ou para dispositivos móveis, ela também é muito usada para aplicações Desktop. (GONÇALVES, 2006). O uso de Java em aplicações para Desktop esta se tornando cada vez mais comum, embora essa área tenha sido dominada por linguagens nativas como, C; C++, entre outras. Java é uma linguagem de programação que usa como paradigma a orientação a objeto. As linguagens convencionais são compiladas para código nativo, porém a linguagem Java é exatamente o contrário ela é compilada para um bytecode que é executado por uma máquina virtual. Dessa forma um 21 programa Java pode rodar em muitos sistemas operacionais sem a necessidade de alterá-los para a plataforma do sistema, bastando apenas que uma maquina virtual compatível esteja instalada. (DEITEL, 2005). Um programa Java é formado por várias partes chamadas de classes. Essas por sua vez também são formadas por várias partes chamadas de métodos. Os métodos realizam tarefas e retornam informações ao conclui-las. Dessa forma desenvolvedores podem criar cada parte que precisam para formar um programa Java. Mas na prática, o que geralmente se vê graças à reutilização de classes é o uso das ricas coleções de classes existentes nas bibliotecas de classe Java, também conhecidas como APIs do Java (application programming interfaces). Em Java, existem duas bibliotecas de componentes gráficos que disputam a preferência dos desenvolvedores de sistemas desktop: Swing e SWT (Standard Widget Toolkit). Por essas vantagens é que Java é uma da linguagens de programação que mais cresceu nos últimos anos. (DEITEL, 2005). 2.4. Ferramentas de Desenvolvimento Na construção de um software é comum o uso de ferramentas que possibilitam tornar o desenvolvimento mais rápido e fácil, tais ferramentas são conhecidas como ambiente integrado para desenvolvimento de software ou IDE (Interface Development Environment). Trata-se de um framework, que pode ser definido como sendo uma estrutura de suporte, que permite que outro projeto de software possa ser organizado e desenvolvido. Um framework geralmente inclui outros programas que servem de apoio para a construção e podem ajudar no desenvolvimento do software. (GONÇALVES, 2006). Entre as IDE’s mais conhecidas, citam-se duas das mais utilizadas: o Eclipse e o NetBeans. O Eclipse é um ambiente de desenvolvimento integrado para criação de softwares em Java, porém com o uso de plug-ins acoplados, a IDE pode suportar várias outras linguagens de programação aumentando assim seu poder. O Eclipse foi desenvolvido em Java (ver seção 2.3) e tem seu código fonte aberto. (GONÇALVES, 2006). 22 O NetBeans é um ambiente integrado para desenvolvimento de software, desenvolvido pela Sun Microsystems, ele é gratuito e de código aberto, e possibilita o desenvolvimento de sistemas nas linguagens de programação C, C++, Java entre outras. Ele também é uma ferramenta de desenvolvimento multiplataforma, além de ser totalmente escrito em Java. Abaixo estão algumas das funcionalidades que este IDE disponibiliza: (GONÇALVES, 2006). • Um editor amigável de telas; • Integração com banco de dados; • Plug-ins de diversos tipos que possibilitam um aumento na capacidade do programa; Além dessas funcionalidades, o IDE ainda permite que o próprio desenvolvedor crie seus próprios plug-ins, aumentando ainda mais sua capacidade. Por essas e outras vantagens é que o NetBeans vem atraindo cada vez mais desenvolvedores de todo o mundo. Por esta razão é que o NetBeans foi escolhido como IDE para desenvolvimento deste trabalho, citou-se também o Eclipse pois o mesmo poderia ter sido a ferramenta de escolha do desenvolvedor já que ambas possuem características semelhantes. 2.5. Ferramentas de Controle de Versão O controle de versão é um dos fatores de extrema importância no desenvolvimento de um software, pois geralmente são feitas várias alterações para que se alcance o resultado esperado e consequentemente a satisfação do cliente e dos usuários do mesmo. Por esta razão é comum o uso de sistemas desenvolvidos com o proposito de registrar as várias versões que um sistema pode ter, versões estas que vão deste o inicio de sua construção até a entrega final do software. (PRESMAN, 2006). Um sistema de controle de versão1 trata-se de um gerenciador de repositórios. É constantemente utilizado como um repositório de arquivos para o código-fonte de um programa em desenvolvimento. Sistemas desta natureza possuem controle de acesso, permitindo assim fiscalizar toda mudança feita no 1 Controle de versão. Disponível em: <http: www.softwarepublico.gov.br/5cqualibr/xowiki/controleVersão/>. Acesso em 15 de setembro de 2013. 23 código-fonte, além de registrar informações diversas como: quem fez a alteração, por que foi feita e ainda identificar problemas corrigidos ou melhorias nas mudanças realizadas. A falta de controle de versão ocasiona muitas vezes diversos problemas no desenvolvimento de sistemas, tais como: perder alterações; sobrescrever um código; falta de controle de alterações (quem fez a alteração, por que foi feita); contradições e falhas versões. Com o uso de programas de controle versão problemas como estes acima citados podem ser evitados. Citam-se aqui dois dos softwares com esta finalidade e de código-fonte abertos são eles: o Git e o Mercurial. O Git2 é uma ferramenta para o controle de versão de software, foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do Kernel Linux. O Git é um software livre distribuído sobre os termos da licença GNU (General Public License version 2). O Mercurial3 trata-se de uma ferramenta de controle de versão multiplataforma. Foi inicialmente escrito para rodar sobre um sistema operacional Linux, mas logo foi adaptado para Windows, Mac OS X, além da maioria dos sistemas UNIX. Funciona principalmente através de linhas de comando inseridas pelo usuário. Neste projeto opta-se pelo Git como ferramenta de controle de versão devido ao fato do desenvolvedor já conhecer e utilizar o mesmo. 2.6. Teste de Software Ao se desenvolver um sistema uma fase muito importante a ser levada em consideração é a fase de testes, pois é nela que serão descobertos os possíveis erros, inconsistências e falhas no software. Um erro frequente ao se desenvolver um 2 Git for Windows. Disponível em: <http://code.google.com/p/msysgit/>. Acesso em 01 de Outubro de 2011. 3 Mercurial. Disponível em: <https://netbeans.org/kb/docs/ide/mercurial_pt_BR.html>. Acesso em: 15 de setembro de 2013. 24 sistema é querer testá-lo assim que os primeiros módulos são concluídos. (DENNIS & WIXOM, 2005). Para que testes importantes não sejam esquecidos ou desconsiderados não se devem testar eventos diferentes impulsivamente, porque os testes importantes podem ser negligenciados e, na ocorrência de um erro poderá ser difícil reproduzir a sequencia de eventos que ocasionou o erro. Testes devem ser feitos seguindo um critério sistemático, os resultados precisam ser documentados para que seja possível saber o que foi testado. Muitas são as maneiras e técnicas de se testar um software, não importando o paradigma utilizado para o desenvolvimento do mesmo. Abaixo estão descritas algumas das técnicas mais conhecidas e utilizadas segundo DENNIS & WIXOM, 2005. Dos testes descritos abaixo foi realizado apenas o teste de aceitação por ser o único que se encaixa com as especificações do sistema proposto devido a seu nível de complexidade, tendo em vista que os outros testes segundo Sommerville (2003) são realizados geralmente em sistemas e grande porte. • Testes de Unidade: Os testes classificados como testes de unidade focam uma unidade, um programa ou um módulo do programa que executa uma função especifica que pode ser testada. A finalidade desse teste é assegurar que o modulo ou programa execute corretamente sua função conforme definido na especificação do programa. Em se tratando de testes de unidade há duas categorias que devem ser levadas em consideração: teste de caixa preta e teste de caixa branca. O teste de caixa preta trata é voltado para as especificações do programa, é muito utilizado para testar uma unidade que possui um grau normal de complexidade. O teste de caixa branca é utilizado somente quando a complexidade for alta, este testa examina o código fonte do programa para testar seus elementos principais. • Testes de Integração: Testes de integração testam um conjunto de programas ou módulos que precisam trocar dados entre si, para verificar se podem trabalhar juntos sem erros. 25 Eles são realizados com o propósito de assegurar que as interfaces ou vínculos existentes entre partes diferentes do sistema ou módulos funcionem corretamente. • Testes de Sistema: Os testes e sistema são parecidos com os testes de integração, também avaliam se os dados podem ser trocados entre sistemas ou módulos sem erros. Porém a principal diferença ente os dois é que os testes de sistema avaliam em que grau de satisfação os requisitos operacionais, a usabilidade, a segurança e o desempenho do sistema esta diante de uma carga intensa no sistema. • Testes de Aceitação: São testes realizados principalmente pelos usuários. Possuem o objetivo como o próprio nome sugere de confirmar a aceitação do usuário perante o sistema. Testes de aceitação possuem basicamente dois estágios são eles: teste alfa e teste beta. No teste alfa são usados dados simulados para testar o sistema. No teste beta são usados dados reais. Diante disso, observa-se que testes são de fundamental importância no desenvolvimento de um software, pois como dito anteriormente ajudam a localizar erros e possíveis inconsistências. Outro fator de extrema importância na fase de desenvolvimento de um sistema computacional é o uso de uma ferramenta de geração de relatórios oriundos do banco de dados. Ferramenta esta que será descrita mais adiante. 2.7. Ferramentas para Geração de Relatórios No desenvolvimento de um sistema há sempre a necessidade de coleta de dados e posterior salvamento em um banco de dados (ver seção 2.9), para que possam ser acessados a qualquer momento. Tais dados costumam ser visualizados através de relatórios que facilitam o entendimento. Uma rotina comum para os desenvolvedores é a criação de aplicações com o uso de relatórios. Neste sentido existem muitas ferramentas para criação de relatórios no mercado atualmente, 26 porém serão abordadas adiante duas das mais utilizadas para aplicações desktop, são elas: Birt e o iReport. O Birt4 (Business Intelligence and Reporting Tools) é um projeto da fundação Eclipse, e trata-se de uma ferramenta de geração de relatórios, por ser uma ferramenta open source é muito utilizada pelos desenvolvedores. Com o Birt é possível desenvolver relatórios para desktop de maneira simples, já que permite a criação destes sem as complexidades adicionais do ambiente de desenvolvimento integrado Eclipse. O iReport é uma ferramenta para geração de relatórios visuais, que possui como característica o desenvolvimento no formato de XML (eXtensible Markup Language) do padrão JasperReports. O JasperReports é uma biblioteca escrita em Java, de código fonte aberta, que foi projetada por Teodor Danciu em 2001, com o proposito de ajudar os desenvolvedores a criar relatórios para aplicações Desktop e Web. Mesmo sendo uma biblioteca simples, ainda exige que o desenvolvedor conheça seu formato XML, pois o mesmo é utilizado para criar os relatórios, o que torna essa tarefa muito demorada. Por esta razão em outubro de 2002 foi lançada por Giulio Toffoli, a ferramenta descrita acima que recebeu o nome de iReport. (GONÇAVES, 2008). A ferramenta escolhida neste trabalho para geração de relatórios foi o iReport devido ao fato do desenvolvedor já possuí habilidades previas com a mesma. 2.8. Levantamento de Requisitos Um requisito é uma declaração do que o sistema deve ser ou quais características ele precisa possuir. No levantamento de requisitos cliente e desenvolvedor trabalham juntos para descobrir as informações ou serviços que o sistema deve fornecer, bem como o desempenho exigido do mesmo e as restrições de hardware para que o sistema funcione corretamente conforme previsto. (DENNIS & WIXOM, 2005). 4 Artigo Java Magazine 38 - Relatórios e Gráficos com Eclipse. Disponível em: < http://www.devmedia.com.br/artigo-java-magazine-38-relatorios-e-graficos-com-eclipse/8924#ixzz2hnak 8Yof >. Acesso em 10 de outubro de 2013. 27 A finalidade da etapa de levantamento de requisitos é fazer uma conversão da explicação de alto nível dos requisitos expostos pelo cliente em uma lista mais precisa que possa ser usada como informação para o restante da fase de análise criando assim os casos de uso que mais tarde se expandem com base nos requisitos. (SOMMERVILLE, 2003). Os requisitos por natureza dividem-se em funcionais e não funcionais. Um requisito funcional é aquele que se relaciona diretamente a um processo que o sistema tem de executar ou as informações que ele precisa conter. Os requisitos não funcionais têm a ver com as propriedades comportamentais que o sistema deve possuir, como desempenho e usabilidade. A fase de levantamento de requisitos é de fundamental importância, pois também auxilia na criação do banco de dados que o sistema irá conter. A fase de levantamento de requisitos teve um papel fundamental no sistema proposto, pois permitiu que se pudesse ter uma noção do tamanho do mesmo, e como consequência facilitou o levantamento das tabelas que o banco de dados iria conter. 2.9. Banco de Dados Ao se desenvolver um software deve-se pensar na função de armazenagem de dados, pois é ela quem gerencia como eles serão persistidos e como serão tratados pelos programas que estão sendo executados no sistema. A essa função dá-se o nome banco de dados, que basicamente é um arquivo ou conjunto de arquivos que guardam algum tipo de informação e que estão relacionadas entre si de alguma maneira, como por exemplo, por meio de campos comuns para que a mesma possa ser acessada ou alterada. (DENNIS & WIXOM, 2005). Um banco de dados conta com um software que o cria e o manipula, este software é conhecido como sistema de gerenciamento de banco de dados (DBMS, database management system). Há diversos tipos de DBMS, como exemplo cita-se, o Oracle, o MySQL, o MySQL Server, o DB2, o PostgreSQL entre outros, que podem gerenciar os dados e trocar informações com diversos aplicativos. 28 Para guardar a informação um banco de dados usa formatos diferentes de armazenagem de dados. Um exemplo disso são os bancos de dados multidimensionais e banco de dados relacionais. O conceito de banco de dados multidimensional é relativamente novo, e tem sido conduzido em grande parte pelo crescimento de data warehousing, já o banco de dados relacional é o tipo mais popular de banco de dados em uso para o desenvolvimento de sistemas. (DENNIS & WIXOM, 2005). Um banco de dados multidimensional ao armazenar seus dados primeiro faz um cálculo dos dados em múltiplas dimensões e armazena as respostas usando matrizes, o que deixa o carregamento inicial relativamente lento, mas por outro lado o acesso a esses dados é extremamente rápido devido às respostas que já existem nas matrizes. (DENNIS & WIXOM, 2005). Para DEITEL (2005) um banco de dados relacional é uma representação lógica de dados que permite acesso aos dados sem considerar sua estrutura física. Um banco de dados relacional armazena seus dados em tabelas. As tabelas são compostas de linhas, e as linhas são compostas de colunas nas quais os valores são armazenados. Sob uma perspectiva de desenvolvimento o banco de dados relacional é muito mais fácil de trabalhar já que esta baseado em coleções de tabelas, e cada tabela possui um campo ou campos que representam a chave primária, cujo valor é diferente para cada linha da tabela. Desta forma as tabelas são relacionas entre si, colocando a chave primária de uma como uma chave estrangeira na tabela relacionada. Grande parte dos sistemas de gerenciamento de bancos de dados relacionais utilizam uma técnica conhecida como integridade referencial, pois esta assegura que os valores que unem as tabelas por meio de chaves primarias e estrangeiras são válidos e estão sincronizados. (DATE, 2000). A figura 2.10.1 ilustra uma tabela de exemplo que pode ser utilizada em um sistema computacional, e o principal objetivo dessa tabela é armazenar os atributos de departamentos de uma determinada empresa. A figura 2.10.2 objetiva mostrar o relacionamento entre chave primaria e estrangeira, tendo em vista que possui uma chave estrangeira que referencia a chave primaria da tabela 2.10.1. 29 CodDepartamento descDepartamento .... .... 321 Departamento Pessoal .... .... Figura 2.10.1: Tabela de departamentos Fonte: (DATE, 2000). codEmpregado Nome codDepartamento Salário Localização .... .... .... .... .... .... .... .... .... .... 004 Guilherme 321 1.000,00 Balsas .... .... .... .... .... .... .... .... .... .... Figura 2.10.2: Tabela de funcionários Fonte: (DATE, 2000). Tendo em vista que as linhas são únicas dentro de uma tabela os valores das colunas particulares podem ser duplicados entre as linhas. No exemplo acima citado podem existir diversos funcionários que fazem parte do mesmo departamento. Porém devido à integridade referencial existente entre as tabelas se houver a tentativa de inserção de um funcionário na tabela 2.10.2 e o código do departamento digitado não constar na tabela 2.10.1, o sistema de gerenciamento de banco de dados indicará que houve um erro, não permitindo assim a inserção, pois o DBMS antes de inserir verificaria os números do código do departamento na tabela 2.10.1 e descobriria que o numero é invalido. Em um banco de dados às tabelas possuem um numero de colunas fixo, porém o numero de linhas é variável linhas estas que guardam as ocorrências dos dados na tabela. A linguagem padrão para acessar os dados nas tabelas de um banco é a linguagem conhecida como Structured Query Language (SQL). Essa linguagem opera nas tabelas como um todo em vez de operar nos registros individuais das tabelas, assim sendo uma consulta escrita em SQL é aplicada simultaneamente a todos os registros de uma tabela. Por esta razão quando as consultas precisam incluir informações de mais de uma tabela, as tabelas são reunidas primeiro através de seus relacionamentos de chaves primárias e 30 estrangeiras, e são tratadas como se fossem uma grande tabela. (DENNIS & WIXOM, 2005). Tendo em vista que os dados são um fator de fundamental importância e sem eles não haveria a necessidade da existência de um sistema computacional, abordou-se esse tópico a fim de mostrar a importância que um banco de dados possui dentro de um software. Dentre os SGBD’s (Sistemas de Gerenciamento de Banco de Dados) citados nesse tópico o escolhido para desenvolvimento deste trabalho foi o MySQL. 2.10. SGBD MySQL Desenvolvido na Suécia o MySQL5 é um servidor de banco de dados SQL (Structured Query Language – Linguagem Estruturada para Pesquisas) gratuito e de código fonte aberto que tem como características principais: rapidez, confiança, estabilidade, multitarefa e multiusuário, ele é muito utilizado por alguns órgãos públicos no Brasil e no mundo, tais como: Banco Bradesco, NASA, Nokia, Google, entre outros. O servidor MySQL pode ser usado em sistemas de produção com alta carga e missão crítica. Por possuir licença dupla os usuários podem escolher entre usar o programa como um produto gratuito ou podem comprar uma licença comercial padrão. Desde seu inicio o MySQL expandiu-se bastante partindo de uma pequena equipe de três pessoas até seu quadro atual que possui aproximadamente 400 profissionais no mundo inteiro nas áreas de desenvolvimento e manutenção, e ainda conta com mais de mil contribuintes testando-o, integrando-o a outros produtos e escrevendo a respeito dele. A fácil integração com o PHP tem garantido o sucesso ao MySQL permitindo assim que o mesmo cresça ainda mais. Outro fator importante na escolha do MySQL é que ele disponibiliza ferramentas de gerenciamento tais como o MySQL Workbench descrito no próximo tópico. 5 MySQL. Disponível em: http://www.oracle.com/br/products/mysql/index.html?ssSourceSiteId =ocomen. Acesso em: 01 de Outubro de 2013. 31 2.11.MySQL WorkBench O MySQL WorkBench6 é uma ferramenta para modelagem de dados, que integra o desenvolvimento, administração, design de banco de dados, criação e manutenção em um único ambiente de desenvolvimento integrado para o sistema de banco de dados MySQL. Outro recurso que a ferramenta possibilita é a realização de engenharia reversa de esquemas de banco de dados, bem como gerar todos os scripts em SQL. Para facilitar o entendimento a respeito das ações a serem realizadas e classes a serem implementadas é comum o uso de ferramentas para modelagem de dados, na seção seguinte será descrita a ferramenta de modelagem usada neste trabalho. 2.12. Jude Community O JUDE7 (Java and UML Developer Environment) é uma das ferramentas de modelagem UML mais poderosas que existe na categoria free, ele é rico em funcionalidades, e oferece características como edição e impressão de diagramas UML (Unified Modeling Language – Linguagem de Modelagem Unificada), importa/exporta código fonte Java, saída de gráficos e disposição automática. Ele também é extremamente fácil e leve de usar. A linguagem UML auxilia o desenvolvedor a visualizar o desenho do sistema bem como a comunicação entre os objetos do mesmo de forma padronizada. Por esta razão abordou-se este tópico e optou-se pelo uso de tal ferramenta. 6 MySQL WorkBench. Disponível em: <http://www.mysql.com/products/workbench/>. Acesso em: 01 de Outubro de 2013. 7 Jude Community. Disponível em: <http://jude.change-vision.com/judeweb/product/jude_pl.html>. Acesso em: 01 de Outubro de 2013. 32 3. ESTUDO DE CASO A escola Jovem On Line é uma instituição de ensino voltada para jovens de baixa renda, fica localizada em Balsas à Rua José Leão, s/n Centro. Atualmente a instituição possui noventa e oito alunos. O principal objetivo da escola de informática Jovem On Line é introduzir a informática através de aulas de computação a fim de aumentar as chances no mercado de trabalho para milhares de jovens, no entanto a instituição escolar tem enfrentado barreiras desde o inicio por não contar com um sistema para automatizar os processos escolares. Atualmente, todo o processo é realizado de forma manual o que gera uma baixa produtividade e falta de informações confiáveis para as tomadas de decisões. Este trabalho tem como foco realizar uma pesquisa sobre a linguagem de programação Java SE, bem como as ferramentas utilizadas para o desenvolvimento de uma solução que tem como objetivo promover o aumento da eficiência nos processos escolares da instituição acima citada. O SYSJOL (Sistema Joven On Line) facilitará a manutenção dos processos escolares. O sistema em questão será desenvolvido de forma que facilite a manutenção do mesmo para que assim possa ter flexibilidade às mudanças organizacionais que constantemente são exigidas. O sistema proposto deverá funcionar como um gerenciador de processos, sendo que os papéis deverão ser substituídos por formulários eletrônicos o que resultará na diminuição do tempo de resposta, armazenamento dos dados, redução de custo e por consequência aumento da eficiência e eficácia dos gestores educacionais, visando garantir a melhoria dos resultados financeiros. O desperdício de tempo e as falhas na confirmação ou alteração de dados, processos estes que atualmente são realizados de forma manual não mais existiram, pois ambos serão automatizados visando facilitar tanto o processo de matrícula como de renovação. Antes de efetivar a matrícula será realizada uma pesquisa no sistema para verificar a disponibilidade de vagas em uma determinada turma, evitando assim o preenchimento desnecessário no formulário de matricula. 33 O uso da ferramenta em questão também facilitará o processo de entrega de certificados, pois gerará automaticamente uma lista informando quais os alunos que estão aptos á receberem o certificado de conclusão de curso. A ferramenta também automatizará os seguintes processos: controle de frequências, emissão de diário de classe e registro de conteúdo programático. Todos com os respectivos controles de segurança de acesso por nível de usuário. 3.1. Requisitos mínimos que o sistema deve atender Cadastrar Usuário: O sistema deverá permitir ao funcionário realizar o cadastro de um novo usuário. Ao efetuar o logon no sistema, que será concedido utilizando uma senha individual, o sistema apresentará um Menu de opções, entre elas cadastrar usuário, ao preencher os dados solicitados, o novo usuário estará apto a usar o sistema de acordo com o nível de acesso para ele liberado. Matricular Aluno: O sistema deverá permitir ao funcionário realizar a matrícula de um novo aluno. Ao efetuar o logon no sistema, que será concedido utilizando uma senha individual, o sistema apresentará um Menu de opções, entre elas efetuar Matrícula. Cadastrar Conteúdo: O atendente de acordo com o nível de acesso poderá cadastrar o conteúdo de cada turma ou solicitar conteúdo já cadastrado para uma determinada turma. Ao efetuar o logon no sistema, que será concedido utilizando uma senha individual, o sistema apresentará um Menu de opções, entre elas cadastrar conteúdo programático. Registrar Frequência: O professor poderá efetuar a frequência do aluno. Ao efetuar o logon no sistema, que será concedido utilizando uma senha individual, o sistema apresentará um Menu de opções, entre elas inserir frequência, o professor registrará a frequência do aluno automaticamente no sistema com o mesmo em sala de aula. 34 4. IMPLEMENTAÇÃO DO SISJOL Neste tópico será apresentado à implementação do SISJOL (Sistema Jovem On Line). 4.1. Sistema Proposto Com o objetivo de automatizar os processos de cadastro de aluno, controle de frequência e entrega de certificados da escola de informática Joven On Line, foi proposto o desenvolvimento de um sistema de gestão escolar denominado SISJOL. O sistema em questão é um sistema para desktop e foi desenvolvido utilizando a linguagem de programação Java. A forma como a arquitetura do SISJOL esta organizada pode ser vista na figura 4.1.1. Apresentação Controle de Acesso Persistência Banco de Dados Figura 4.1.1: Arquitetura do SISJOL Fonte: (Date, 2000) Conforme visto na figura acima o SISJOL é composto por 4 camadas, são elas: • Apresentação: é responsável pela entrada e saída do sistema (visualização). • Controle de acesso: esta camada é responsável por permitir ou não acesso ao sistema. • Persistência: responsável por persistir os dados no banco de dados. • Banco de Dados: responsável por armazenar os dados. A figura 4.1.2 demonstra a estrutura de pastas que compõem o sistema proposto. 35 Figura 4.1.2: Estrutura de pastas A estrutura da figura acima citada é composta pelos seguintes pacotes: • Apresentação: neste pacote estão presentes as doze telas (parte visual do software) que compõem o sistema. • Controle de acesso: neste pacote consta a classe responsável pelo controle de acesso ao sistema. • Ícones: composto pelos ícones que formão o sistema. • Persistência: este pacote é formado pela classe responsável por persistir e recuperar os dados do sistema no banco de dados. 36 • Relatórios: responsável por armazenar os relatórios gerados pelo software. • Utilitários: armazena a classe responsável que fornece a data e hora que são utilizadas no sistema. 4.2. Levantamento de Requisitos O levantamento dos requisitos de um determinado software é a primeira tarefa a ser realizada na sua criação. A análise de requisitos geralmente é um processo longo e árduo a ser implementado pelo desenvolvedor, mas possui um papel fundamental, pois é através dela que outras etapas que compõem o software surgirão. Com base nas necessidades descritas pelos usuários foram detectados os requisitos que o sistema iria conter, os mesmos podem ser vistos na seção (Apêndice A), diante disso identificou-se que sistema conteria as certificados; seguintes cursos; funções principais: frequências; grade cadastro de curricular; alunos; matricula; responsável; semestre; turma; usuários; login e tela principal. Para facilitar o entendimento foi feita a especificação do sistema baseado nos requisitos levantados, para isso utilizou-se a Linguagem de Modelagem Unificada (UML) a fim de apresentar o diagrama de caso de uso e o diagrama de atividades para a tarefa de cadastro de aluno. Na figura 4.2.1 pode-se observar o diagrama de caso de uso de cadastro de aluno. 37 Figuraa 4.2.1: Diagrama de caso de uso do cadastro de aluno. A figura acima demostra as etapas que ocorrem para que seja efetuado o cadastro de um aluno no sistema, são elas: após estar conectado o usuário solicita a tela de cadastro de aluno, o sistema informa que é necessário que seja feito o cadastro do responsável pelo aluno, apos efetuar o cadastro do mesmo o sistema permite que se faça o cadastro do aluno. A figura 4.2.2 ilustra o diagrama de atividades de cadastro de aluno. Figrua 4.2.2: Diagrama de atividades de cadastro do aluno. No diagrama acima as etapas ocorrem de seguinte forma: Inicio: é o principio da atividade de cadastro de aluno. 38 Consultar aluno: antes de o cadastro ser efetuado o sistema informará ao usuário que terá que ser feita uma pesquisa para verificar se o mesmo já não esta cadastrado, caso já esteja o fluxo seguirá pela esquerda sendo possível efetuar a alteração dos dados aluno, o sistema permitira que os dados sejam gravados na etapa seguinte e finalizará o processo de cadastro de aluno. Se o aluno ainda não estiver cadastrado o sistema permitira que seja feito o cadastro o do aluno após verificar se o responsável já esta cadastrado e então permitirá o usuário gravar os dados e finalizará o processo. 4.3. Modelo do Banco de Dados Para armazenar as informações necessárias ao funcionamento do SISJOL optou-se pelo uso de um banco de dados relacional. Conforme mencionado anteriormente na seção 2.9, um banco de dados ou modelagem relacional serve para facilitar os acessos aos dados e isso possibilita que usuários possam utilizar uma grande variedade de abordagens no que se refere ao tratamento das informações, segundo DEITEL (2005). Ainda em conformidade com o autor em um banco de dados relacional um dos principais conceitos é a Entidade Relacionamento (ER), pois é ela quem faz a descrição de todo o sistema, assim como o relacionamento entre os dados e um modelo gráfico. A maior parte das modelagens de dados utiliza como forma estruturada de relacionar os dados o modelo Entidade Relacionamento. Com o levantamento dos requisitos (Ver Apêndice A) expostos na seção 4.2 pode-se traçar o modelo ER do banco. A figura 4.3.1 mostra o modelo de ER do SISJOL. O banco é composto por 12 tabelas relacionadas entre se a fim de obter as informações necessárias quando solicitadas. Todas as tabelas possuem um ou mais campos de identificação únicos, algumas possuem chaves estrangeiras (ver seção 2.9) que fazem o relacionamento entre as tabelas. As tabelas são descritas como segue: login, responsável, aluno, endereço, telefone, certificado, matricula, frequência, turma, grade curricular, curso e semestre. A tabela de login serve para o cadastro de pessoas autorizadas a usarem o sistema; a tabela responsável visa cadastrar o responsável pelo aluno; a tabela aluno, endereço e telefone servem para cadastrar as informações do aluno, a tabela certificado conterá os alunos que 39 receberam certificado; a tabela matricula tem como objetivo guardar a informações de matricula do aluno; a tabela de frequência armazenará as frequências do aluno; na tabela turma ficarão armazenadas as turmas disponíveis; na tabela grade curricular conterão os conteúdos e aulas registradas; a tabela curso indica os cursos disponíveis e na tabela semestre ficarão persistidos os semestres. Figura 4.3.1: Diagrama ER do banco 40 O diagrama de entidade relacionamento serve tanto para mostrar as tabelas que irão compor o banco de dados, como também serve de parâmetro para a etapa de construção de telas do sistema. (ver seção 4.4). 4.4. Projeto de Telas No desenvolvimento das telas que formariam o sistema procurou-se ao máximo levar em consideração as características humanas relevantes no projeto de uma tela, tais como: percepção, memoria, aprendizado, habilidade entre outras. (SOMMERVILLE, 2003). As telas de um sistema devem fornecer somente as informações essenciais à tomada de decisão ou execução de uma ação, bem como fornecer quando possíveis todos os dados relacionados a uma tarefa em uma única tela, sem que haja a necessidade de lembrar-se dos dados de uma tela anterior. Para que isso seja possível faz-se necessário que as telas possuam características tais como: Aparência limpa e ordenada; indicação obvia dos dados que estão sendo mostrados e o que deve ser feito com eles; vocabulário simples e explícito; modo simples de encontrar o que esta no sistema; indicações de quando uma ação poderia realizar mudanças permanentes. Unindo as características acima descritas com o Diagrama de Entidade Relacionamento do banco de dados (ver seção 4.3) tornou-se possível a construção das telas/ formulários que fariam parte do SISJOL. A figura 4.4.1 mostra a tela principal do sistema. A tela principal recebeu este nome devido ao fato de que ela é a tela de entrada para o programa, é portanto o meio de acessar as outras telas para fazer cadastros, consultas ou chamar relatórios. Em sua parte superior, ela abriga a barra de menus composta pelos menus: Cadastros; Matriculas; Inserir; Relatórios; Utilitários; Segurança e Ajuda. Estes por sua vez permitem o acesso aos itens de menus para os mais variados formulários do software. Logo abaixo da barra de menus nota-se a existência de botões que dão acesso imediato a alguns formulários presentes na barra de menus. Já na inferior, ela mostra a barra de status, que tem a função de mostrar o nome do programa, o usuário conectado, a data e a hora. 41 A tela principal é a que comanda todas as outras telas, portanto se for fechada todos as outras se fecham. Figura 4.4.1: Tela principal do SISJOL. No tópico seguinte serão abordadas outras telas bem como a padronização destas em relação a características como cor, tipo de fonte, tamanho da fonte entre outras. 4.5. Padronização do Layout A padronização do layout é um fator muito importante no desenvolvimento de um sistema, pois para que haja uma boa formação das telas (ver seção 4.4) e consequentemente possa ter uma boa aceitação dos usuários do sistema, faz-se 42 necessário que as mesmas possuam características semelhantes. No desenvolvimento do SISJOL os layouts foram padronizados e receberam características semelhantes ou iguais sempre que possível, tais como: • Fontes: a maior parte das fontes possui a mesma cor, tipo e tamanho, exceto em casos que elas expressão informações as quais se deseja dar uma importância maior. • Cor do formulário: com exceção do formulário de tela principal todos os outros possuem a mesma cor. • Botões: possuem os mesmos ícones e estão organizados quase sempre da mesma forma, exceto os casos em que algumas funções não são necessárias. • Campos de texto: os campos que recebem ou retornam textos quase sempre estão da mesa cor e tamanho com algumas exceções. Para exemplificar o que foi dito a figura 4.5.1 mostra a tela de matricula de alunos, que pode ser obtida através da tela principal do sistema. Figura 4.5.1: Tela para matricula de alunos. 4.6. Implementação Lógica de Negócios Este item destina-se a mostrar como uma tela em particular recebe os dados e os grava no banco. Para tanto escolheu-se a tela de cadastro de aluno que pode ser visualizada na figura 4.6.1. A tela de cadastro de cadastro de aluno possui treze campos, dos quais dez precisam ser preenchidos obrigatoriamente, dois 43 precisam ser selecionados obrigatoriamente e um é apenas um retorno do sistema que responde a uma pesquisa feita no campo CPF. Conta também com sete botões que executam ações de acordo com a legenda que constam nos mesmos. Para facilitar o entendimento deve-se verificar o caso de uso 02 (ver anexo), pois o mesmo trata do cadastro de aluno. A pesquisa de responsável é feita através do campo CPF em destaque na figura 4.6.1. Figura 4.6.1: Tela de cadastro de aluno. Abaixo esta descrito o código fonte que localiza o responsável pelo aluno, o código descrito entra em ação quando pressionado o botão OK que esta localizado ao lado do campo CPF. private void jb_pesquisarActionPerformed(java.awt.event.ActionEvent evt) { try { pesquisa_reponsavel.executeSQL("select * from responsavel where cpf like '"+tf_cpf.getText()+"%' order by cpf"); //seleciona os campos da tabela responsavel pesquisa_reponsavel.resultset.first();//posiciona o resultset na primeira posição String igual = "n";//define uma String que será usada para parar a procura int tamanho_pesquisa_cpf = tf_cpf.getText().length();//recebe o tamanho do cpf informado 44 while(igual.equals("n")) //inicia a busca { String pesquisado = pesquisa_reponsavel.resultset.getString("cpf"). substring(0,(tamanho_pesquisa_cpf)); //retorna uma string a partir de índices passados por parâmetro. if(pesquisado.equals(tf_cpf.getText()))// compara o cpf encontrado no banco com o informado pelo usuário { igual = "s"; // para a pesquisa } else pesquisa_reponsavel.resultset.next();// passa para a próxima linha da tabela } tf_nome_do_responsavel.setText(pesquisa_reponsavel.resultset.getString("nome")); //pega no banco o nome correspondente ao cpf informado } catch(Exception erro) { JOptionPane.showMessageDialog(null,"Responsável não cadastrado!"); // informa uma mensagem de erro caso não encontre o item pesquisado. } } Após a localização do responsável, seleciona-se o botão novo para que seja possível desbloquear os campos que até então permaneciam bloqueados. Com isso pode-se inserir os dados do aluno. Após o preenchimento do formulário seleciona-se o botão gravar que chamará o código fonte responsável pelo armazenamento do dados no banco do SISJOL. O código fonte responsável pela persistência dos dados pode ser encontrado na seção de anexos. 4.7. Relatórios Conforme mencionado na seção 2.7, é de fundamental importância que um sistema seja capaz de gerar relatórios, pois eles não só facilitam o entendimento e a visualização dos dados como também permitem o transporte deles. Neste projeto a ferramenta para geração de relatórios que foi utilizada foi o iReport que atualmente esta na versão 5.5.0. Na escola de informática Jovem On Line dois relatórios sempre se fizeram essenciais são eles: relatório de alunos cadastrados e relatório de alunos aptos a 45 receberem certificado. Por esta razão optou-se por gerar esses dois relatórios. Na seção de anexos podem-se encontrar ambos. O processo de geração de um relatório divide-se em duas etapas: • Definição da estrutura: a definição da estrutura (parte visual) é feita através da ferramenta de geração de geração de relatórios. • Chamar relatório: a segunda parte é o processo de fazer com que o sistema chame o relatório. No SISJOL a execução dos relatórios pode ser acionada através dos botões específicos para esta ação. Cita-se abaixo um dos código fontes responsáveis por chamar o relatório de cadastro de alunos. public relatorioFrequencia() {//método construtor da classe relatorioFrequencia try { con.conecta();//responsável por fazer a conexão com o banco de dados con.executeSQL("SELECT * from aluno order by idaluno");//seleciona os alunos da tabela aluno JRResultSetDataSource jrRS = new JRResultSetDataSource(con.resultset); JasperPrint jasperPrint = JasperFillManager.fillReport( "C:/Users/Euclides/Documents/NetBeansProjects/SYSJOL_Verssao_2.0/relatorios/re lat_alunos.jasper", new HashMap(), jrRS); //pega o caminho físico ate o arquivo .jasper JasperViewer.viewReport(jasperPrint,false); //exibe o relatorio com viewReport } catch (Exception erro){ JOptionPane.showMessageDialog(null,"Erro: ="+erro); // no caso de erro informa qual foi o erro. } } 4.8. Controle versão Conforme mencionado na seção 2.5 o controle de versão possui um papel de extrema importância no desenvolvimento de um software, pois ele é capaz de registrar todas as versões que um software pode ter. Versões estas que constantemente vão do inicio de sua construção até a entrega final do software. 46 Após o termino do sistema SISJOL os fontes foram inseridos na ferramenta Git conforme ilustra a figura 4.8.1 Figura 4.8.1: Uso da ferramenta Git. 4.9. Teste Conforme mencionado anteriormente na seção 2.6 os testes são fatores fundamentais para um sistema, pois são eles que apontam os possíveis erros que o mesmo possa conter. O único teste que foi realizado no SISJOL foi o teste de aceitação dos usuários, que conforme o nome sugere são testes que visão a aceitação do usuário perante o sistema. A seção de testes iniciou-se pelo teste alfa, no qual foram inseridos dados simulados para testar as entradas e saídas do sistema que puderam ser comparadas com entradas e saídas de uma determinada planilha. O mesmo ocorreu com o teste beta, com a diferença neste último os dados eram reais. Tendo em vista que já existe um protótipo do mesmo em execução à aproximadamente seis meses. Pode-se afirmar que o protótipo esta tendo uma boa 47 aceitação dos usuários e que não apresentou nenhuma falha no que diz respeito aos dados inseridos. 4.10. Implantação Constatou-se que, pela opinião dos usuários do sistema, o mesmo atende as especificações ao qual foi desenvolvido. O que retrata um cenário positivo no processo de planejamento e implantação do SISJOL na escola de informática Jovem On Line. A informatização propõe trazer benefícios a todos os que utilizarem o software como instrumento de trabalho. De acordo com os usuários é viável a implantação do sistema desde que se garanta a manutenção, o treinamento dos funcionários da escola e o suporte técnico. Em virtude dos fatos mencionados, conclui-se que a implantação de sistemas de informação precisa ser planejada, a fim de oferecer produtos e serviços que atendam a demanda de seus usuários. 4.11. Redução de Custos Com o uso do sistema observou-se que houve uma considerável redução de custos, pois o mesmo permitiu que os dados que antes tinham quer ser impressos constantemente pudessem ser visualizados em formulários eletrônicos. Percebeu-se também que o tempo gasto para se obter informações foi reduzido tendo em vista que antes todas elas ficavam armazenadas impressas em um local específico e com o uso do SISJOL elas puderam ser consultadas com muito mais rapidez a qualquer instante. 48 5. CONCLUSÃO O presente trabalho apresentou a implementação de um software para gestão escolar, denominado SISJOL, o sistema automatiza os processos escolares da escola de informática Jovem On Line. O sistema foi implementado através da linguagem de programação JAVA, seguindo os princípios de uma arquitetura orientada a objeto a qual a linguagem se submete. Todos os objetivos listados na seção 1.4 foram alcançados. Foi possível desenvolver um software que atendesse as especificações dos usuários, automatizando assim os processos que até então eram realizados quase que exclusivamente de forma manual. Pode-se observar que o desenvolvimento do protótipo construído seis meses antes do inicio deste trabalho teve um papel fundamental para o desenvolvimento deste projeto, pois o mesmo provou que todos os processos tornaram-se mais ágeis de serem realizados como também houve uma economia significante de papel, porém observasse que há a necessidade de uma solução um pouco mais abrangente em relação aos relatórios gerados entre outros. Solução esta que serve de proposta para trabalho futuros. 5.1. Trabalhos Futuros Posteriormente realizar uma implementação que permita que o SISJOL funcione em rede, sendo possível, portanto que o mesmo possa ser utilizado em várias estações de trabalho bem como a geração de um relatório para diário escolar e um registro de ocorrências do comportamento do aluno. Com o desenvolvimento dos módulos acima citados, o sistema de gestão escolar (SISJOL) pode se tornar bem mais completo. 49 6. REFERÊNCIAS BILIOGRÁFICAS Alexandre (org.). Gestão educacional e tecnologia. São Paulo, Avercamp, 2003.ole de versão. Disponível em: <http: www.softwarepublico.gov.br/5cqualibr/xowiki/controleVersão/>. Acesso em 15 de setembro de 2013. Artigo Java Magazine 38 - Relatórios e Gráficos com Eclipse. Disponível em: < http://www.devmedia.com.br/artigo-java-magazine-38-relatorios-e-graficos-comeclipse/8924#ixzz2hnak 8Yof >. Acesso em 10 de outubro de 2013. DATE, C.J. Introdução aos Sistemas de Banco de Dados. 7º Ed: RJ: Campus, 2000. DEITEL, H. M.; DEITEL, P. J.. Java - Como Programar. 6.ed. São Paulo: Pearson Prentice Hall, 2005. DENNIS, Alan & WIXOM, Barbara Haley. Análise e Projeto de Sistemas. Rio de Janeiro: LTC, 2005, 2ª. Ed. FRANCO, Decio et al. Tecnologia e Ferramentas de Gestão. 1ª ed. São Paulo: Alinea, 2009. Git for Windows. Disponivel em: <http://code.google.com/p/msysgit/>. Acesso em 01 de Outubro de 2011. GONÇALVES, Edson. Dominando NetBeans. Rio de Janeiro: Ciência moderna, 2006. GONÇALVES, Edson. Dominando Relatórios JasperReport com iReport. Rio de Janeiro: Ciência moderna, 2008. JOSUTTIS, Nicolai M. Soa na Prática, 1ª ed. Rio de Janeiro: Alta Books, 2008. Jude Community. Disponível em: <http://jude.change-vision.com/jude- web/product/jude_pl.html>. Acesso em: 01 de Outubro de 2013. Mercurial. Disponível em: <https://netbeans.org/kb/docs/ide/mercurial_pt_BR.html>. Acesso em: 15 de setembro de 2013. 50 MORAN. José M. Gestão Inovadora da Escola com Tecnologias. In: VIEIRA, Alexandre (org.). Gestão educacional e tecnologia. São Paulo, Avercamp, 2003. MySQL. Disponível em: http://www.oracle.com/br/products/mysql/index.html? ssSourceSiteId =ocomen. Acesso em: 01 de Outubro de 2013. MySQL WorkBench. Disponível em: <http://www.mysql.com/products/workbench/>. Acesso em: 01 de Outubro de 2013. PRESSMAN, Roger S. Engenharia de Software. 6.ed. São Paulo: McGraw – Hill, 2006. SANTOS, Clóvis Roberto dos. O gestor educacional de uma escola em mudanças. São Paulo: Pioneira, 2002. SOMMERVILLE, I. Engenharia de Software. SP: Prentice Hall Brasil, 2003. STAIR, Ralph M.; REYNOLDS, George W. Princípios de Sistemas de Informação. 4ª edição. Rio de Janeiro: LTC, 2002. WIKIPEDIA, a enciclopédia livre. Ferramentas de Modelagem. [S.l.]: [s.n.], 2013. Disponível em: <http://pt.wikipedia.org/wiki/Ferramentas_de_Modelagem>. Acesso em: 01 de Outubro de 2013. WURWITZ, J. et al. Arquitetura Orientada a Serviços: SOA Para Leigos. 2ª ed. Alta Books, 2009. 51 APÊNDICES APÊNDICE A – Especificações de Caso de Uso/ Requisitos Tabela 1 - Caso de Uso 01 – Efetuar Login Número Requisito Funcional RF – 01 Efetuar Login Descrição Ao tentar logar no sistema o atendente deverá inserir usuário e senha. Requisitos Não Funcionais Nome Condição/Restrição RNF–01: Somente funcionário com seus dados validados poderá, efetuar login no sistema. RNF- 02: Se o acesso for negado ao funcionário, o mesmo deverá solicitar permissões Atores Professor, Secretária. Pré-Condições • O funcionário ter acesso ao computador que possui o sistema. Fluxo Principal P1. O funcionário abre o sistema; P2. O sistema apresenta tela de login; P3. O funcionário digita seu login; P4. O funcionário digita sua senha; P5. O sistema valida os dados; P6. O sistema mostra tela principal; Fluxo Alternativo A1. Se ocorrer erro do funcionário ao digitar seus dados de acesso, o sistema retornará ao P2. Pós-Condições Após validação dos dados o funcionário está logado no sistema. 52 Tabela 2- Caso de Uso 02 – Cadastrar Aluno Número Requisito Funcional RF – 02 Cadastrar Aluno Descrição O funcionário realiza o login no sistema e escolhe a opção cadastrar aluno. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente funcionário com seus dados cadastrados no sistema poderá matricular aluno. RNF– 02: O funcionário devera verificar se o responsável pelo aluno já esta cadastrado no sistema. RNF– 03: O funcionário devera verificar se o aluno já esta cadastrado no sistema. Atores Professor ou Secretária e o aluno. Pré-Condições • O funcionário tem que estar logado no sistema. Fluxo Principal P1. No menu principal o atendente escolhe a opção Cadastrar Aluno; P2. O atendente verifica se o responsável pelo aluno já esta cadastrado. P3. O atendente verifica se o aluno já esta cadastrado. P4. O atendente registra os dados do aluno; Fluxo Alternativo A1. Se o responsável não possui cadastro, o mesmo deverá ser efetuado. Retorna para P3. A2. O aluno só poderá ser cadastrado se houver turmas disponíveis. A3. Se o aluno já estiver cadastrado o sistema informará que o mesmo já possui cadastro. Pós-Condições Após validação dos dados o aluno estará cadastrado no sistema. 53 Tabela 3- Caso de Uso 03 – Matricular Aluno Número Requisito Funcional RF – 03 Matricular Aluno Descrição O funcionário realiza o login no sistema e escolhe a opção matricular aluno. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente funcionário com seus dados cadastrados no sistema poderá matricular aluno. Atores Professor ou Secretária e o aluno. Pré-Condições • O funcionário tem que estar logado no sistema. • As turmas devem estar disponíveis no sistema. Fluxo Principal P1. No menu principal o atendente escolhe a opção Matricular Aluno; P2. O atendente informa o ano e o semestre corrente para verificar disponibilidade de cursos e turmas; P3. O sistema informa os cursos e turmas disponíveis; P4. O atendente matricula o aluno na turma e no curso pretendido. Fluxo Alternativo A1. O aluno só poderá ser matriculado se houver vagas na turma e curso escolhidos. Pós-Condições Após validação o aluno estará matriculado. 54 Tabela 4- Caso de Uso 04 – Cadastrar Funcionário Número Requisito Funcional RF – 04 Cadastrar Fucionário Descrição O funcionário realiza o login no sistema e escolhe a opção cadastrar funcionário. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente funcionário com seus dados cadastrados no sistema poderá cadastrar outro funcionário. Atores Professor. Pré-Condições • O funcionário tem que estar logado no sistema. Fluxo Principal P1. No menu principal o atendente escolhe a opção cadastrar funcionário; P2. O atendente informa o login do funcionário; P3. O atendente seleciona a opção controle de acesso; P4. O novo funcionário informa sua senha para acesso ao sistema; Fluxo Alternativo Pós-Condições Após validação o sistema gera um numero de matricula e salva os dados informados; 55 Tabela 5- Caso de Uso 05 – Cadastrar Turma Número Requisito Funcional RF – 05 Cadastrar Turma Descrição O Professor realiza o login no sistema e escolhe a opção Cadastrar Turma. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente professor que possua cadastro no sistema poderá efetuar o cadastro de turmas. Atores Professor. Pré-Condições • O funcionário tem que estar logado no sistema. Fluxo Principal P1. No menu principal o professor escolhe a opção cadastrar turma; P2. O professor informa ao sistema o dia e horário da nova turma. P3. O professor informa o curso que a turma vai estar associada; P4. O professor informa o ano e numero do semestre que a turma estará associada; P5. O professor salvará o registro efetuado; Fluxo Alternativo O sistema retornará uma mensagem de erro caso a turma informada já tenha sido cadastrada, retorna para P2; Pós-Condições A nova turma será cadastrada no sistema; 56 Tabela 6- Caso de Uso 06 – Cadastrar Curso Número Requisito Funcional RF – 06 Cadastrar Curso Descrição O Professor realiza o login no sistema e escolhe a opção Cadastrar Curso. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente professor que possua cadastro no sistema poderá efetuar o cadastro de cursos. Atores Professor. Pré-Condições • O professor tem que estar logado no sistema. Fluxo Principal P1. No menu principal o professor escolhe a opção cadastrar curso; P2. O professor informa ao sistema o curso que será ministrado. P3. O professor informa a carga horária do curso que será ofertado; P5. O professor salva o registro efetuado; Fluxo Alternativo O sistema retornará uma mensagem de erro caso o curso tenha sido cadastrado, retorna para P2; Pós-Condições O novo curso será cadastrado no sistema; 57 Tabela 7- Caso de Uso 07 – Cadastrar Período Número Requisito Funcional RF – 07 Cadastrar Período Descrição O Professor realiza o login no sistema e escolhe a opção Cadastrar Período. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente professor que possua cadastro no sistema poderá efetuar o cadastro de período. Atores Professor. Pré-Condições • O professor tem que estar logado no sistema. Fluxo Principal P1. No menu principal o professor escolhe a opção cadastrar período; P2. O professor informa ao sistema o ano do período. P3. O professor informa o semestre do período; P4. O professor informa a data de inicio das aulas; P5. O professor informa a data de término das aulas; P6. O professor salva o registro efetuado; Fluxo Alternativo O sistema retornará uma mensagem de erro caso o ano e o semestre já tenham sido cadastrados, retorna para P2; Pós-Condições O novo período estará cadastrado no sistema. 58 Tabela 8- Caso de Uso 08 – Emitir Certificado Número Requisito Funcional RF – 08 Emitir Certificado Descrição O atendente realiza o login no sistema e escolhe a opção Emitir Certificado. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente atendente que possua cadastro no sistema poderá efetuar a emissão de certificado. RNF- O aluno ou responsável deverá estar de posse do documento de 02: identidade para conferência; Atores Professor ou secretária, aluno ou responsável. Pré-Condições • O atendente tem que estar logado no sistema. • Só receberá certificado o aluno que não tiver mais de cinco faltas durante o período. Fluxo Principal P1. No menu principal o atendente escolhe a opção emitir certificado; P2. O atendente informa ao sistema o nome do aluno; P3. O sistema retorna o rg do aluno; P4. O atendente confere o rg do aluno; P5. O atendente informa ao sistema o ano que o aluno estudou; P6. O atendente informa o período que o aluno estudou; P7. O sistema retorna o curso e a turma que o aluno estudou; P8. O sistema informa ao atendente a situação atual de regularização do aluno; P9. O atendente informa ao sistema a data de entrega do certificado; P10. O atendente informa ao sistema para quem o certificado foi entregue; 59 P11. A atendente salva o registro efetuado; Fluxo Alternativo A1. O sistema retornará uma mensagem de erro caso o aluno não esteja apto a receber o certificado; A2. O sistema possibilitará que o atendente altere alguma frequência do aluno mediante justificativa do mesmo ou em caso de doença mediante atestado médico, retorna para P8. Pós-Condições A emissão do certificado estará cadastrada no sistema. Tabela 9- Caso de Uso 09 – Inserir Frequência Número Requisito Funcional RF – 09 Inserir Frequência Descrição O Professor realiza o login no sistema e escolhe no menu principal a opção inserir frequência. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente professor que possua cadastro no sistema poderá efetuar a inserção de frequências. Atores Professor. Pré-Condições • O professor tem que estar logado no sistema. Fluxo Principal P1. No menu principal o professor escolhe a opção inserir frequência; P2. O professor informa ao sistema o ano do período. P3. O professor informa o semestre do período; P4. O sistema retorna as turmas disponíveis do período escolhido; P5. O professor informa a turma desejada para realizar a frequência; 60 P6. O sistema retorna o curso e os alunos que estão matriculados naquela turma; P7. O professor informa a data da frequência; P8. O professor informa o indicador de frequência para cada aluno; P9. O professor grava os registros. Fluxo Alternativo O sistema retornará uma mensagem de erro caso a frequência já tenha sido cadastrada, volta para P8; Pós-Condições A frequência de todos os alunos da turma terá sido efetuada. Tabela 10- Caso de Uso 10 – Cadastrar Grade Curricular Número Requisito Funcional RF – 10 Cadastrar Grade Curricular. Descrição O Professor realiza o login no sistema e escolhe no menu principal a opção cadastrar grade curricular. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente professor que possua cadastro no sistema poderá efetuar o cadastro de grade curricular. Atores Professor. Pré-Condições • O professor tem que estar logado no sistema. • O curso ao qual pertencerá a grade terá de estar cadastrado. Fluxo Principal P1. No menu principal o professor escolhe a opção cadastrar grade curricular; P2. O professor informa ao sistema o ano do período. P3. O professor informa o semestre do período; 61 P4. O sistema retorna os cursos disponíveis no período escolhido; P5. O professor seleciona o curso que a grade fará parte; P6. O professor informa ao sistema todo o componente curricular da grade; P7. O professor grava os registros efetuados. Fluxo Alternativo A1. O sistema retornará uma mensagem de erro caso a grade curricular já tenha sido cadastrada para o devido curso e período escolhido, volta para P2; Pós-Condições A grade curricular terá sido cadastrada. Tabela 11- Caso de Uso 11 – Cadastrar responsável Número Requisito Funcional RF – 11 Cadastrar Responsável. Descrição O usuário realiza o login no sistema e escolhe no menu principal a opção cadastrar responsável. Requisitos Não Funcionais Nome Condição/Restrição RNF– 01: Somente usuário que possua cadastro no sistema poderá efetuar o cadastro de responsável. Atores Usuário. Pré-Condições • O usuário tem que estar logado no sistema. Fluxo Principal P1. No menu principal o usuário escolhe a opção cadastrar responsável; P2. O usuário informa ao sistema os dados do responsável. 62 P3. O usuário verifica se o responsável já possui cadastro. P4. O usuário grava os registros efetuados. Fluxo Alternativo A1. Se o responsável já possui cadastro no sistema, O sistema retorna uma mensagem responsável já cadastrado. Pós-Condições O responsável terá sido cadastrado. 63 APÊNDICE B – TELAS DO SISJOL Tela 1 – Tela Principal Tela 2 – Cadastro de Aluno 64 Tela 3 – Login Tela 4 – Tela de cadastro de usuário Tela 5 – Tela de cadastro de turma 65 Tela 6 – Tela de cadastro de semestre Tela 7 – Tela de cadastro de responsável Tela 8 – Tela de matrícula de aluno 66 Tela 9 – Tela de cadastro de componente curricular Tela 10 – Tela de cadastro de curso 67 Tela 11 – Tela de cadastro de certificado Tela 12 – Tela de cadastro de frequência 68 APÊNDICE C – RELATÓRIO DE CADASTRO DE ALUNOS 69 APÊNDICE D – RELATÓRIO DE ALUOS APTOS A RECEBER CERTIFICADO