padroes de projeto

Download Padroes de Projeto

Post on 05-Oct-2015

12 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Padroes de projeto

TRANSCRIPT

  • Aplicao de padres ao processo de desenvolvimento de software

    RUP

    Trabalho de Concluso de Curso

    Engenharia da Computao

    Tiago Moraes de Miranda Farias Orientador: Prof. Mrcio Lopes Cornlio

    Recife, 20 novembro de 2006

    ESCOLA POLITCNICA

    DE PERNAMBUCO

  • Este Projeto apresentado como requisito parcial para obteno do diploma de Bacharel em Engenharia da Computao pela Escola Politcnica de Pernambuco Universidade de Pernambuco.

    Aplicao de padres ao processo de desenvolvimento de software

    RUP

    Trabalho de Concluso de Curso

    Engenharia da Computao

    Tiago Moraes de Miranda Farias Orientador: Prof. Mrcio Lopes Cornlio

    Recife, 20 de novembro de 2006

    ESCOLA POLITCNICA

    DE PERNAMBUCO

  • Tiago Moraes de Miranda Farias

    Aplicao de padres ao processo de desenvolvimento de software

    RUP

  • i

    ESCOLA POLITCNICA DE PERNAMBUCO

    Resumo

    Processos de desenvolvimento de software e padres so dois recursos utilizados para melhorar a qualidade dos softwares. Os processos de desenvolvimento de software organizam e controlam a produo de software, enquanto os padres fornecem boas solues para problemas encontrados em diversas atividades do desenvolvimento de software. A utilizao combinada desses dois recursos pode ser uma importante ferramenta para fornecer qualidade na criao de softwares.

    Este trabalho apresenta um estudo do uso de padres no processo de desenvolvimento de software do RUP. Atravs do estudo de padres de projeto, padres de anlise e archetype patterns identificamos em que fases do RUP esses padres podem ser utilizados e como podem contribuir com a qualidade dos produtos desenvolvidos.

    Utilizando alguns padres como exemplos de modelos, este trabalho apresenta como possvel realizar a transio entre os modelos descritos utilizando os padres estudados. Um modelo que descreve a soluo de um problema utilizando archetype patterns, por exemplo, descrito utilizando padres de anlise e padres de projeto.

    Atravs deste trabalho espera-se facilitar a utilizao de padres em um processo de desenvolvimento de software. Saber que tipos de padres podem ser teis em determinadas fases do processo pode ajudar a antecipar a soluo de alguns problemas atravs da utilizao dos padres.

  • ii

    ESCOLA POLITCNICA DE PERNAMBUCO

    Abstract

    Software development process and patterns are two features used to improve softwares quality. The software development processes organize and control software production whereas patterns provide good solutions to problems encountered in many activities of software development. The combined use of these two features can be an important instrument to provide quality in software creation.

    This work presents a study on the use of patterns with the RUP software development process. Through the study of design patterns, analysis patterns and archetype patterns we identified the phases in which these patterns can be used, and how they can contribute in the quality of developed products.

    Using some patterns as models examples, this work presents how it is possible to make a transition between models described using the studied patterns. A model that describes a problem solution using archetype patterns, for example, is described using analysis patterns and design patterns.

    This work it aims to facilitate the use of patterns in a software development process. By knowing which types of patterns can be useful in certain process phases we can help to anticipate the solution of some problems by using these patterns.

  • iii

    ESCOLA POLITCNICA DE PERNAMBUCO

    Sumrio

    ndice de Figuras v

    Tabela de Smbolos e Siglas vii

    1 Introduo 9 1.1 Objetivos e Metas 10 1.2 Viso Geral do Trabalho 10

    2 O Rational Unified Process 11 2.1 Introduo 11 2.2 Boas prticas do desenvolvimento de software 13

    2.2.1 Desenvolver software iterativamente 13 2.2.2 Gerenciar requisitos 14 2.2.3 Arquitetura baseada em componentes 14 2.2.4 Modelagem visual de software 15 2.2.5 Verificao contnua de qualidade 15 2.2.6 Controle de mudanas 16

    2.3 Estrutura do Processo 16 2.3.1 Estrutura esttica 17 2.3.2 Estrutura dinmica 17

    2.4 Resumo 19

    3 Padres 20 3.1 Introduo 20

    3.1.1 O que so Padres 21 3.1.2 Elementos Essenciais 21

    3.2 Padres de Projeto 22 3.2.1 Descrio de um Padro de Projeto 22 3.2.2 Classificao dos Padres de Projetos 23

    3.3 Padres de Anlise 23 3.3.1 O que so modelos 23 3.3.2 O que so os padres de anlise 24

    3.4 Archetype Patterns 24 3.4.1 O que Archetype 24 3.4.2 Archetype Patterns e Padres de Anlise 26 3.4.3 Caractersticas dos Archetype Patterns 26

    3.5 Resumo 26

    4 Transitando entre Padres 28 4.1 Introduo 28 4.2 Problema de representar quantidades 29

    4.2.1 Soluo: Padres de Anlise 29 4.2.2 Soluo: Archetype Patterns 31 4.2.3 Soluo: Padres de Projeto 34

  • iv

    ESCOLA POLITCNICA DE PERNAMBUCO

    4.3 Problema de representar pessoas e organizaes 37

    4.3.1 Soluo: Padres de Anlise 38 4.3.2 Soluo: Archetype Patterns 39 4.3.3 Soluo: Padres de Projeto 41

    4.4 Resumo 42

    5 Estudo de Caso 45 5.1 Introduo 45

    5.1.1 O caso do Ponto de Venda 46 5.2 Adaptao do RUP 46 5.3 Aplicando os padres s fases do RUP 47 5.4 Utilizao de padres no ponto de venda 50 5.5 Resumo 52

    6 Concluses e Trabalhos Futuros 54 6.1 Contribuies 54 6.2 Trabalhos Futuros 55

  • v

    ESCOLA POLITCNICA DE PERNAMBUCO

    ndice de Figuras

    Figura 1. Pgina Web do RUP disponibilizada como ferramenta. 12 Figura 2. Ciclo de vida do modelo cascata de desenvolvimento de software. 13 Figura 3. Modelo de desenvolvimento iterativo e incremental. 14 Figura 4. Grfico do RUP estrutura organizada em duas dimenses. 16 Figura 5. Fases do processo iterativo e seus marcos. 18 Figura 6. Representao do padro de anlise Quantity. 29 Figura 7. Representao do padro de anlise Conversion Ratio. 30 Figura 8. Representao do padro de anlise CompoundUnit. 30 Figura 9. Soluo de representao de quantidades utilizando padres de anlise. 31 Figura 10. Modelo que representa o quantity archetype pattern. 32 Figura 11. Modelo adaptado do quantity archetype pattern para se assemelhar ao modelo do padro de anlise quantity.

    33

    Figura 12. Modelo do quantity archetype pattern representado por classes no lugar dos archetypes.

    34

    Figura 13. Estrutura que representa o padro de projeto Strategy. 35 Figura 14. Representao de uma possvel aplicao do padro de projeto Strategy no modelo que descreve a soluo do problema.

    35

    Figura 15. Estrutura do padro de projeto Abstract Factory. 36 Figura 16. Representao do conjunto de unidades, que poderia utilizar o padro Abstract Factory.

    36

    Figura 17. Estrutura do padro de projeto Composite. 37 Figura 18. Estrutura que define o relacionamento para descrever unidades compostas no modelo.

    37

    Figura 19. Representao do padro de anlise party. 38 Figura 20. Representao do padro de anlise organization hierarchies. 39 Figura 21. Soluo de representao de pessoas e organizaes utilizando padres de anlise.

    39

    Figura 22. Representao do party archetype pattern. 40 Figura 23. Adaptao do modelo do party achetype pattern para se assemelhar ao modelo definido atravs de padres de anlise.

    41

    Figura 24. Estrutura do padro de projeto Iterator. 42 Figura 25. Seqncia de utilizao dos trs tipos de padres de acordo com o nvel de abstrao. Classes de Negcio Classes de Anlise Classes de Projeto

    44

    Figura 26. Ilustrao de um sistema de ponto de venda. 46 Figura 27. Fluxo de trabalho da disciplina de modelagem de negcios. 48

  • vi

    ESCOLA POLITCNICA DE PERNAMBUCO

    Figura 28. Fluxo de trabalho da disciplina de anlise e projeto. 49 Figura 29. Modelo de negcios parcial do ponto de venda definido por Larman [19].

    50

    Figura 30. Modelo do Money Archetype Pattern. 51 Figura 31. Relaes envolvendo pagamentos no modelo do ponto de venda. 52 Figura 32. Modelo que representa o product archetype pattern. 58 Figura 33. Modelo que representa o product analysis pattern. 59

  • vii

    ESCOLA POLITCNICA DE PERNAMBUCO

    Tabela de Smbolos e Siglas

    RUP Rational Unified Process XP Extreme Programming MSF Microsof Solutions Framework UML Unified Modeling Language SI Sistema Internacional de Unidades

  • viii

    ESCOLA POLITCNICA DE PERNAMBUCO

    Agradecimentos

    Gostaria de agradecer primeiramente a Deus que sempre me orientou e me mostrou os caminhos a seguir, que sempre me confortou nos momentos difceis e ilumina a minha vida com muita paz e alegria. Agradeo a meu pai, Jos Carlos de Miranda Farias, meu melhor amigo, por continuar sempre me passando ensinamentos e compartilhando sua sabedoria. Agradeo a minha me, Ndia Luna Moraes Farias, meu porto seguro, sempre presente, cuidadosa, atenciosa e carinhosa. Agradeo a ela por ter insistido que eu fizesse o vestibular de Engenharia da Computao, pois seno no estaria agora completando mais essa jornada. Agradeo a meu irmo, Daniel Moraes de Miranda Farias, por ser mais que simplesmente irmo, ser sempre um companheiro, um amigo. Agradeo a Deus por ter me dado uma segunda me, Ivonete Vone Fernandes da Silva (in memorian), a quem sempre amarei e que estar comigo para o resto da vida. Agradeo a toda minha famlia que, sempre unida, me proporcionou uma base educacional e moral muito boa e que sempre est presente nos mais diversos momentos. Agradeo a todos os meus amigos e amigas, companheiros para a vida toda, irmos que conheci na vida e que sempre me acompanham. Aos amigos de infncia, que cresceram comigo e acompanham tod