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
Download

referencial teórico tcc ii