Click here to load reader

[Relatorio Final]SCO.pdf

  • View
    223

  • Download
    0

Embed Size (px)

Text of [Relatorio Final]SCO.pdf

UNIVERSIDADE FEDERAL DO PARAN

APLICAO DE DESIGN PATTERNS E LIGHTWEIGHT FRAMEWORKS NO DESENVOLVIMENTO DE APLICAES ORIENTADAS A OBJETOS

REUTILIZVEIS: S.C.O. SISTEMA DE CONTROLE DE OCORRNCIAS

CURITIBA 2007

i

FABRCIO SILVA KYT

RODRIGO VINCIUS PERLY

APLICAO DE DESIGN PATTERNS E LIGHTWEIGHT FRAMEWORKS NO DESENVOLVIMENTO DE APLICAES ORIENTADAS A OBJETOS

REUTILIZVEIS: S.C.O. SISTEMA DE CONTROLE DE OCORRNCIAS

Trabalho de concluso de curso apresentado banca examinadora do Curso Superior de Tecnologia em Informtica da Universidade Federal do Paran como exigncia parcial para obteno do grau de Tecnlogo em Informtica. Orientador: Prof. Dr. Mauro Jos Belli.

CURITIBA 2007

ii

FABRCIO SILVA KYT

RODRIGO VINCIUS PERLY

APLICAO DE DESIGN PATTERNS E LIGHTWEIGHT FRAMEWORKS NO

DESENVOLVIMENTO DE APLICAES ORIENTADAS A OBJETOS

REUTILIZVEIS: S.C.O. SISTEMA DE CONTROLE DE OCORRNCIAS

Este trabalho de concluso de curso foi julgado adequado obteno do

grau de Tecnlogo em Informtica e aprovado em sua forma final pelo Curso

Superior de Tecnologia em Informtica da Universidade Federal do Paran.

Curitiba, 07 de maio de 2007.

Banca Examinadora:

____________________________________

Professor Dr. Mauro Jos Belli

Orientador

____________________________________

Professor Dieval Guizelini

Integrante da Banca Examinadora

____________________________________

Professora Dra. Jeroniza Nunes Marchaukowski

Integrante da Banca Examinadora

iii

Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. You must find pertinent objects, factor them

into classes at the right granularity, define class interfaces and inheritance hierarchies, and establish

key relationships among them. Your design should be specific to the problem at hand but also general

enough to address future problems and requirements. You also want to avoid redesign, or at

least minimize it. [GAMMA, 1995]

iv

RESUMO

No processo de desenho de aplicaes devemos ao mesmo tempo ser

especficos para solucionar o problema proposto e o suficientemente genricos

para integrar futuras implementaes. Esta condio que torna extremamente

difcil o desenvolvimento de softwares orientados a objetos que sejam reutilizveis.

A arquitetura da aplicao deve ser precisamente planejada e a interao entre os

componentes controlada, de forma a reduzir dependncias entre eles.

Este trabalho apresenta a adoo de uma srie de padres de desenho e

ligthweigth frameworks durante o desenvolvimento de uma aplicao orientada a

objetos reutilizvel para o controle de ocorrncias internas e externas de uma

companhia.

Palavras-chave: lightweight frameworks, orientao a objetos, softwares

reutilizveis, design patterns, MVC, Modelo 2 Sun, Java, Struts, Hibernate.

v

ABSTRACT

When developing applications our design should be specific to the problem

at hand but also general enough to address future requirements. This requisite

makes the development of reusable object-oriented software extremely hard. The

application architecture must be precisely planned and the components interaction

controlled to prevent dependencies.

This essay presents the adoption of various design patterns and lightweight

frameworks during the development of a reusable object-oriented application that

manages internal and external occurrences of a company.

Keywords: lightweight frameworks, object-oriented software, reusable softwares,

design patterns, MVC, Suns Model 2, Java, Struts, Hibernate.

vi

SUMRIO

LISTA DE FIGURAS ...............................................................................................ix

LISTA DE QUADROS ............................................................................................. x

LISTA DE TABELAS ...............................................................................................xi

1 INTRODUO ..................................................................................................... 1

1.1 Objetivos Gerais................................................................................................ 2

1.2 Objetivos Especficos ........................................................................................ 2

1.3 Justificativa........................................................................................................ 2

2 Metodologia.......................................................................................................... 4

2.1 Metodologia de Planejamento ........................................................................... 4

2.1.1 Definio dos Objetivos.................................................................................. 4

2.1.2 Anlise e Gerenciamento de Riscos .............................................................. 5

2.1.3 Recursos ........................................................................................................ 5

2.1.4 Organizao de Pessoal ................................................................................ 5

2.1.5 Estimativas ..................................................................................................... 6

2.1.5.1 Mtrica de Pontos por Funo .................................................................... 6

2.1.5.2 Mtrica de Linhas de Cdigo....................................................................... 7

2.1.6 Cronograma ................................................................................................... 8

2.1.6.1 WBS (Work Breakdown Structure) .............................................................. 8

2.1.6.2 Grfico de Gantt .......................................................................................... 9

2.1.6.3 Rede de Tarefas.......................................................................................... 9

2.1.6.4 Software para Gerenciamento de Projetos: MS Project .............................. 9

2.2 Metodologia de Modelagem .............................................................................. 9

2.2.1 Modelagem Orientada a Objetos.................................................................. 10

2.2.1.1 Diagrama de Casos de Uso ...................................................................... 10

2.2.1.2 Diagrama de Classes ................................................................................ 11

2.2.1.3 Diagramas de Seqncia .......................................................................... 12

2.2.1.4 Software para Modelagem Orientada a Objetos: Jude.............................. 12

vii

2.2.2 Modelagem de Dados .................................................................................. 12

2.2.2.1 Diagrama Entidade Relacionamento......................................................... 13

2.2.2.2 Software para Modelagem de Dados: DBDesigner ................................... 13

2.3 Metodologia de Implementao ...................................................................... 13

2.3.1 Recursos lado Cliente (Client Side).............................................................. 14

2.3.1.1 Pginas Web Estticas: HTML e W3C Web Standards ............................ 14

2.3.1.2 Formatao de pginas Web: Cascading Style Sheets............................. 15

2.3.1.3 Processamento no cliente: Javascript ....................................................... 17

2.3.1.4 Tableless ................................................................................................... 17

2.3.1.5 Editor de Pginas Web: Dreamweaver...................................................... 18

2.3.2 Recursos lado Servidor (Server Side) .......................................................... 19

2.3.2.1 Linguagem de Programao: Java 5.0...................................................... 19

2.3.2.2 Uma alternativa ao CGI: Servlets .............................................................. 20

2.3.2.3 Pginas Web Dinmicas: Java Server Pages (JSP) ................................. 21

2.3.2.4 Apresentao de Dados Dinmicos: JSP Tags (Tag Libraries)................. 23

2.3.2.5 JavaBeans................................................................................................. 23

2.3.2.6 Camada de Persistncia: Hibernate Framework ....................................... 25

2.3.2.7 Camada de Controle: Struts Framework ................................................... 27

2.3.2.8 Banco de Dados: PostgreSql .................................................................... 31

2.3.2.9 Servidor de Aplicao: JBoss Server ........................................................ 32

2.3.2.10 IDE para Desenvolvimento Java: Eclipse................................................ 32

2.3.2.11 IDE para Desenvolvimento JBoss: JBoss Eclipse IDE............................ 33

2.3.2.12 Design Patterns....................................................................................... 33

2.3.2.12.1 Suns Model 2 (uma variao do clssico MVC) .................................. 34

2.3.2.12.2 Desig