Você está na página 1de 65

Uma Viso Geral de UML

Prof. Fabio Kon


IME/USP
Apresentao baseada em slides de Kendall V. Scott

DCC IME/USP Programao Orientada a Objetos 1


Linguagem de Modelagem
Unificada
UML uma linguagem padro da OMG para
visualizao,
especificao,
construo e
documentao
de software orientado a objetos.

DCC IME/USP Programao Orientada a Objetos 2


Visualizao
A existncia de um modelo visual facilita a
comunicao e faz com que os membros de
um grupo tenham a mesma idia do sistema.

Cada smbolo grfico tem uma semntica


bem definida.

DCC IME/USP Programao Orientada a Objetos 3


Especificao

uma ferramenta poderosa para a


especificao de diferentes aspectos
arquiteturais e de uso de um sistema.

DCC IME/USP Programao Orientada a Objetos 4


Construo
Gerao automtica de cdigo a partir do
modelo visual
Gerao do modelo visual a partir do cdigo
Ambientes de desenvolvimento de software
atuais permitem:
movimentaes em ambos sentidos e
manuteno da consistncia entre as duas vises.

DCC IME/USP Programao Orientada a Objetos 5


Documentao
Pode incluir artefatos como:
Deliverables (documentos como
especificao de requisitos, especificaes
funcionais, planos de teste, etc.).
Materiais que so importantes para
controlar, medir, e refletir sobre um sistema
durante o seu desenvolvimento e
implantao.

DCC IME/USP Programao Orientada a Objetos 6


Descrio Arquitetnica
UML oferece uma forma padro de se
desenhar as plantas (como em arquitetura)
de um sistema de forma a incluir
aspectos abstratos (processos de negcio,
funcionalidades do sistema)
aspectos concretos (classes C++/Java
esquemas de bancos de dados, componentes
de software reutilizveis)

DCC IME/USP Programao Orientada a Objetos 7


Razes para Modelar
Comunicar a estrutura e o comportamento
desejado de um sistema.
Visualizar e controlar a arquitetura de um
sistema.
Para melhorar o nosso entendimento de um
sistema e, assim, expor oportunidades para
melhorias e reutilizao.
Para administrar os riscos e trade-offs.
DCC IME/USP Programao Orientada a Objetos 8
Diagramas Estruturais
Usados para visualizar, especificar, construir e
documentar aspectos estticos de um
sistema
diagrama de classes
diagrama de pacotes
diagrama de objetos
diagrama de componentes
diagrama de implantao
DCC IME/USP Programao Orientada a Objetos 9
Usos Comuns para
Diagramas de Classes
Modelar o vocabulrio do sistema, em termos de
quais abstraes fazem parte do sistema e quais
caem fora de seus domnios.
Modelar as colaboraes/interaes (sociedades
de elementos que trabalham em conjunto
oferencendo algum comportamento cooperativo).
Modelagem lgica dos dados manipulados pelo
sistema (servindo de base para a definio formal
do modelo da base de dados).
DCC IME/USP Programao Orientada a Objetos 10
Notao para Classes

Nome
Atributos

Operaes

DCC IME/USP Programao Orientada a Objetos 11


Notaes Alternativas

Nome Nome
Atributos Atributos
Nome
Operaes Operaes

Responsabilidades
itlico abstrata

DCC IME/USP Programao Orientada a Objetos 12


Especificao do Acesso

Nome
+ public
+ atrib1
- atrib2 - private

+ op1 # protected
- op2
# op3

DCC IME/USP Programao Orientada a Objetos 13


Relacionamentos
So conexes entre classes:
1. dependncia
2. generalizao
3. associao

DCC IME/USP Programao Orientada a Objetos 14


Dependncia
uma relao do tipo usa na qual mudanas
na implementao de uma classe podem causar
efeitos em outra classe que a usa.
Exemplo: uma classe usa a outra.

Window
Event
handleEvent()

DCC IME/USP Programao Orientada a Objetos 15


Generalizao
uma relao do tipo um entre uma coisa
geral (superclasse) e uma coisa mais
especfica (subclasse).

Shape

Circle Rectangle
DCC IME/USP Programao Orientada a Objetos 16
Associao
uma relao estrutural na qual classes ou
objetos esto interconectados.
Uma associao entre objetos chamada de
uma ligao (link).

Pessoa Empresa

DCC IME/USP Programao Orientada a Objetos 17


Ornamentos para Associaes
nome
papel
multiplicidade
agregao
composio

DCC IME/USP Programao Orientada a Objetos 18


Nome da Associao

descreve a natureza da relao:


trabalha p/
Pessoa Empresa

pode indicar a direo:


trabalha p/
Pessoa Empresa

DCC IME/USP Programao Orientada a Objetos 19


Papis

Classes e objetos podem assumir papis


diferentes em diferentes momentos.

empregado
Pessoa empregador Empresa

DCC IME/USP Programao Orientada a Objetos 20


Multiplicidade
Valores possveis: valor exato, intervalo, ou
* para muitos.

Exemplo:
1..*
Pessoa Empresa
1

DCC IME/USP Programao Orientada a Objetos 21


Agregao
uma relao do tipo todo/parte ou possui
um na qual uma classe representa uma coisa
grande que composta de coisas menores.

Instituto

( diamante vazio )

Departamento

DCC IME/USP Programao Orientada a Objetos 22


Composio
um tipo especial de agregao na qual as
partes so inseparveis do todo.

Window

( diamante cheio )

Frame

DCC IME/USP Programao Orientada a Objetos 23


Classes de Associao
Uma classe de associao possui as
propriedades de classes e de associaes:
Pessoa Empresa

Emprego
descrio
dataDeContratao
salrio

DCC IME/USP Programao Orientada a Objetos 24


Interfaces
uma coleo de operaes que possui um
nome. usada para especificar um tipo de
servio sem ditar a sua implementao.

interface
Observer
Observer

update()

DCC IME/USP Programao Orientada a Objetos 25


Interfaces e Relacionamentos
Uma interface pode participar de
generalizaes, associaes e dependncias.

Tracker
Observer Periodic
Observer

Observation

DCC IME/USP Programao Orientada a Objetos 26


Realizao
uma relao entre uma interface e a classe
que a implementa, i.e., que prov o servio
definido pela interface.
interface
Observer TargetTracker
Observer
update()

Uma classe pode realizar (implementar) vrias


interfaces.
DCC IME/USP Programao Orientada a Objetos 27
DCC IME/USP Programao Orientada a Objetos 28
Ornamentos e Extensibilidade

Um ornamento algo como uma nota que adiciona


texto ou algum elemento grfico ao modelo.
UML oferece vrios mecanismos que podem ser
utilizados para estender a linguagem oficial.
esteretipos
valores rotulados (tagged values)
restries

DCC IME/USP Programao Orientada a Objetos 29


Notas
um smbolo grfico contendo texto ou
figuras oferecendo algum comentrio ou
detalhes sobre um elemento de um modelo.

Check with Mike See http://www.


on this. softdocwiz.com

See encrypt.ps

DCC IME/USP Programao Orientada a Objetos 30


Esteretipos
uma extenso do vocabulrio de UML que
permite a criao de um tipo bsico novo que
especfico ao problema que est sendo
resolvido.

interface
Observer control
TargetTracker
update()

DCC IME/USP Programao Orientada a Objetos 31


Esteretipos Padro em UML
cerca de 50, incluindo:
become (indica uma dependncia na qual
um objeto se torna outro)
enumeration (especifica um tipo enumerado
incluindo seus possveis valores)
utility (uma classe na qual todos os valores e
atributos pertencem classe (e no s suas
instncias)
DCC IME/USP Programao Orientada a Objetos 32
Valores Rotulados
Permite a especificao de propriedades de
elementos de um modelo:

GL Account TargetTracker
{persistent} {release = 2.0}

DCC IME/USP Programao Orientada a Objetos 33


Restries
Especifica uma condio que deve ser
satisfeita pelo sistema.

Portfolio
Person
{secure}
{or}
Corporation
Bank Account

DCC IME/USP Programao Orientada a Objetos 34


Pacotes
Um mecanismo para organizar elementos de
um modelo (classes, diagramas, etc. ) em
grupos.

Cada elemento de um modelo pertence a um


nico pacote. O seu nome dentro do pacote
deve ser nico.

DCC IME/USP Programao Orientada a Objetos 35


Um Diagrama de Pacotes

Arcabouo para construo de sistemas distribudos


adaptativos (de Francisco Silva2).

DCC IME/USP Programao Orientada a Objetos 36


Diagrama de Objetos
Mostra um conjunto de objetos e seus
relacionamentos em um certo instante em tempo
de execuo.
ime: Instituto

comp: Departmento : Contato


nome = MAC ramal = 6000
p1: Pessoa
p2: Pessoa ID = 84724
ID = 87684
DCC IME/USP Programao Orientada a Objetos 37
Componente
uma parte de um sistema que pode ser
substituda e que oferece uma
implementao de um conjunto de
interfaces.
Exemplos prticos:
Biblioteca de carga dinmica (DLL)
Componente CORBA
Enterprise Java Bean (EJB)
DCC IME/USP Programao Orientada a Objetos 38
Notao para Componentes

-----------
----------
----------
Escalonador ----------
----------
----------
signal.cpp

DCC IME/USP Programao Orientada a Objetos 39


DCC IME/USP Programao Orientada a Objetos 40
N
Representa um elemento fsico capaz de
oferecer recursos computacionais.

Em geral, possui pelo menos memria e


processador.

DCC IME/USP Programao Orientada a Objetos 41


Diagrama de Implantao

: Kiosk
deploys 10-T Ethernet
user.exe
s: Server : RAID farm
deploys
dbadmin.exe
c: Console
deploys RS-232
config.exe
DCC IME/USP Programao Orientada a Objetos 42
Diagrama de Implantao

: Client
deploys
mozilla.exe
a: AppServer : RAID farm
* HTTP
deploys
1 JBoss
w: WebServer
deploys Fast Ethernet
apache
DCC IME/USP Programao Orientada a Objetos 43
Diagramas Comportamentais
Usados para visualizar, especifcar, construir e
documentar aspectos dinmicos de um
sistema
diagrama de casos de uso
diagrama de seqncia
diagrama de colaborao
diagrama de estados
diagrama de atividades
DCC IME/USP Programao Orientada a Objetos 44
Casos de Uso e Atores
Um caso de uso uma seqncia de aes,
incluindo variantes, que um sistema realiza
a fim de gerar um resultado observvel de
interesse para um ator.
Um ator um papel (ou conjunto de papis)
que um usurio desempenha quando
participa de um caso de uso.

DCC IME/USP Programao Orientada a Objetos 45


Fluxos de Eventos
O fluxo de eventos principal descreve o
caso em que tudo corre bem.
Fluxos de eventos excepcionais cobrem as
variaes que podem ocorrer quando
diferentes coisas do errado ou quando algo
pouco comum acontece.

DCC IME/USP Programao Orientada a Objetos 46


Um Diagrama de Caso de Uso

Compra
Material
Gera
Relatrio de
Compra

Atualiza
Estoque

DCC IME/USP Programao Orientada a Objetos 47


Organizao de Casos de Uso
pacotes
generalizao
incluso
extenso

DCC IME/USP Programao Orientada a Objetos 48


Pacotes de Casos de Uso
Pode ser til para distribuir trabalho para sub-
grupos de trabalho.

Estoque
Cria
Agrega
Novo
Estoques
Estoque
Gera
Visualiza
Relatrio
Estoque
Mensal

DCC IME/USP Programao Orientada a Objetos 49


Generalizao

Anloga generalizao/especializao de
classes.

Analisa
Verifica Autentica
Impresso
Senha Usurio
Digital

DCC IME/USP Programao Orientada a Objetos 50


Incluso
O esteretipo include indica que um caso
inclui o outro.
Permite fatorar comportamento comum a
vrios casos.

Encomenda include Autentica include Rastreia


Livro Usurio Encomenda

DCC IME/USP Programao Orientada a Objetos 51


Extenso
Pode-se usar o esteretipo extend para
indicar que um caso estende o outro.
til para fatorar comportamento
incomum/no-padro.

Encomenda extend Encomenda


Livro Urgentssima

DCC IME/USP Programao Orientada a Objetos 52


DCC IME/USP Programao Orientada a Objetos 53
Interaes e Mensagens
Uma interao um comportamento composto da
troca de um conjunto de mensagens entre um grupo
de objetos a fim de atingir um determinado objetivo.

Uma mensagem uma comunicao entre objetos


que resulta na transmisso de informao com o
intuito de que alguma atividade ser realizada.

DCC IME/USP Programao Orientada a Objetos 54


Diagrama de Seqncia
um diagrama de interaes que enfatiza a
ordem temporal das mensagens.
Uma linha de vida uma linha tracejada
vertical que representa o tempo de vida de um
objeto.
Um foco de controle um retngulo fino
vertical sobreposto linha de vida que mostra o
perodo durante o qual um objeto est realizando
uma ao.
DCC IME/USP Programao Orientada a Objetos 55
Diagrama de Seqncia

c: Client : Ticket Agent

create
setItinerary(i)

calculateRoute()
route

DCC IME/USP Programao Orientada a Objetos 56


DCC IME/USP Programao Orientada a Objetos 57
Diagrama de Colaborao
um diagrama de interao que enfatiza a
organizao dos objetos que participam da
interao.
Um caminho uma ligao entre objetos,
possivelmente com um esteretipo local.
Nmeros de seqncia indicam a ordem
temporal das mensagens em um ou mais
nveis.

DCC IME/USP Programao Orientada a Objetos 58


Diagrama de Colaborao

c: Client

1: create
2: setActions (a,d,o)
3: destroy
global
: Transaction p: ODBCProxy
2.1: setValues(d,3,4)
2.2: setValues(a,CO)
DCC IME/USP Programao Orientada a Objetos 59
DCC IME/USP Programao Orientada a Objetos 60
Diagrama de Estados
Diagrama de Estados
Representa
os possveis estados que um sistema pode
assumir e
as possveis transies entre os estados

DCC IME/USP Programao Orientada a Objetos 61


DCC IME/USP Programao Orientada a Objetos 62
Diagrama de Atividades
um tipo especfico de Diagrama de
Estados
til para modelar fluxo de trabalho
(workflow)
Representa as atividades que afetam o
estado do sistema e os fluxos que levam de
uma atividade a outra.
usado para modelar processos de negcio
e workflows
DCC IME/USP Programao Orientada a Objetos 63
Exemplo de
Diagrama de Atividade
[despertador toca]
Dormir Levantar Tomar caf

Filho
Escovar dente Vestir-se
se prepara

estmago: rgo

Sair uninho: Carro

DCC IME/USP Programao Orientada a Objetos 64


Thats All Folks!

Por hoje s pessoal!

DCC IME/USP Programao Orientada a Objetos 65

Você também pode gostar