Você está na página 1de 15

1

Guia de Consulta Rpida

UML 2
Gilleanes T.A. Guedes

Novatec Editora

Copyright 2005 da Novatec Editora Ltda.

Todos os direitos reservados e protegidos pela Lei 9.610


de 19/02/1998. proibida a reproduo desta obra,
mesmo parcial, por qualquer processo, sem prvia
autorizao, por escrito, do autor e da Editora.
Editor: RUBENS PRATES
2 Edio Novembro/2005

ISBN: 85-7522-065-9

NOVATEC EDITORA LTDA.


Rua Lus Antnio dos Santos 110
02018-012 So Paulo SP Brasil
Tel.: +55 11 6959-6529
Fax: +55 11 6950-8869
E-mail: novatec@novatec.com.br
Site: www.novatec.com.br

Sumrio

Informaes Gerais ........................................................................ 5


Sobre o Autor ........................................................................... 5
Estrutura desse Guia ............................................................... 5
1 Introduo UML ........................................................................ 6
1.1 Breve Histrico da UML ..................................................... 6
1.2 Por Que Tantos Diagramas? .............................................. 7
1.3 Rpido Resumo dos Diagramas da UML .......................... 7
1.4 Ferramentas CASE Baseadas na Linguagem UML ........ 16
2 Orientao a Objetos ................................................................. 18
2.1 Classificao, Abstrao e Instanciao ......................... 18
2.2 Classes de Objetos .......................................................... 19
2.3 Atributos ........................................................................... 19
2.4 Mtodos ........................................................................... 20
2.5 Visibilidade ....................................................................... 20
2.6 Herana ............................................................................ 21
2.7 Polimorfismo .................................................................... 22
3 Diagrama de Casos de Uso ...................................................... 23
3.1 Atores ............................................................................... 23
3.2 Casos de Uso ................................................................... 23
3.3 Associaes ..................................................................... 24
3.4 Especializao/Generalizao ......................................... 24
3.5 Incluso ............................................................................ 25
3.6 Extenso .......................................................................... 26
3.7 Restries em Associaes de Extenso ........................ 27
3.8 Pontos de Extenso ......................................................... 27
3.8 Multiplicidade no Diagrama de Casos de Uso ................. 28
3.9 Fronteira de Sistema ........................................................ 28
3.10 Documentao de Casos de Uso .................................. 28
3.11 Estudo de Caso .............................................................. 29
4 Diagrama de Classes ................................................................ 32
4.1 Relacionamentos ou Associaes ................................... 33
4.3 Classe Associativa ........................................................... 38
4.4 Interfaces ......................................................................... 39
4.5 Restrio .......................................................................... 40
4.6 Esteretipos ..................................................................... 42
4.8 Estudo de Caso ............................................................... 43
5 Diagrama de Objetos ................................................................. 46
5.1 Objeto ............................................................................... 46
5.2 Vnculos ........................................................................... 46
6 Diagrama de Estrutura Composta ............................................. 48
6.1 Colaboraes ................................................................... 48
6.2 Ocorrncia de Colaborao ............................................. 50
6.3 Portas ............................................................................... 51
6.4 Propriedades .................................................................... 51
6.5 Estudo de Caso ............................................................... 52
7 Diagrama de Seqncia ............................................................ 53
7.1 Atores ............................................................................... 53
7.2 Objetos ............................................................................. 53
7.3 Linha de Vida ................................................................... 54
7.4 Foco de Controle ou Ativao .......................................... 54
7.5 Mensagens ou Estmulos ................................................. 55
7.6 Mensagens de retorno ..................................................... 57
7.7 Auto-chamadas ou Auto-delegaes ............................... 57
7.8 Condies ou Condies de Guarda ............................... 57
7.9 Fragmentos de Interao e Ocorrncias de Interao .... 58
7.10 Estudo de Caso ............................................................. 66
8 Diagrama de Comunicao ....................................................... 69
8.1 Mensagens ....................................................................... 69
8.2 Estudo de Caso ............................................................... 69
9 Diagrama de Mquina de Estados ............................................ 73
9.1 Estado .............................................................................. 73
9.2 Transies ........................................................................ 73
9.3 Estados Inicial e Final ...................................................... 73
9.4 Atividades internas ........................................................... 74
9.5 Transies internas .......................................................... 74
9.6 Auto-Transies ............................................................... 75

Sumrio

9.7 Pseudo-Estado de Escolha .............................................. 75


9.8 Barra de Sincronizao .................................................... 76
9.9 Pseudo-Estado de Juno ............................................... 76
9.10 Estado Composto .......................................................... 77
9.11 Estado de Histria .......................................................... 78
9.12 Estado de Sub-Mquina ................................................ 78
9.13 Estados de Entrada e Sada (Entry e Exit States) ......... 79
9.14 Pseudo-Estado de Trmino ........................................... 79
9.15 Estado de Sincronismo .................................................. 79
9.16 Estudo de Caso ............................................................. 80
10 Diagrama de Atividade ............................................................ 81
10.1 N de Ao ..................................................................... 81
10.2 Controle de Fluxo ........................................................... 81
10.3 N Inicial ........................................................................ 82
10.4 N Final .......................................................................... 82
10.5 N de Deciso ............................................................... 82
10.6 Exemplo de Diagrama de Atividade ............................... 83
10.7 Conectores ..................................................................... 84
10.8 Sub-Atividade ................................................................. 85
10.9 N de Bifurcao/Unio ................................................. 85
10.10 Final de Fluxo .............................................................. 86
10.11 Fluxo de Objetos .......................................................... 86
10.12 N de Objeto ................................................................ 86
10.13 Alfinetes (Pins) ............................................................. 87
10.14 N de Parmetro de Atividade ..................................... 87
10.15 Excees ...................................................................... 87
10.16 Ao de Objeto de Envio ............................................. 88
10.17 Ao de Evento de Aceitao ...................................... 88
10.18 Ao de Evento de Tempo de Aceitao ..................... 89
10.19 N de Repositrio de Dados (Data Store Node) ......... 89
10.20 Partio de Atividade ................................................... 89
10.21 Regio de Atividade Interrompvel ............................... 90
10.22 Regio de Expanso .................................................... 90
10.23 Estudo de Caso ........................................................... 91
11 Diagrama de Interao Geral .................................................. 94
12 Diagrama de Componentes ..................................................... 95
12.1 Componente ................................................................... 95
12.2 Interfaces Fornecidas e Requeridas .............................. 95
12.3 Classes e Componentes Internos .................................. 96
12.4 Exemplo de Diagrama de Componentes ....................... 97
13 Diagrama de Implantao ....................................................... 98
13.1 Ns ................................................................................. 98
13.2 Associao entre Ns .................................................... 98
13.3 Exemplo de Diagrama de Implantao .......................... 99
13.4 Artefatos ......................................................................... 99
13.5 Especificao de Implantao ..................................... 100
14 Diagrama de Pacotes ............................................................ 101
14.1 Pacote .......................................................................... 101
14.2 Dependncia ................................................................ 101
14.3 Pacotes Contendo Pacotes ......................................... 102
15 Diagrama de Tempo .............................................................. 103
ndice Remissivo ......................................................................... 105

Informaes Gerais

Informaes Gerais
Sobre o Autor
Gilleanes Thorwald Araujo Guedes mestre em Cincia da
Computao pela Universidade Federal do Rio Grande do Sul
(UFRGS) e Bacharel em Informtica pela Universidade da
Regio da Campanha (URCAMP). Atualmente professor de
Engenharia de Software no curso de Sistemas de Informao na
Faculdade do Sul do Mato Grosso (FACSUL-CESUR) e no
curso de Licenciatura em Informtica da Universidade Federal
do Mato Grosso (UFMT). O autor j ministrou diversas palestras
e cursos sobre UML em eventos cientficos e ps-graduaes
Lato Sensu, sendo autor do livro UML Uma Abordagem
Prtica, tambm publicado pela Novatec. Pode ser contatado
por meio do e-mail gtag@novateceditora.com.br.

Estrutura desse Guia


O primeiro tpico deste guia fornece uma viso geral da UML,
apresentando um breve histrico da linguagem e destacando
seus objetivos, alm de fornecer uma breve explanao sobre
cada um de seus diagramas. Ao fim deste tpico so apresentadas
algumas das ferramentas CASE que suportam a UML disponveis
no mercado.
O segundo tpico apresenta o Paradigma de Orientao a
Objetos, cujo conhecimento imprescindvel para quem deseja
modelar sistemas orientados a objeto. Neste tpico sero
detalhados os conceitos de abstrao, classes, objetos, herana
e polimorfismo, entre outros.
Em seguida o guia passa a discorrer sobre cada um dos 13
diagramas da linguagem UML, detalhando seus objetivos e
apresentando e exemplificando seus componentes, alm de
detalhar como utilizar cada diagrama na modelagem de sistemas.
Ao longo deste guia iremos modelar um pequeno sistema como
estudo de caso. O sistema modelado tem por objetivo controlar
a submisso de trabalhos em um congresso cientfico e ser
modelado por meio de praticamente todos os diagramas
fornecidos pela linguagem, de acordo com a viso e objetivos de
cada diagrama.
A ferramenta utilizada para a modelagem de todos os diagramas
deste guia foi a Enterprise Architect verso 4.1. No final do
primeiro tpico faremos um breve comentrio sobre esta
ferramenta.

Introduo UML

1 Introduo UML
A UML (Unified Modeling Language ou Linguagem de Modelagem
Unificada) uma linguagem visual utilizada para modelar sistemas
computacionais por meio do paradigma de Orientao a Objetos.
Essa linguagem tornou-se, nos ltimos anos, a linguagem padro
de modelagem de software adotada internacionalmente pela
indstria de Engenharia de Software.
Deve ficar bem claro, no entanto, que a UML no uma linguagem
de programao e sim uma linguagem de modelagem, cujo objetivo
auxiliar os engenheiros de software a definir as caractersticas
do software, tais como seus requisitos, seu comportamento, sua
estrutura lgica, a dinmica de seus processos e at mesmo suas
necessidades fsicas em relao ao equipamento sobre o qual o
sistema dever ser implantado. Todas essas caractersticas so
definidas por meio da UML antes do software comear a ser
realmente desenvolvido.

1.1 Breve Histrico da UML


A UML surgiu da unio de trs metodologias de modelagem: o
mtodo de Booch, o mtodo OMT (Object Modeling Technique)
de Jacobson e o mtodo OOSE (Object-Oriented Software
Engineering) de Rumbaugh. Estas eram, at meados da dcada
de 90, as trs metodologias de modelagem orientada a objetos
mais populares entre os profissionais da rea de engenharia de
software. A unio dessas metodologias contou com o amplo
apoio da Rational Software, que incentivou e financiou a unio
das trs metodologias.
O esforo inicial do projeto comeou com a unio do mtodo de
Booch com o mtodo OMT de Jacobson, o que resultou no
lanamento do Mtodo Unificado no final de 1995. Logo em
seguida, Rumbaugh juntou-se a Booch e Jacobson na Rational
Software e seu mtodo OOSE comeou tambm a ser incorporado
nova metodologia. O trabalho de Booch, Jacobson e Rumbaugh,
conhecidos popularmente como Os Trs Amigos, resultou no
lanamento, em 1996, da primeira verso da UML propriamente
dita.
To logo a primeira verso foi lanada, diversas grandes empresas
atuantes na rea de engenharia e desenvolvimento de software
passaram a contribuir com o projeto, fornecendo sugestes para
melhorar e ampliar a linguagem. Finalmente a UML foi adotada
pela OMG (Object Management Group ou Grupo de
Gerenciamento de Objetos) em 1997, como uma linguagem
padro de modelagem. At pouco tempo atrs, a UML
encontrava-se na verso 1.5, tendo sido muito recentemente
substituda pela verso 2.0. Essa nova verso traz grandes
novidades em relao estrutura geral da linguagem
principalmente com relao abordagem de quatro camadas e
a possibilidade de se desenvolver perfis particulares a partir
da UML. A documentao oficial da UML pode ser consultada
no site da OMG em www.omg.com.

Introduo UML

1.2 Por Que Tantos Diagramas?


O objetivo disto fornecer mltiplas vises do sistema a ser
modelado, analisando-o e modelando-o sob diversos aspectos,
procurando-se assim atingir a completitude da modelagem,
permitindo que cada diagrama complemente os outros. Cada
diagrama da UML analisa o sistema, ou parte dele, sob uma
determina tica, como se o sistema fosse modelado em
camadas, sendo que alguns diagramas enfocam o sistema de
forma mais geral, apresentando uma viso externa do sistema,
como o objetivo do Diagrama de Casos de Uso, enquanto
outros oferecem uma viso de uma camada mais profunda do
software, apresentando um enfoque mais tcnico ou ainda
visualizando apenas uma caracterstica especfica do sistema ou
um determinado processo.
A utilizao de diversos diagramas permite que falhas possam
ser descobertas nos diagramas anteriores, diminuindo a
possibilidade da ocorrncia de erros durante a fase de
desenvolvimento do software. importante destacar que, embora
cada diagrama tenha sua utilidade, nem sempre necessrio
modelar um sistema utilizando-se de todos os diagramas, pois
alguns deles possuem funes muito especficas, como o caso
do Diagrama de Tempo, por exemplo.

1.3 Rpido Resumo dos Diagramas da UML


A seguir descreveremos rapidamente cada um dos diagramas
oferecidos pela UML, destacando suas principais caractersticas
e objetivos. O leitor ir notar que cada diagrama possui uma aba
em seu canto superior esquerdo contendo um operador e a
descrio do diagrama. O operador serve para determinar qual
o tipo de diagrama, assim ud refere-se a Use Case Diagram
(Diagrama de Caso de Uso), cd a Class Diagram (Diagrama de
Classes) e aos diagramas que o estendem como o Diagrama de
Objetos, sd a Sequence Diagram (Diagrama de Seqncia), sm
a State-Machine Diagram (Diagrama de Mquina de Estados) e
assim por diante.

1.3.1 Diagrama de Casos de Uso


Este o diagrama mais geral e informal da UML, sendo utilizado
normalmente nas fases de Levantamento e Anlise de Requisitos
do sistema, onde so determinadas as necessidades do usurio,
embora venha a ser consultado durante todo o processo de
modelagem e sirva de base para todos os outros diagramas.
Apresenta uma linguagem simples e de fcil compreenso para
que os usurios possam ter uma idia geral de como o sistema ir
se comportar. Procura identificar os atores (usurios, outros
sistemas ou at mesmo algum hardware especial), que utilizaro
de alguma forma o software, bem como os servios, ou seja, as
opes, que o sistema disponibilizar aos atores, conhecidas
neste diagrama como Casos de Uso. A figura 1.1 apresenta um
exemplo desse diagrama.

Introduo UML

Figura 1.1 Exemplo de Diagrama de Casos de Uso.

1.3.2 Diagrama de Classes


Este o diagrama mais utilizado e o mais importante da UML,
servindo de apoio para a maioria dos outros diagramas. Como
o prprio nome diz, esse diagrama define a estrutura das classes
utilizadas pelo sistema, determinando os atributos e mtodos
possudos por cada classe, alm de estabelecer como as classes
se relacionam e trocam informaes entre si. A figura 1.2
demonstra um exemplo desse diagrama.

Figura 1.2 Exemplo de Diagrama de Classes.

Introduo UML

1.3.3 Diagrama de Objetos


Este diagrama est amplamente associado ao Diagrama de Classes.
Na verdade, o Diagrama de Objetos praticamente um
complemento do Diagrama de Classes, sendo bastante
dependente deste. O Diagrama de Objetos fornece uma viso
dos valores armazenados pelos objetos de um Diagrama de
Classes em um determinado momento da execuo de um
processo. A figura 1.3 apresenta um exemplo de Diagrama de
Objetos.

Figura 1.3 Exemplo de Diagrama de Objetos.

1.3.4 Diagrama de Estrutura Composta


O Diagrama de Estrutura Composta utilizado para modelar
Colaboraes. Uma colaborao descreve uma viso de um
conjunto de entidades cooperativas interpretadas por instncias
que cooperam entre si para executar uma funo especfica. O
termo estrutura desse diagrama refere-se a uma composio de
elementos interconectados, representando instncias de tempo
de execuo colaborando atravs de vnculos de comunicao
para atingir algum objetivo comum. Esse diagrama tambm
pode ser utilizado para definir a estrutura interna de um
classificador. Este um dos trs novos diagramas propostos pela
UML 2. A figura 1.4 apresenta um exemplo de Diagrama de
Estrutura Composta.

Figura 1.4 Exemplo de Diagrama de Estrutura Composta.

10

Introduo UML

1.3.5 Diagrama de Seqncia


O Diagrama de Seqncia preocupa-se com a ordem temporal em
que as mensagens so trocadas entre os objetos envolvidos em um
determinado processo. Em geral, baseia-se em um Caso de Uso
definido pelo diagrama de mesmo nome e apia-se no Diagrama
de Classes para determinar os objetos das classes envolvidas em
um processo, bem como os mtodos disparados entre os mesmos.
Um Diagrama de Seqncia costuma identificar o evento gerador
do processo modelado, bem como, o ator responsvel por este
evento e determina como o processo deve se desenrolar e ser
concludo por meio do envio de mensagens, que em geral disparam
mtodos, entre os objetos. A figura 1.5 apresenta um exemplo
desse diagrama.

Figura 1.5 Exemplo de Diagrama de Seqncia.

1.3.6 Diagrama de Comunicao


O Diagrama de Comunicao era conhecido como Diagrama de
Colaborao at a verso 1.5 da UML, tendo seu nome modificado
para Diagrama de Comunicao a partir da verso 2.0. Esse
diagrama est amplamente associado ao Diagrama de Seqncia,
na verdade, um complementa o outro. As informaes mostradas
no Diagrama de Comunicao so, com freqncia, praticamente
as mesmas apresentadas no Diagrama de Seqncia, porm com
um enfoque diferente, visto que este diagrama no se preocupa
com a temporalidade do processo, concentrando-se em como os
objetos esto vinculados e quais mensagens trocam entre si
durante o processo. A figura 1.6 apresenta um exemplo de
Diagrama de Comunicao.

1.3.7 Diagrama de Mquina de Estados


O Diagrama de Mquina de Estados era conhecido nas verses
anteriores da linguagem como Diagrama de Grfico de Estados
ou simplesmente como Diagrama de Estados, tendo assumido
esta nova nomenclatura a partir da verso 2. Este diagrama
procura acompanhar as mudanas sofridas nos estados de uma
instncia de uma classe, de um Caso de Uso ou mesmo de um
subsistema ou sistema completo. Como o Diagrama de Seqncia,
o Diagrama de Mquina de Estados muitas vezes baseia-se em
um Caso de Uso e apia-se no Diagrama de Classes. A figura 1.7
apresenta um exemplo de Diagrama de Mquina de Estados.

Introduo UML

11

Figura 1.6 Exemplo de Diagrama de Comunicao.

Figura 1.7 Exemplo de Diagrama de Mquina de Estados.

1.3.8 Diagrama de Atividade


O Diagrama de Atividade era considerado um caso especial do
antigo Diagrama de Grfico de Estados, mas a partir da UML 2.0
este diagrama tornou-se independente, deixando inclusive de se
basear em mquinas de estados e passando a se basear em Redes
de Petri. O Diagrama de Atividade preocupa-se em descrever os
passos a serem percorridos para a concluso de uma atividade
especfica, muitas vezes representada por um mtodo com um
certo grau de complexidade, podendo, no entanto modelar um
processo completo. Concentra-se na representao do fluxo de
controle e no fluxo de objeto de uma atividade. A figura 1.8
apresenta um exemplo desse diagrama.

1.3.9 Diagrama de Interao Geral


O Diagrama de Interao Geral uma variao do Diagrama de
Atividade que fornece uma viso geral dentro de um sistema ou
processo de negcio. Esse diagrama passou a existir somente a
partir da UML 2. O Diagrama de Interao Geral costuma
englobar diversos tipos de diagramas de interao para
demonstrar um processo geral. A figura 1.9 apresenta um
exemplo desse diagrama.

12

Introduo UML

Figura 1.8 Exemplo de Diagrama de Atividade.

1.3.10 Diagrama de Componentes


O Diagrama de Componentes est amplamente associado
linguagem de programao que ser utilizada para desenvolver
o sistema modelado. Esse diagrama representa as componentes
do sistema quando este for ser implementado em termos de
mdulos de cdigo-fonte, bibliotecas, formulrios, arquivos de
ajuda, mdulos executveis etc. e determina como esses
componentes estaro estruturados e interagiro para que o
sistema funcione de maneira adequada. O Diagrama de
Componentes pode ser utilizado para modelar o cdigo-fonte,
os mdulos executveis de um sistema, a estrutura fsica de um
banco de dados ou mesmo os componentes necessrios para a
construo de interfaces. A figura 1.10 apresenta um exemplo
desse diagrama.

Introduo UML

Figura 1.9 Exemplo de Diagrama de Interao Geral.

Figura 1.10 Exemplo de Diagrama de Componentes.

13

14

Introduo UML

1.3.11 Diagrama de Implantao


O Diagrama de Implantao determina as necessidades de hardware
do sistema, as caractersticas fsicas como servidores, estaes,
topologias e protocolos de comunicao, ou seja, todo o aparato
fsico sobre o qual o sistema dever ser executado. A figura 1.11
apresenta um exemplo desse diagrama.

Figura 1.11 Exemplo de Diagrama de Implantao.

1.3.12 Diagrama de Pacotes


O Diagrama de Pacotes tem por objetivo representar os subsistemas
ou sub-mdulos englobados por um sistema de forma a determinar
as partes que o compem. Pode ser utilizado de maneira
independente ou associado com outros diagramas. Este diagrama
pode ser utilizado tambm para auxiliar a demonstrar a arquitetura
de uma linguagem, como ocorre com a prpria UML. A figura 1.12
apresenta um exemplo desse diagrama.

Figura 1.12 Exemplo de Diagrama de Pacotes.

1.3.13 Diagrama de Tempo


O Diagrama de Tempo descreve a mudana no estado ou condio
de uma instncia de uma classe ou seu papel durante um tempo.
Tipicamente utilizado para demonstrar a mudana no estado de
um objeto no tempo em resposta a eventos externos. Esse o
terceiro diagrama criado a partir da nova verso da linguagem. A
figura 1.13 apresenta um exemplo desse diagrama.

Introduo UML

15

Figura 1.13 Exemplo de Diagrama de Tempo.

1.3.14 Sntese Geral dos Diagramas


Os diagramas da UML 2.0 dividem-se em Diagramas Estruturais
e Diagramas Comportamentais, sendo que estes ltimos possuem
ainda uma sub-diviso representada pelos Diagramas de
Interao, conforme pode ser verificado na figura 1.14.