UML 2 Guia Pratico

15
Novatec Editora Gilleanes T.A. Guedes UML 2 Guia de Consulta Rápida

description

UML 2

Transcript of UML 2 Guia Pratico

Page 1: UML 2 Guia Pratico

11111

Novatec Editora

Gilleanes T.A. Guedes

UML 2Guia de Consulta Rápida

Page 2: UML 2 Guia Pratico

22222

Copyright 2005 da Novatec Editora Ltda.

Todos os direitos reservados e protegidos pela Lei 9.610de 19/02/1998. É proibida a reprodução desta obra,mesmo parcial, por qualquer processo, sem préviaautorização, por escrito, do autor e da Editora.

Editor: RUBENS PRATES

2ª Edição – Novembro/2005

ISBN: 85-7522-065-9

NOVATEC EDITORA LTDA.Rua Luís Antônio dos Santos 11002018-012 São Paulo SP – BrasilTel.: +55 11 6959-6529Fax: +55 11 6950-8869E-mail: [email protected]: www.novatec.com.br

Page 3: UML 2 Guia Pratico

33333Sumário

Informações Gerais ........................................................................ 5Sobre o Autor ........................................................................... 5Estrutura desse Guia ............................................................... 5

1 Introdução à UML ........................................................................ 61.1 Breve Histórico da UML ..................................................... 61.2 Por Que Tantos Diagramas? .............................................. 71.3 Rápido Resumo dos Diagramas da UML .......................... 71.4 Ferramentas CASE Baseadas na Linguagem UML ........ 16

2 Orientação a Objetos ................................................................. 182.1 Classificação, Abstração e Instanciação ......................... 182.2 Classes de Objetos .......................................................... 192.3 Atributos ........................................................................... 192.4 Métodos ........................................................................... 202.5 Visibilidade ....................................................................... 202.6 Herança ............................................................................ 212.7 Polimorfismo .................................................................... 22

3 Diagrama de Casos de Uso ...................................................... 233.1 Atores ............................................................................... 233.2 Casos de Uso ................................................................... 233.3 Associações ..................................................................... 243.4 Especialização/Generalização ......................................... 243.5 Inclusão ............................................................................ 253.6 Extensão .......................................................................... 263.7 Restrições em Associações de Extensão ........................ 273.8 Pontos de Extensão ......................................................... 273.8 Multiplicidade no Diagrama de Casos de Uso ................. 283.9 Fronteira de Sistema ........................................................ 283.10 Documentação de Casos de Uso .................................. 283.11 Estudo de Caso .............................................................. 29

4 Diagrama de Classes ................................................................ 324.1 Relacionamentos ou Associações ................................... 334.3 Classe Associativa ........................................................... 384.4 Interfaces ......................................................................... 394.5 Restrição .......................................................................... 404.6 Estereótipos ..................................................................... 424.8 Estudo de Caso ............................................................... 43

5 Diagrama de Objetos ................................................................. 465.1 Objeto ............................................................................... 465.2 Vínculos ........................................................................... 46

6 Diagrama de Estrutura Composta ............................................. 486.1 Colaborações ................................................................... 486.2 Ocorrência de Colaboração ............................................. 506.3 Portas ............................................................................... 516.4 Propriedades .................................................................... 516.5 Estudo de Caso ............................................................... 52

7 Diagrama de Seqüência ............................................................ 537.1 Atores ............................................................................... 537.2 Objetos ............................................................................. 537.3 Linha de Vida ................................................................... 547.4 Foco de Controle ou Ativação .......................................... 547.5 Mensagens ou Estímulos ................................................. 557.6 Mensagens de retorno ..................................................... 577.7 Auto-chamadas ou Auto-delegações ............................... 577.8 Condições ou Condições de Guarda ............................... 577.9 Fragmentos de Interação e Ocorrências de Interação .... 587.10 Estudo de Caso ............................................................. 66

8 Diagrama de Comunicação ....................................................... 698.1 Mensagens ....................................................................... 698.2 Estudo de Caso ............................................................... 69

9 Diagrama de Máquina de Estados ............................................ 739.1 Estado .............................................................................. 739.2 Transições ........................................................................ 739.3 Estados Inicial e Final ...................................................... 739.4 Atividades internas ........................................................... 749.5 Transições internas .......................................................... 749.6 Auto-Transições ............................................................... 75

Page 4: UML 2 Guia Pratico

44444 Sumário

9.7 Pseudo-Estado de Escolha .............................................. 759.8 Barra de Sincronização .................................................... 769.9 Pseudo-Estado de Junção ............................................... 769.10 Estado Composto .......................................................... 779.11 Estado de História .......................................................... 789.12 Estado de Sub-Máquina ................................................ 789.13 Estados de Entrada e Saída (Entry e Exit States) ......... 799.14 Pseudo-Estado de Término ........................................... 799.15 Estado de Sincronismo .................................................. 799.16 Estudo de Caso ............................................................. 80

10 Diagrama de Atividade ............................................................ 8110.1 Nó de Ação ..................................................................... 8110.2 Controle de Fluxo ........................................................... 8110.3 Nó Inicial ........................................................................ 8210.4 Nó Final .......................................................................... 8210.5 Nó de Decisão ............................................................... 8210.6 Exemplo de Diagrama de Atividade ............................... 8310.7 Conectores ..................................................................... 8410.8 Sub-Atividade ................................................................. 8510.9 Nó de Bifurcação/União ................................................. 8510.10 Final de Fluxo .............................................................. 8610.11 Fluxo de Objetos .......................................................... 8610.12 Nó de Objeto ................................................................ 8610.13 Alfinetes (Pins) ............................................................. 8710.14 Nó de Parâmetro de Atividade ..................................... 8710.15 Exceções ...................................................................... 8710.16 Ação de Objeto de Envio ............................................. 8810.17 Ação de Evento de Aceitação ...................................... 8810.18 Ação de Evento de Tempo de Aceitação ..................... 8910.19 Nó de Repositório de Dados (Data Store Node) ......... 8910.20 Partição de Atividade ................................................... 8910.21 Região de Atividade Interrompível ............................... 9010.22 Região de Expansão .................................................... 9010.23 Estudo de Caso ........................................................... 91

11 Diagrama de Interação Geral .................................................. 9412 Diagrama de Componentes ..................................................... 95

12.1 Componente ................................................................... 9512.2 Interfaces Fornecidas e Requeridas .............................. 9512.3 Classes e Componentes Internos .................................. 9612.4 Exemplo de Diagrama de Componentes ....................... 97

13 Diagrama de Implantação ....................................................... 9813.1 Nós ................................................................................. 9813.2 Associação entre Nós .................................................... 9813.3 Exemplo de Diagrama de Implantação .......................... 9913.4 Artefatos ......................................................................... 9913.5 Especificação de Implantação ..................................... 100

14 Diagrama de Pacotes ............................................................ 10114.1 Pacote .......................................................................... 10114.2 Dependência ................................................................ 10114.3 Pacotes Contendo Pacotes ......................................... 102

15 Diagrama de Tempo .............................................................. 103Índice Remissivo ......................................................................... 105

Page 5: UML 2 Guia Pratico

55555Informações Gerais

Informações Gerais

Sobre o AutorGilleanes Thorwald Araujo Guedes é mestre em Ciência daComputação pela Universidade Federal do Rio Grande do Sul(UFRGS) e Bacharel em Informática pela Universidade daRegião da Campanha (URCAMP). Atualmente é professor deEngenharia de Software no curso de Sistemas de Informação naFaculdade do Sul do Mato Grosso (FACSUL-CESUR) e nocurso de Licenciatura em Informática da Universidade Federaldo Mato Grosso (UFMT). O autor já ministrou diversas palestrase cursos sobre UML em eventos científicos e pós-graduações“Lato Sensu”, sendo autor do livro “UML – Uma AbordagemPrática”, também publicado pela Novatec. Pode ser contatadopor meio do e-mail [email protected].

Estrutura desse GuiaO primeiro tópico deste guia fornece uma visão geral da UML,apresentando um breve histórico da linguagem e destacandoseus objetivos, além de fornecer uma breve explanação sobrecada um de seus diagramas. Ao fim deste tópico são apresentadasalgumas das ferramentas CASE que suportam a UML disponíveisno mercado.

O segundo tópico apresenta o Paradigma de Orientação aObjetos, cujo conhecimento é imprescindível para quem desejamodelar sistemas orientados a objeto. Neste tópico serãodetalhados os conceitos de abstração, classes, objetos, herançae polimorfismo, entre outros.

Em seguida o guia passa a discorrer sobre cada um dos 13diagramas da linguagem UML, detalhando seus objetivos eapresentando e exemplificando seus componentes, além dedetalhar como utilizar cada diagrama na modelagem de sistemas.

Ao longo deste guia iremos modelar um pequeno sistema comoestudo de caso. O sistema modelado tem por objetivo controlara submissão de trabalhos em um congresso científico e serámodelado por meio de praticamente todos os diagramasfornecidos pela linguagem, de acordo com a visão e objetivos decada diagrama.

A ferramenta utilizada para a modelagem de todos os diagramasdeste guia foi a Enterprise Architect versão 4.1. No final doprimeiro tópico faremos um breve comentário sobre estaferramenta.

Page 6: UML 2 Guia Pratico

66666

1 Introdução à UMLA UML (Unified Modeling Language ou Linguagem de ModelagemUnificada) é uma linguagem visual utilizada para modelar sistemascomputacionais por meio do paradigma de Orientação a Objetos.Essa linguagem tornou-se, nos últimos anos, a linguagem padrãode modelagem de software adotada internacionalmente pelaindústria de Engenharia de Software.

Deve ficar bem claro, no entanto, que a UML não é uma linguagemde programação e sim uma linguagem de modelagem, cujo objetivoé auxiliar os engenheiros de software a definir as característicasdo software, tais como seus requisitos, seu comportamento, suaestrutura lógica, a dinâmica de seus processos e até mesmo suasnecessidades físicas em relação ao equipamento sobre o qual osistema deverá ser implantado. Todas essas características sãodefinidas por meio da UML antes do software começar a serrealmente desenvolvido.

1.1 Breve Histórico da UMLA UML surgiu da união de três metodologias de modelagem: ométodo de Booch, o método OMT (Object Modeling Technique)de Jacobson e o método OOSE (Object-Oriented SoftwareEngineering) de Rumbaugh. Estas eram, até meados da décadade 90, as três metodologias de modelagem orientada a objetosmais populares entre os profissionais da área de engenharia desoftware. A união dessas metodologias contou com o amploapoio da Rational Software, que incentivou e financiou a uniãodas três metodologias.

O esforço inicial do projeto começou com a união do método deBooch com o método OMT de Jacobson, o que resultou nolançamento do Método Unificado no final de 1995. Logo emseguida, Rumbaugh juntou-se a Booch e Jacobson na RationalSoftware e seu método OOSE começou também a ser incorporadoà nova metodologia. O trabalho de Booch, Jacobson e Rumbaugh,conhecidos popularmente como “Os Três Amigos”, resultou nolançamento, em 1996, da primeira versão da UML propriamentedita.

Tão logo a primeira versão foi lançada, diversas grandes empresasatuantes na área de engenharia e desenvolvimento de softwarepassaram a contribuir com o projeto, fornecendo sugestões paramelhorar e ampliar a linguagem. Finalmente a UML foi adotadapela OMG (Object Management Group ou Grupo deGerenciamento de Objetos) em 1997, como uma linguagempadrão de modelagem. Até pouco tempo atrás, a UMLencontrava-se na versão 1.5, tendo sido muito recentementesubstituída pela versão 2.0. Essa nova versão traz grandesnovidades em relação à estrutura geral da linguagemprincipalmente com relação à abordagem de quatro camadas ea possibilidade de se desenvolver “perfis” particulares a partirda UML. A documentação oficial da UML pode ser consultadano site da OMG em www.omg.com.

Introdução à UML

Page 7: UML 2 Guia Pratico

77777

1.2 Por Que Tantos Diagramas?O objetivo disto é fornecer múltiplas visões do sistema a sermodelado, analisando-o e modelando-o sob diversos aspectos,procurando-se assim atingir a completitude da modelagem,permitindo que cada diagrama complemente os outros. Cadadiagrama da UML analisa o sistema, ou parte dele, sob umadetermina ótica, é como se o sistema fosse modelado emcamadas, sendo que alguns diagramas enfocam o sistema deforma mais geral, apresentando uma visão externa do sistema,como é o objetivo do Diagrama de Casos de Uso, enquantooutros oferecem uma visão de uma camada mais profunda dosoftware, apresentando um enfoque mais técnico ou aindavisualizando apenas uma característica específica do sistema ouum determinado processo.

A utilização de diversos diagramas permite que falhas possamser descobertas nos diagramas anteriores, diminuindo apossibilidade da ocorrência de erros durante a fase dedesenvolvimento do software. É importante destacar que, emboracada diagrama tenha sua utilidade, nem sempre é necessáriomodelar um sistema utilizando-se de todos os diagramas, poisalguns deles possuem funções muito específicas, como é o casodo Diagrama de Tempo, por exemplo.

1.3 Rápido Resumo dos Diagramas da UMLA seguir descreveremos rapidamente cada um dos diagramasoferecidos pela UML, destacando suas principais característicase objetivos. O leitor irá notar que cada diagrama possui uma abaem seu canto superior esquerdo contendo um operador e adescrição do diagrama. O operador serve para determinar qualo tipo de diagrama, assim ud refere-se a Use Case Diagram(Diagrama de Caso de Uso), cd a Class Diagram (Diagrama deClasses) e aos diagramas que o estendem como o Diagrama deObjetos, sd a Sequence Diagram (Diagrama de Seqüência), sma State-Machine Diagram (Diagrama de Máquina de Estados) eassim por diante.

1.3.1 Diagrama de Casos de UsoEste é o diagrama mais geral e informal da UML, sendo utilizadonormalmente nas fases de Levantamento e Análise de Requisitosdo sistema, onde são determinadas as necessidades do usuário,embora venha a ser consultado durante todo o processo demodelagem e sirva de base para todos os outros diagramas.Apresenta uma linguagem simples e de fácil compreensão paraque os usuários possam ter uma idéia geral de como o sistema iráse comportar. Procura identificar os atores (usuários, outrossistemas ou até mesmo algum hardware especial), que utilizarãode alguma forma o software, bem como os serviços, ou seja, asopções, que o sistema disponibilizará aos atores, conhecidasneste diagrama como Casos de Uso. A figura 1.1 apresenta umexemplo desse diagrama.

Introdução à UML

Page 8: UML 2 Guia Pratico

88888

Figura 1.1 – Exemplo de Diagrama de Casos de Uso.

1.3.2 Diagrama de ClassesEste é o diagrama mais utilizado e o mais importante da UML,servindo de apoio para a maioria dos outros diagramas. Comoo próprio nome diz, esse diagrama define a estrutura das classesutilizadas pelo sistema, determinando os atributos e métodospossuídos por cada classe, além de estabelecer como as classesse relacionam e trocam informações entre si. A figura 1.2demonstra um exemplo desse diagrama.

Figura 1.2 – Exemplo de Diagrama de Classes.

Introdução à UML

Page 9: UML 2 Guia Pratico

99999

1.3.3 Diagrama de ObjetosEste diagrama está amplamente associado ao Diagrama de Classes.Na verdade, o Diagrama de Objetos é praticamente umcomplemento do Diagrama de Classes, sendo bastantedependente deste. O Diagrama de Objetos fornece uma visãodos valores armazenados pelos objetos de um Diagrama deClasses em um determinado momento da execução de umprocesso. A figura 1.3 apresenta um exemplo de Diagrama deObjetos.

Figura 1.3 – Exemplo de Diagrama de Objetos.

1.3.4 Diagrama de Estrutura CompostaO Diagrama de Estrutura Composta é utilizado para modelarColaborações. Uma colaboração descreve uma visão de umconjunto de entidades cooperativas interpretadas por instânciasque cooperam entre si para executar uma função específica. Otermo estrutura desse diagrama refere-se a uma composição deelementos interconectados, representando instâncias de tempode execução colaborando através de vínculos de comunicaçãopara atingir algum objetivo comum. Esse diagrama tambémpode ser utilizado para definir a estrutura interna de umclassificador. Este é um dos três novos diagramas propostos pelaUML 2. A figura 1.4 apresenta um exemplo de Diagrama deEstrutura Composta.

Figura 1.4 – Exemplo de Diagrama de Estrutura Composta.

Introdução à UML

Page 10: UML 2 Guia Pratico

1010101010

1.3.5 Diagrama de SeqüênciaO Diagrama de Seqüência preocupa-se com a ordem temporal emque as mensagens são trocadas entre os objetos envolvidos em umdeterminado processo. Em geral, baseia-se em um Caso de Usodefinido pelo diagrama de mesmo nome e apóia-se no Diagramade Classes para determinar os objetos das classes envolvidas emum processo, bem como os métodos disparados entre os mesmos.Um Diagrama de Seqüência costuma identificar o evento geradordo processo modelado, bem como, o ator responsável por esteevento e determina como o processo deve se desenrolar e serconcluído por meio do envio de mensagens, que em geral disparammétodos, entre os objetos. A figura 1.5 apresenta um exemplodesse diagrama.

Figura 1.5 – Exemplo de Diagrama de Seqüência.

1.3.6 Diagrama de ComunicaçãoO Diagrama de Comunicação era conhecido como Diagrama deColaboração até a versão 1.5 da UML, tendo seu nome modificadopara Diagrama de Comunicação a partir da versão 2.0. Essediagrama está amplamente associado ao Diagrama de Seqüência,na verdade, um complementa o outro. As informações mostradasno Diagrama de Comunicação são, com freqüência, praticamenteas mesmas apresentadas no Diagrama de Seqüência, porém comum enfoque diferente, visto que este diagrama não se preocupacom a temporalidade do processo, concentrando-se em como osobjetos estão vinculados e quais mensagens trocam entre sidurante o processo. A figura 1.6 apresenta um exemplo deDiagrama de Comunicação.

1.3.7 Diagrama de Máquina de EstadosO Diagrama de Máquina de Estados era conhecido nas versõesanteriores da linguagem como Diagrama de Gráfico de Estadosou simplesmente como Diagrama de Estados, tendo assumidoesta nova nomenclatura a partir da versão 2. Este diagramaprocura acompanhar as mudanças sofridas nos estados de umainstância de uma classe, de um Caso de Uso ou mesmo de umsubsistema ou sistema completo. Como o Diagrama de Seqüência,o Diagrama de Máquina de Estados muitas vezes baseia-se emum Caso de Uso e apóia-se no Diagrama de Classes. A figura 1.7apresenta um exemplo de Diagrama de Máquina de Estados.

Introdução à UML

Page 11: UML 2 Guia Pratico

1111111111

Figura 1.6 – Exemplo de Diagrama de Comunicação.

Figura 1.7 – Exemplo de Diagrama de Máquina de Estados.

1.3.8 Diagrama de AtividadeO Diagrama de Atividade era considerado um caso especial doantigo Diagrama de Gráfico de Estados, mas a partir da UML 2.0este diagrama tornou-se independente, deixando inclusive de sebasear em máquinas de estados e passando a se basear em Redesde Petri. O Diagrama de Atividade preocupa-se em descrever ospassos a serem percorridos para a conclusão de uma atividadeespecífica, muitas vezes representada por um método com umcerto grau de complexidade, podendo, no entanto modelar umprocesso completo. Concentra-se na representação do fluxo decontrole e no fluxo de objeto de uma atividade. A figura 1.8apresenta um exemplo desse diagrama.

1.3.9 Diagrama de Interação GeralO Diagrama de Interação Geral é uma variação do Diagrama deAtividade que fornece uma visão geral dentro de um sistema ouprocesso de negócio. Esse diagrama passou a existir somente apartir da UML 2. O Diagrama de Interação Geral costumaenglobar diversos tipos de diagramas de interação parademonstrar um processo geral. A figura 1.9 apresenta umexemplo desse diagrama.

Introdução à UML

Page 12: UML 2 Guia Pratico

1212121212

Figura 1.8 – Exemplo de Diagrama de Atividade.

1.3.10 Diagrama de ComponentesO Diagrama de Componentes está amplamente associado àlinguagem de programação que será utilizada para desenvolvero sistema modelado. Esse diagrama representa as componentesdo sistema quando este for ser implementado em termos demódulos de código-fonte, bibliotecas, formulários, arquivos deajuda, módulos executáveis etc. e determina como essescomponentes estarão estruturados e interagirão para que osistema funcione de maneira adequada. O Diagrama deComponentes pode ser utilizado para modelar o código-fonte,os módulos executáveis de um sistema, a estrutura física de umbanco de dados ou mesmo os componentes necessários para aconstrução de interfaces. A figura 1.10 apresenta um exemplodesse diagrama.

Introdução à UML

Page 13: UML 2 Guia Pratico

1313131313

Figura 1.9 – Exemplo de Diagrama de Interação Geral.

Figura 1.10 – Exemplo de Diagrama de Componentes.

Introdução à UML

Page 14: UML 2 Guia Pratico

1414141414

1.3.11 Diagrama de ImplantaçãoO Diagrama de Implantação determina as necessidades de hardwaredo sistema, as características físicas como servidores, estações,topologias e protocolos de comunicação, ou seja, todo o aparatofísico sobre o qual o sistema deverá ser executado. A figura 1.11apresenta um exemplo desse diagrama.

Figura 1.11 – Exemplo de Diagrama de Implantação.

1.3.12 Diagrama de PacotesO Diagrama de Pacotes tem por objetivo representar os subsistemasou sub-módulos englobados por um sistema de forma a determinaras partes que o compõem. Pode ser utilizado de maneiraindependente ou associado com outros diagramas. Este diagramapode ser utilizado também para auxiliar a demonstrar a arquiteturade uma linguagem, como ocorre com a própria UML. A figura 1.12apresenta um exemplo desse diagrama.

Figura 1.12 – Exemplo de Diagrama de Pacotes.

1.3.13 Diagrama de TempoO Diagrama de Tempo descreve a mudança no estado ou condiçãode uma instância de uma classe ou seu papel durante um tempo.Tipicamente utilizado para demonstrar a mudança no estado deum objeto no tempo em resposta a eventos externos. Esse é oterceiro diagrama criado a partir da nova versão da linguagem. Afigura 1.13 apresenta um exemplo desse diagrama.

Introdução à UML

Page 15: UML 2 Guia Pratico

1515151515

Figura 1.13 – Exemplo de Diagrama de Tempo.

1.3.14 Síntese Geral dos DiagramasOs diagramas da UML 2.0 dividem-se em Diagramas Estruturaise Diagramas Comportamentais, sendo que estes últimos possuemainda uma sub-divisão representada pelos Diagramas deInteração, conforme pode ser verificado na figura 1.14.

Introdução à UML