Escolar Documentos
Profissional Documentos
Cultura Documentos
MONOGRAFIA
DESENVOLVIMENTO DE SOFTWARE
URUÇUÍ – PIAUÍ
2012
LUCIER FERREIRA LIMA
DESENVOLVIMENTO DE SOFTWARE
URUÇUÍ – PIAUÍ
2012
Desenvolvimento de software
________________________________
Prof,
________________________________
Prof,
________________________________
Prof,
Dedico este trabalho a minha família,
primeiramente, pelo grande apoio, aos meus
professores pelo grande conhecimento que
me passaram durante estes anos e a todos
os meus amigos que sempre me
incentivaram ao estudo.
AGRADECIMENTOS
Este trabalho não poderia ter sido elaborado e escrito sem as contribuições valiosas
de muitas pessoas deixo aqui meus agradecimentos.
Especilamente ao tutor Thiego Ramos por ter despertado meu interesse em propor
um sistema de diário de classe online para a instituição a qual faço parte, agradeço
também por seu tempo, paciência, confiança, ensinamentos transmitidos e
principlamente por sua orientação na área de programação de softwares.
“Se o mestre for verdadeiramente sábio, não convidará o
aluno a entrar na mansão de seu saber, e sim, estimulará
o aluno a encontrar o limiar da própria mente.”
(Khalil Gibran - poeta libanês)
RESUMO
This work aims at developing a system for the Online Handbook to Universidade
Aberta do Piaui -UAPI. It was proposed to develop software that uses a web
platform for the development of this, it used the concepts of software
engineering and object-oriented paradigm. Part of this work a survey and analysis of
requirements, definition of software architecture, implementation and approach to
the use of current technologies like Struts2, Hibernate,Java, JSPs, among
others. The Unified Modeling Language (UML) was essential to document the
development of software and show with clearness and consistency operation of the
system through its main diagrams, such as the Usecase diagram, Class diagram and
Sequence diagram. The system was developed following the model of software into
three layers. It used the Struts2 framework for implementing the Model-View-
Controller (MVC). Design standards were also applied. The object-relational
mapping was implemented using the Hibernate framework. This study
used standards and technologies widely used in a software development
environment. The system was developed in part. It implemented a number of UML
diagrams, showing the potential of this project. Thus, this work shows that it
is viable to build systems gradebook online through the displayed artifacts.
Keywords: Online Handbook, UAPI, web system, UML, software emgenharia, JSP,
Java, Struts, Hibernate
LISTA DE ILUSTRAÇÕES
MVC Model-view-controller
1. INTRODUÇÃO .................................................................................................... 14
2. JUSTIFICATIVA .................................................................................................. 19
3. METODOLOGIA ................................................................................................. 19
4. REVISÃO LITERÁRIA ......................................................................................... 20
4.1 DESENVOLVIMENTO DE SOFTWARE ........................................................ 20
4.2 LEVANTAMENTO DE REQUISITOS............................................................. 20
4.3 METODOLOGIA DE DESENVOLVIMENTO.................................................. 22
4.3.1 METODOLOGIA PSP ........................................................................ 22
4.3.2 EVOLUÇÃO DO PSP......................................................................... 23
4.4 TESTE DE SOFTWARE ................................................................................ 24
4.4.1 TESTE DE UNIDADE ........................................................................ 26
5. FERRAMENTAS DE DESENVOLVIMENTO DE SOFTWARE ............................ 27
5.1 JAVA ............................................................................................................. 27
5.1.1 JAVA EE ............................................................................................ 28
5.1.2 SERVLETS ........................................................................................ 29
5.1.3 JSP .................................................................................................... 30
5.1.4 JSP EXPRESSION LANGUAGE ....................................................... 31
5.2 BANCO DE DADOS RELACIONAL ............................................................... 32
5.2.1 APLICABILIDADE E ATUALIDADE DO POSTGRE ........................... 33
5.2.2 TIPOS DE DADOS DO POSTGRE .................................................... 33
5.2.2.1 TIPO DE DADOS: CARACTERE ................................................. 33
5.2.2.2 TIPO DE DADOS: NUMÉRICOS.................................................. 34
5.2.2.3 INTEIROS .................................................................................... 34
5.2.2.4 NÚMEROS DE PRECISÃO FIXA ................................................. 34
5.2.2.5 TIPOS DE PONTO FLUTUANTE ................................................. 34
5.2.2.6 PSEUDOS TIPOS SERIAIS ......................................................... 35
5.3 TOMCAT ....................................................................................................... 35
5.4 STRUTS 2 ..................................................................................................... 36
5.5 HIBERNATE .................................................................................................. 38
5.6 ECLIPSE ....................................................................................................... 39
5.7 ASTAH UML .................................................................................................. 39
5.8 PADRÃO DE PROJETO................................................................................ 40
5.8.1 PADRÕES ESTRUTURAIS ............................................................... 40
5.8.1.1 FACHADA .................................................................................... 40
5.9 ANÁLISE DO SISTEMA ................................................................................ 42
6. APRESENTAÇÃO DO SISTEMA ........................................................................ 46
7. CONCLUSÃO ..................................................................................................... 52
8. REFERÊNCIAS BIBLIOGRÁFICAS .................................................................... 54
ANEXOS ................................................................................................................... 56
14
1 INTRODUÇÃO
aplicação Web típica seria composta por uma camada de apresentação, geralmente
baseada em Servlets ou JSP, que por sua vez obtém e fornece dados para a
camada de negócios, persistindo dados através de objetos de persistência. Esta
camada intermediária acessa a camada de informação, composta por bases de
dados relacionais, aplicações legadas, sistemas ERP, entre outros.`
19
2 JUSTIFICATIVA
3 METODOLOGIA
4 REVISÃO LITERÁRIA
Figura 1.: Figura.: Evolução do processo PSP [adaptado de Humphrey (1995, 1996, 2000)].
Uma das razões que levou Humphrey a desenvolver o modelo PSP deve-se
ao fato da aplicação dos princípios do modelo SW-CMM ter encontrado muitas
dificuldades ao nível de pequenos grupos de engenheiros de software. O SW-CMM
24
5.1 Java
Com uma sintaxe baseada nas linguagens C e C++, Java dispõe de diversos
recursos que a fazem ser uma linguagem de programação de alto nível.
Dentre os recursos, destacam-se a máquina virtual Java (Java Virtual Machine)
que torna possível a portabilidade do código entre diversos sistemas, e o
coletor de lixo (Garbage Coletor) que facilita a tarefa do programador com
relação à alocação de memória para os objetos.
5.1.1 Java EE
Toda aplicação que segue o padrão J2EE roda sob um container e obedece a
um conjunto de regras da plataforma. Estas regras são importantes, pois os
containers devem saber como tratar os componentes
componentes das aplicações J2EE.
5.1.2 Servlets
servlets de suas aplicações apenas quando recebem alguma requisição para estes
servlets. Ao receber uma requisição para um determinado recurso, uma thread
é alocada para tratamento desta requisição. Caso esta requisição seja para
um recurso gerenciado por um servlet, o container envia a requisição para o
servlet específico. Após processamento da requisição, este servlet poderá
responder ou repassar a requisição a um outro componente Web. A figura 4 ilustra
o ciclo de vida de um servlet.
5.1.3 JSP
Advinda com a especificação JSP 2.0, a JSP Expression Language tem como
objetivo eliminar ao máximo o uso de elementos de scripting dentro de um
documento JSP, permitindo a inserção dinâmica de valores. Ela torna mais
fácil a integração de objetos e suas propriedades com os elementos da interface
gráfica de uma aplicação Web. Além disso, a JSP Expression Language é mais
intuitiva para o aprendizado por outros profissionais que não possuem conhecimento
da linguagem Java. Webdesigners que trabalham com aplicações desenvolvidas
32
em Java e que utilizam JSP não necessitam aprender a sintaxe de Java para
acessar os objetos da aplicação, bastando simplesmente conhecer a sintaxe e os
conceitos da linguagem de expressões do JSP.
* - Note-se que “ilimitado” significa que não há qualquer restrição por parte do PostgreSQL ou seja,
tendo apenas as limitações do espaço livre em disco.
O tipo char(n) armazena uma cadeia de caracteres com tamanho fixo, tendo
como n o seu tamanho máximo. Ocupa 4+n bytes em disco (se a cadeia de
caracteres for menor que n, o campo é preenchido com espaços em branco à
direita). Esses 4 bytes fixos são utilizados pelo PostgreSQL para armazenar
informações referentes ao tipo e tamanho do campo.
5.2.2.3 Inteiros
Os números de precisão fixa são criados com o tipo numeric. Seu uso é
recomendado para armazenar valores monetários e outras quantias nas quais a
exatidão é necessária.
Os tipos de dado real e double precision são tipos numéricos não exatos de
precisão variável. Na prática, estes tipos são geralmente implementações do
"Padrão IEEE 754 para Aritmética Binária de Ponto Flutuante" (de precisão simples
e dupla, respectivamente), conforme suportado pelo processador, sistema
operacional e compilador utilizados.
35
Não exato significa que alguns valores não podem ser convertidos
exatamente para o formato interno, sendo armazenados como aproximações.
Portanto, ao se armazenar e posteriormente imprimir um valor podem ocorrer
pequenas discrepâncias.
A gerência destes erros, e como se propagam através dos cálculos como, por
exemplo: Se for necessário armazenamento e cálculos exatos (como em quantias
monetárias), em vez de tipos de ponto flutuante deve ser utilizado o tipo numeric.
5.3 Tomcat
entanto não basta ter a versão runtime do Java instalado, pois o Tomcat necessita
compilar(e não apenas executar) programas escritos em java.
5.4 Struts 2
Para auxiliar na criação das páginas JSP, existe a taglib que faz parte da
distribuição do framework. As tags que compõem essa taglib possuem funções que
permitem desde a criação de formulários até a renderização de erros provenientes
da camada de controle.
5.5 Hibernate
5.6 Eclipse
ASTAH é uma IDE para Modelagem de Dados (UML) criada com Java e de
uso fácil e intuítivo. Com a IDE ASTAH é possível realizar uma modelagem de dados
complexa , apresenta os dados para o usuário de forma clara e ainda possui a
vantagem de seu layout ser bem intuítivo. A IDE possui à sua esquerda uma Árvore
de Estrutura com todos os Dados à disposição do usuário para se criar diagramas,
mapas.
5.8.1.1 Fachada
Segundo Rocha (2003), “o padrão Façade deve ser aplicado quando for
desejável facilitar o uso de uma aplicação através da criação de uma interface para
um conjunto de objetos, fornecendo assim uma visão mais simples dessa aplicação”.
Coordenador
Professor
Tutor
Uma vez cadastrados, os dados desse tutor podem ser consultados, alterados
ou excluídos. Os dados relevantes para a inclusão de tal registro no sistema são
nome, matrícula, login, senha, status, disciplinas, cadernetas. O tutor será o ator
responsável pelo preenchimento da caderneta lançando notas e faltas.
Aluno
Estado
Municipio
Pólo
Uma vez cadastrados, os dados desse polo podem ser consultados, alterados
ou excluídos. Os dados relevantes para a inclusão de tal registro no sistema são
estado, municipio, descrição.
ID Requisito Descrição
RF1 Logar no O sistema deve permitir ao usuário realizar login
sistema através de nome de usuário e senha.
RF2 Inserir O sistema deve permitir ao usuário manter os dados de
registros alunos, tutores, professores, catergoria, disciplina polo,
turma.
RF3 Gerar O sistema deve permitir ao usuário gerar, preencher e
documentos fechar cadernetas.
RF4 Consultas O sistema deve permitir ao usuário consultar notas
lançadas nas cadernetas.
Tabela 2: Requisitos funcionais
45
ID Requisito Descrição
RNF1 Ambiente O sistema deve funcionar em ambiente web sendo
compatível com os principais navegadores do
momento: Internet Explorer, Firefox, Safari, Chrome
RNF2 Linguagem O sistema deve ser desenvolvido utilizando a
linguagem java e as tecnologias Struts2 e
Hibernate3
RNF3 Banco de O sistema deve utilizar o banco de dados postgre
dados
RNF4 Segurança O sistema deve restringir o acesso por meio de
senhas.
RNF5 Usabilidade Um usuário com conhecimento básico em
informática e conhecimento nos conceitos de
requisitos deve ser capaz de operar o sistema com
um curso de 30min
Tabela 3: Requisitos não funcionais
ID Descrição
RN1 Para efetuar o cadastro de novos usuários os campos obrigatórios
devem ser preenchidos. Campos obrigatórios: nome, matrícula, login,
senha, status
RN2 Para efetuar o cadastro de novos polos os campos obrigatorios
devem ser preenchidos. Campos obrigaórios: estado, municipio.
RN3 Para cada operação com uma caderneta é obrigatório a existencia de
uma turma.
RN4 Para ter acesso ao sistema o usuário deve entrar com usuario e
senha válidos.
RN5 Para exclusão de qualquer registro deve-se fazer uma consulta antes
Tabela 4: Regras de negocios
6. APRESENTAÇÃO DO SISTEMA
A figura 12 mostra a tela inicial do sistema, a qua todo usuário para ter acesso
as funcionalidade do sistema deve obrigatóriamente fornecer um login e senha
válidos, para que o sistema autentique e libere o seu acesso. Esta autenticação é de
suma importancia, pois restringe o acesso a usuário s não autorizados, já que o
sistema e Web e só fornece acesso as funcionalidades as quais o usuario tem
permissão.
50
• Manter usuários
• Manter pólos
• Manter Turma
• Manter Disciplina
• Manter caderneta
• Relatórios
• Configurações
51
A figura 14 mostra a tela para manutenção dos dados dos usuários, através
dela pode-se consultar um usuário por seu número de matricula, login ou cpf,
tambem pode-se alterar dados dos usuários e realizar seu cadastro no sistema.
7 CONCLUSÃO
O uso do padrão MVC contribuiu para que o sistema fosse projetado, com
uma melhor separação entre os dados do negócio e a interface com usuário.
Durante o desenvolvimento foi possível perceber que essa separação favorece
a independência dos componentes, de modo que as alterações que se fizeram
necessárias durante a implementação foram realizadas de forma simples,
53
8 REFERÊNCIAS BIBLIOGRÁFICAS
DEITEL, H. M.; DEITEL, P. J.; Java Como Programar; tradução Carlos Arthur Lang
Lisbôa. - 4ª Edição – Porto Alegre : Bookman, 2003 – Reimpressão 2004.
ANEXOS
57
Fluxo principal
Fluxo alternativo[]:
Não há
Fluxo de Exceção: Usuario ou senha inválido
RN-04
Fluxo principal
RN-01
Tabela 6.: Caso de uso manter dados do usuário
67