Sunteți pe pagina 1din 173

1

UML
the Unified
Modeling Language
J os Davi Furlan
J dfurlan@jdfurlan.com.br
2
Elementos grficos
H trs tipos de relacionamentos topolgicos importantes:
conexo normalmente de linhas para formas 2-d
reteno de smbolos para formas 2-d com limites
anexo visual: um smbolo que est prximo a outro em um diagrama
H quatro tipos de elementos grficos de construo:
cones
smbolos 2-d
caminhos
texto
3
Diagramas da UML
Diagrama de classe
Diagrama de caso de uso
Diagramas de interao:
Diagrama de seqncia
Diagrama de colaborao
Diagrama de estado
Diagrama de atividade
Diagramas de implementao:
Diagrama de componente
Diagrama de implantao
4
Diagrama
de atividade
Diagrama
de seqncia
Texto em
linguagem
natural
Diagrama
de seqncia
Diagrama de
colaborao
Diagrama
de atividade
Descrio de
caso de uso
Descrio de
interao
Descrio de
cenrio
Cenrio
Colabora-
o
Caso de
uso
Diagrama de
colaborao


u
m
a

i
n
s
t

n
c
i
a

d
e
P
o
d
e

s
e
r

i
l
u
s
t
r
a
d
o

p
o
r
u
m

o
u

m
a
i
s


u
m
a

i
n
s
t

n
c
i
a

d
e
i
m
p
l
e
m
e
n
t
a
Fora do
sistema
Dentro do
sistema
Caminho
de
execuo
atravs do
sistema
Perspectiva Tipo de modelo Linguagem de modelagem Modelo
espao
trabalho
tempo
espao
tempo
trabalho
5
Notaes genricas
da UML
6
Pacote
Mecanismo de propsito geral para organizar elementos de
modelo em grupo
So pores principais resultantes da subdiviso em limites de
coeso lgica funcional
Se for possvel dar um nome a um grupo de classes, isso pode
indicar a existncia de um bom agrupamento para pacote
Um pacote pode estar aninhado em outro pacote
Nome do pacote
Contedo
do pacote
Se o contedo
for mostrado
Se o contedo no
for mostrado
ou
7
Pacote
Indivduo Organizao
Pessoa
Parte
8
Nome do
pacote
Dependncia
Pacote
Dependncia de pacotes
Classe 1 Classe 2
Classe 3
pacote
Se uma classe em um pacote precisa utilizar uma classe em
outro pacote pode-se desenhar uma dependncia (dependncias
no so transitivas)
Fornecedor
Cliente
9
Esteretipo
Palavra sugerida por Rebecca Wirfs-Brock para criar uma
metaclassificao de elementos na UML
Introduz novos elementos no metamodelo para permitir que
usurios estendam a capacidade de modelagem da linguagem
Todo elemento na UML pode ter no mximo um esteretipo
Esteretipos com semntica predefinida na UML so:
Classe e esteretipos de objeto;
Evento
Exceo
Interface
Metaclasse
Utilitrio
Esteretipos de tarefa
Processo: tarefa de impacto
Thread: tarefa mais simples
gerarExtensoDeValor(valor)
verificarFeriado(data)
...
Utilitrio
10
Esteretipo
Nome da Classe
Atributo
Atributo: tipo do dado
Atributo: tipo do dado = valor inicial
...
Operao
Operao (lista de argumentos): tipo de resultado
...
Esteretipo
Nome da Classe
Atributo
Atributo: tipo do dado
Atributo: tipo do dado = valor inicial
...
Operao
Operao (lista de argumentos): tipo de resultado
...
Esteretipo
Classe A
Classe B
Esteretipo
11
Nota
Um comentrio colocado em um diagrama sem qualquer
contedo semntico
Aparece em diagramas particulares e pode ser anexada a zero
ou mais elementos de modelagem atravs de linhas tracejadas
mostrada como um retngulo com canto curvado no canto
direito superior contendo um texto arbitrrio
Este diagrama foi elaborado
para preparao do livro
Modelagem de Objetos
12
Diagrama de
Classe
13
Diagrama de classes
Essncia da UML resultado de uma combinao de diagramas
propostos por OMT, Booch e vrios outros mtodos
Estrutura lgica esttica em uma superfcie de duas dimenses
mostrando uma coleo de elementos declarativos de modelo,
como classes, tipos e seus contedos e relaes
Relacionamentos no diagrama de classes
Generalizao/especificao
Indica relacionamentos superclasse/subclasse, tambm conhecidos como
herana ou classificao (i.e. uma enfermeira uma pessoa)
Agregao
Usada para denotar relacionamentos todo/parte (i.e. um item de compra
parte de um pedido)
Associao
Utilizada para denotar relacionamentos entre classes no correlatas (i.e. um
cliente pode alugar vrias fitas de vdeos)
14
Diagrama de classe
Pedido
incluirPedido( )
atenderPedido( )
Cliente
cdigoDoCliente
limiteDeCredito
Indivduo
Organizao
Organizao
cliente
Pedido, item
quantidade
Produto
Leite Chocolate Biscoito
{disjuno, incompleto}
Associao
Agregao 1
*
Multiplicidade
{ou}
Classe associativa
Restrio
Superclasse
Subclasse
Generalizao
Atributos
incluirItemPedido( )
calcularTotalPedido( )
Operaes
Classe
15
Objeto
Uma unidade real ou abstrata, individualizada e identificvel
que modela um conceito presente na realidade humana,
ocupando espao fsico (mundo fsico) ou lgico (na memria)
A identidade de um objeto uma propriedade que o distingue
de todos os demais, sendo preservada at mesmo quando seu
estado muda por completo
Pessoa
Equipamento
Dinheiro
16
Classe
Classe a representao de um conjunto de coisas reais ou
abstratas que so reconhecidas como sendo do mesmo tipo por
compartilhar as mesmas caractersticas de atributos, operaes,
relaes e semntica
Uma descrio que relaciona algum nmero de objetos
Retrato para um grupo arbitrrio de objetos relacionados, mas
no necessariamente idnticos
Nome da classe
atributo
atributo: tipo do dado
atributo: tipo do dado = valor inicial
...
operao
operao (lista de argumentos): tipo de resultado
...
17
Objetos= ocorrncias de uma classe
Classe= grupo de
objetos similares
que compartilham
atributos e
comportamento
semelhantes
Classe Indivduo
Indiv. A
Indiv. B
Indiv. C
Indiv. D Indiv. N
Classe e objetos
18
Abstrao
Cliente Fornecedor
Organizao
+cdigoDaOrganizao
+nomeDaOrganizao
+endereoDaOrganizao
19
Obtendo classes
Representam normalmente os substantivos no domnio de
aplicao
Classes grandes so mais difceis de entender e reutilizar.
Devemos criar classes de objetos que possuam propsitos bem
definidos para ajudar na reutilizao por outras aplicaes
Classes menos complicadas so mais fceis de entender e
manter, e se uma classe no puder ser explicada em algumas
oraes ou no mximo alguns pargrafos, ou ainda ter muitas
operaes ou se tornar confusa, so fortes candidatas a
subdiviso em classes menores
20
Uma classe pode ser...
Algo tangvel e/ou visvel, tal como pessoas, equipamentos,
minerais
Coisas intangveis e/ou simblicas, tais como qualidade,
planejamento, responsabilidades
Alguma coisa que possa ser concebida intelectualmente ou
direciona-se ao ou pensamento
Dispositivos ou sistemas exteriores com os quais a aplicao
interage
Eventos temporais ou externos
21
Viso corporativa versus departamentalizada
Organizao
Cliente Fornecedor
Viso corporativa
Viso departamentalizada
22
Indivduo Organizao
Relao indivduo
organizao
Acionista Consumidor Funcionrio
Prestador de
servio
{sobreposio, incompleto}
* *
Natureza dos objetos para obteno de classes
23
Padro para desenho de classes
Uma classe desenhada como sendo uma caixa retangular
com trs compartimentos:
nome de classe no compartimento superior
uma lista de atributos no compartimento intermedirio (pode ser
suprimida)
uma lista de operaes no compartimento inferior (pode ser suprimida).
As linhas de separao dos compartimentos no pode ser
suprimida se um dos comportamentos de atributos e operaes
estiver descrito
Se um compartimento suprimido, nenhuma concluso pode
ser assumida sobre a presena ou ausncia desse elemento
24
Detalhes no desenho de classes
Apresentar reticncias (...) ao final de uma lista ou de uma
seo delimitada de uma lista indica que existem elementos
adicionais no modelo que satisfazem a condio de seleo mas
isso no mostrado naquela lista
Dependendo da ferramenta de modelagem sendo empregada,
podem ser fornecidos compartimentos adicionais como uma
extenso teoria para mostrar propriedades definidas pelo
usurio, como por exemplo, regras empresariais,
responsabilidades, variaes, eventos manipulados entre outros
25
Classe
Nome da classe
atributos da classe
(opcional)
operaes da classe
(opcional)
Indivduo
Indivduo
Indivduo
Indivduo
+cdigoDoIndivduo: long
+sexo: M ou F
+dataDoNascimento: data
+incluirIndivduo(cdigoDoIndivduo)
+destruirIndivduo(cdigoDoIndivduo)
+cdigoDoIndivduo: long
+sexo: M ou F
+dataDoNascimento: data
+incluirIndivduo(cdigoDoIndivduo)
+destruirIndivduo(cdigoDoIndivduo)
1)
2)
3)
4)
V
a
r
i
a

e
s
26
Atributo
Estrutura de dado componente de uma classe
a menor unidade que em si possui significncia prpria
atravs de um princpio de atomicidade
Armazena um valor simples em uma clula
Sintaxe padro :
Visibilidade NomeDoAtributo: TipoDeExpresso =ValorInicial
{Propriedade}
Indivduo
+cdigoDoIindivduo: long
+gnero: M ou F
+dataDoNascimento: data
27
Visibilidade de atributo
+ visibilidade pblica (valor default)
Significa que todos tem acesso. Qualquer atributo (ou operao) que
siga esta palavra-chave pode ser acessado por operaes declaradas
dentro de outras classes. parte da interface de uma classe e visvel
por qualquer parte do ambiente de referncia da classe
# visibilidade protegida
Significa que qualquer atributo (ou operao) que siga a palavra-chave
pode ser acessado atravs de mtodos dentro da mesma classe e por
operaes de classes ao longo do pacote no qual a classe definida
- visibilidade privada
Declarao que parte da interface de uma classe mas no visvel a
quaisquer outras classes, ou seja, qualquer atributo (ou operao) que
siga esta palavra-chave pode apenas ser acessado por operaes
declaradas dentro da mesma classe. Tudo, exceto declaraes locais,
visvel fora da classe; identificadores de componente privado so
desconhecidos e inacessveis
28
Visibilidade de atributo
Cliente
+cdigoDoCliente
#situao
-limiteDeCrdito
Visibilidade pblica
Visibilidade protegida
Visibilidade privada
Nome do atributo
Nome da classe
29
Visibilidade de atributo
O marcador de visibilidade pode ser suprimido, mas sua
ausncia apenas indica que sua visibilidade no mostrada e
no que seja indefinida
Alguns tipos adicionais de visibilidade podem ser definidos para
suportar determinadas linguagens de programao, como o
caso da visibilidade de implementao para C++
Quando o atributo for precedido por / indica que um
atributo derivado (informao), ou seja, um atributo que pode
ser computado a partir de outro, mas mostrado para elucidar
melhor o modelo sem que agregue contedo semntico
30
Caractersticas do atributo
NomeDoAtributo
uma seqncia de caracteres de identificao. O nome do atributo tipicamente
comea com letra minscula
TipoDeExpresso
uma especificao que depende da linguagem de programao e do tipo de
implementao de um atributo. A UML evita especificar regras para construo
de tipos de expresso pois as linguagens de programao apresentam uma
variedade de regras para declarao de variveis e parmetros. Com isso, a UML
deixa indefinida a sintaxe real das expresses de tipo, passando a ser uma
responsabilidade da ferramenta em uso verificar e analisar gramaticalmente tais
expresses
ValorInicial
uma expresso que tambm dependente da linguagem de programao
utilizada para o valor inicial de um objeto criado recentemente. O valor inicial
opcional (o sinal igual tambm omitido)
Propriedade
Possui caractersticas aplicveis ao elemento, mas opcional. Refere-se a um
valor nomeado que denota uma caracterstica de um elemento com impacto
semntico. Certas propriedades so predefinidas na UML, outras podem ser
definidas pelo usurio. Algumas propriedades teis so:
31
Propriedades do atributo
Propriedades do atributo
Descrio do atributo
Uma descrio sucinta e autocontida que representa claramente o seu
propsito e alcance
Tipo de dado e tamanho do atributo
int, short, long, float, double, byte, boolean e char
Tipo de atributo
Esttico (nico valor compartilhado por todos os objetos da classe),
constante (valor imutvel), atributo normal (contm um valor que
varivel/modificvel), matriz (do tipo itemDeCompra[10], atributo final (
atributo constante que no pode ser mudado -- usado em J ava)
Domnio de valores
Valor mnimo e valor mximo (finito ou infinito) e restrio
32
Identificador de classe
Para individualizar e identificar cada objeto de uma classe,
assinalado um identificador (identidade ao objeto) que ser o
ponto de referncia para sua distino de todos os demais
dentro da classe
O identificador (ou OID Object Identifier) atribudo
automaticamente a objetos pelo gerenciador de banco de
objetos para identificar unicamente uma ocorrncia em
particular
Os identificadores tambm atuam como atributos de referncia
para representar associaes entre objetos, da mesma forma
como fazem as chaves estrangeiras em modelos relacionais
Uma diferena entre atributo de referncia e chave estrangeira
o fato de que este est associado a valores visveis ao
usurio, enquanto aquele no est
33
Informao versus dado - Exemplos
Informao Dados
Idade: 40 anos
Data do nascimento, Data do dia
Valor total fatura: R$ 1.000,00
Preo unitrio, Quantidade
13 km/l
Km percorrido, Mtrica de distncia,
Consumo , Mtrica de volume
Quente
Medio, Mtrica de temperatura,
Faixa de temperatura
Longe
Medio, Mtrica de distncia, Faixa
de distncia
34
Dado, operao e informao
Dado
Operao
Informao
35
Histrico de atributo
Funcionrio Cargo
Cargo de
funcionrio
* *
36
Operao
Um servio de classe ou comportamento resultante de um
procedimentos algortmico
So executadas operaes sempre que um objeto recebe uma
mensagem de outro objeto
As operaes esto relacionadas aos verbos associados aos
substantivos para fornecer as aes de tratamento de dados
em resposta a evento
A sintaxe padro :
Visibilidade NomeDaOperao (Parmetro) : ExpressoDeTipoDeRetorno
{Propriedade}
Indivduo
+incluirIndivduo(cdigoDoIndivduo)
+destruirIndivduo(cdigoDoIndivduo)
37
Operaes
O comportamento de uma classe representado por suas
operaes
Operaes podem ser encontradas examinando-se diagramas
de interao
:Item de
pedido
:Item de
estoque
Verificar estoque(item)
Item de estoque
verificarEstoque(item)
38
Visibilidade
Definida da mesma forma que para atributos, ou seja:
+ visibilidade pblica (valor default)
# visibilidade protegida
- visibilidade privada
Cliente
+obterLimiteDeCrdito
#bloquearCliente
-cancelarCliente
Visibilidade pblica
Visibilidade protegida
Visibilidade privada
Nome do atributo
Nome da classe
39
Caractersticas da operao
NomeDaOperao
uma seqncia de identificao da operao em si
Parmetro
uma lista de valores separada por vrgula de parmetros formais.
Trata-se de um especificao de uma varivel que pode ser mudada,
passada ou devolvida, podendo incluir um nome, tipo e direo.
Parmetros so usados para operaes, mensagens e eventos
ExpressoDeTipoDeRetorno
uma especificao dependente de linguagem de programao sobre o
tipo de implementao do valor retornado pela operao. Se o tipo de
retorno omitido a operao no devolve um valor
40
Caractersticas da operao
Propriedade
Indica valores de propriedade que se aplicam ao elemento, sendo
opcional (as chaves so omitidas se nenhuma propriedade for
especificada)
Algumas propriedades podem ser:
classificao
precondio
ps-condio
tipo de exceo
concorrncia
transformao
esteretipo
41
Caractersticas de propriedade de operao
Classificao declara a categoria da operao, por exemplo,
modificador, seletor, de interao, construtor, destrutor:
um modificador uma operao que altera o valor ou estado de um
objeto
um seletor uma operao que tem acesso, mas no pode alterar, o
valor ou estado de um objeto
de interao uma operao que permite visitar as partes de um objeto
um construtor uma operao que cria e/ou inicializa um objeto
um destrutor uma operao que destri/desabilita um objeto
42
Caractersticas de propriedade de operao
Precondio declara uma condio que deve ser satisfeita para
uma transformao correta; se a Precondio falha, uma
exceo pode ser levantada para indicar que a operao no
poderia ser executada corretamente
Ps-condio declara uma condio que assegura que a
transformao aconteceu corretamente; se a ps-condio
falha, uma exceo pode ser levantada para indicar que
aconteceu uma transformao com erro;
Tipo de exceo um tipo ou classe da exceo que
levantada pela operao
Concorrncia declara se a operao uma operao seqencial
ou simultnea; uma operao seqencial um membro de uma
classe seqencial; uma operao simultnea um membro de
uma classe simultnea
Transformao declara a frmula ou expresso da operao;
Esteretipo declara o tipo descritivo da operao, por exemplo,
modificador, de acesso etc
43
Caractersticas de propriedade de operao
Propriedades dependentes de linguagem de programao:
Uma operao virtual indica que a operao pode ser anulada em uma subclasse
Uma operao virtual pura indica que a classe uma classe abstrata em C++
Uma operao esttica uma operao de classe que pode modificar um valor
de atributo esttico; invocada atravs de chamada de classe e no objeto
Uma operao de const indica que a operao no vai modificar algum valor de
atributo
Um procedimento uma operao que pode ou no devolver um valor (uma
funo uma operao que devolve um valor)
Uma operao amiga pode ser acessada por membros de outra classe, por
exemplo uma classe amiga (C++)
Uma operao inline tem cdigo ampliado ao ponto de uma chamada para
melhoria de desempenho (C++)
Uma operao de evento manipula evento especial emDelphi, por exemplo, um
evento definido pelo usurio
Uma operao de sobreposio fornece uma operao de substituio em uma
subclasse que sobrepe uma operao em um superclasse (Delphi)
Uma operao final no pode ser anulada em uma subclasse (Delphi)
Uma operao nativa implementada fora de J ava
Uma operao sincronizada (synch) pode ser acessada simultaneamente,
fornecendo um bloqueio para assegurar que apenas um de cada vez invoque a
operao (J ava)
44
Ao definir uma operao pergunte para si mesmo:
A operao est fazendo apenas uma coisa?
Lembre-se que operaes menores so mais reutilizveis
As responsabilidades esto com as classes corretas?
Um bom ajuste aumenta a probabilidade para subclasses futuras
utilizarem novamente os servio
45
Associao
Associao uma relao que descreve um conjunto de
vnculos entre elementos de modelo
Quando duas classes, ou mesmo uma classe consigo prpria,
apresenta interdependncia onde determinada instncia de
uma delas origina ou se associa a uma ou mais instncias da
outra, dizemos que elas apresentam uma associao
So desenhadas como linhas slidas entre pares de classes
O fim de uma associao onde se conecta uma classe
chamado de papel da associao; a maioria da informao
interessantes sobre uma associao anexada a seus papis
46
Tipos de associao
Associao unria
Quando h um relacionamento de uma classe para consigo prpria,
tambm conhecido coma associao reflexiva
Na associao unria so conectados ambos os fins mesma classe,
mas os dois fins so distintos
Localizao
geogrfica
1
*
47
Tipos de associao
Associao binria
Quando h duas classes envolvidas na associao de forma direta de
uma para a outra
Uma associao binria desenhada como um caminho slido que
conecta dois smbolos de classe, sendo que tal caminho pode consistir
em um ou mais segmentos conectados
Cliente Pedido
0..* 1
48
Tipos de associao
Associao n-ria
uma associao entre 3 ou mais classes, mas uma nica classe pode
aparecer mais de uma vez
Associaes ternrias ou superiores so mostradas como diamantes
conectados ao smbolo de classe atravs de linhas com um caminho do
diamante para cada classe participante
Um smbolo de classe de associao pode ser anexado ao diamante por
uma linha tracejada
Normalmente as linhas so desenhadas dos pontos no diamante ou o
ponto central de um lado o que indica uma associao n-ria que tem
atributos, operaes e associaes de e/ou. Uma associao entre
duas classes (associao binria) um caso particular de associao n-
ria
49
Funcionrio Projeto Quesito
Avaliao
* * *
Associao ternria
50
Papis em associaes
O fim de uma associao onde se conecta uma classe
chamado de papel da associao
A maioria dos detalhes interessantes sobre uma associao
tida em seus papis que, alm de um nome, podem apresentar
informaes de:
multiplicidade
ordenao
qualificador
agregao/composio
navegabilidade
generalizao
Classe A Classe B
papel-1 papel-2
nome da associao
associao derivada
51
Papis em associao
Classe A
Classe B
0..*
1
Possui
{ordenado}
Agregao
Restrio ou propriedade
Navegabilidade
Multiplicidade
Qualificador
Nome do papel
Classe D
Generalizao
Classe C
Composio
52
Nome da associao
A associao possui um nome prximo linha que representa a
associao, freqentemente atribudo como um verbo, muito
embora tambm possam ser utilizados substantivos
Quando um diagrama de classe construdo, deve refletir o
sistema que est sendo modelado, o que significa que os
nomes de associao necessitam pertencem ao domnio do
problema tal como ocorre com o nome das classes
possvel utilizar uma associao navegvel ao adicionar uma
seta ao final da associao
A seta indica que a associao somente pode ser utilizada na
direo indicada, entretanto, associaes podem ter dois
nomes, um para cada direo
A direo do nome mostrada atravs de um tringulo slido
pequeno precedendo ou sucedendo o nome da associao,
dependendo da direo, de forma que possa ser lida a
associao de uma classe a outra
Por exemplo, um cliente faz pedido (faz 4)
53
Nome e direo da associao
Cliente Pedido
Faz 4
0..* 1
54
Multiplicidade
Um dos aspectos chaves em associaes a cardinalidade de
uma associao, chamada na UML de multiplicidade
Especifica, por exemplo, em quantas companhias uma pessoa
pode trabalhar, quantos dependentes pode ter um indivduo
etc,
corresponde noo de obrigatrio, opcional, um-para-muitos,
muitos-para-muitos similar ao enfoque de
entidade/relacionamento
A cardinalidade especificada para cada extremidade na
associao
Cliente Pedido
Faz 4
0..* 1
55
Multiplicidade
Classe
1
Classe
*
Classe
0..1
Classe
m..n
exatamente um
muitos (zero ou mais)
opcional (zero ou um)
seqncia especificada
56
Multiplicidade
mostrada como uma seqncia de intervalos inteiros
separada por vrgula onde um intervalo representa um alcance
de inteiros ou mesmo um intervalo infinito no formato limite
inferior/limite superior
Um asterisco (*) pode ser usado para o limite superior
denotando valor ilimitado
Se a especificao de multiplicidade inclui somente asterisco,
denota o alcance de inteiro ilimitado, o que equivalente a *..*
ou 0..*
Intervalos devem vir preferencialmente ordenados: 1..3,7,10
prefervel a 7,10,1.. 3
dois intervalos contguos devem ser combinados em um nico
intervalo: 0..1 prefervel a 0,1
57
Multiplicidade - Exemplo
Multiplicidade Significado
0.. 1 zero ou um
1 somente 1
0..* maior ou igual a zero
* maior ou igual a zero
1..* maior ou igual a 1
1..15 de 1 a 15, inclusive
1..2,7..15,19,23..* de 1 a 2, de 7 a 15, 19 ou acima de 23, inclusive
58
Ordenao
Se a multiplicidade maior do que um, o conjunto de
elementos relacionados pode ser ordenado ou no ordenado
(este o padro e no necessita ser mostrado explicitamente)
Os elementos so ordenados em uma lista, cuja especificao
genrica inclui todos os tipos de ordenao podendo ser
especificado por uma restrio de palavra-chave: {ordenado}
Cliente Pedido
Faz 4
0..* 1
{ordenado}
59
Qualificador de associao
Um qualificador um atributo de associao ou estrutura de
atributos de atributos cujos valores particionam um conjunto de
objetos relacionados a um objeto por uma associao
mostrado como um retngulo pequeno, menor do que o
retngulo fixo de classe, anexado ao fim do caminho de
associao antes do smbolo da classe qual se conecta
Classe A Classe B
nome da associao
qualificador
papel-1 papel-2
60
Pedido
Pedido,
item
Produto
0..1
Exemplo de associao qualificada
61
Agregao
uma forma especial de associao utilizada para mostrar que
um tipo de objeto composto, pelo menos em parte, de outro
numa relao de todo/parte
Por exemplo, um pedido composto por itens de pedido
Indica que a vida das partes dependente da vida do todo
Os objetos partes no podem ser criados a menos que o objeto
todo ao qual esto agregados seja criado
Objetos partes no podem ser destrudos por qualquer objeto
diferente do objeto de agregao que o criou em primeiro
lugar, condio esta no verdadeira para objetos que emanam
de um relacionamento de associao regular
62
Agregao
Pedido
Pedido, item
Tem 4
1..* 1
Todo Parte
63
Agregao de composio
Composio uma forma de agregao com uma forte
propriedade e vida coincidente da parte com o todo
Um diamante vazio anexado ao fim do caminho e prximo
classe que representa o todo no relacionamento para indicar
agregao regular ou por-referncia
Se o diamante est cheio, significa uma forma forte de
agregao conhecida como composio ou relacionamento por-
valor
Todo
Parte
64
Agregao de composio
Na composio, ou agregao por-valor (diamante cheio), o
objeto todo declara uma instncia real do objeto parte dentro
do seu prprio corpo tornando o objeto parte fisicamente nele
contido
semanticamente equivalente a um atributo, mas pode ser
visualmente mais atraente quando a parte tem sua prpria
estrutura interna
O fim de um objeto todo na agregao acarreta o fim de seus
partes
Indivduo,
endereo
Tem 4
0..1 1
Todo Parte
Indivduo,
complemento de
endereo
65
Navegabilidade
Uma instncia de uma classe pode navegar a instncias de
outra classe e vice-versa
Navegabilidade percebida freqentemente por objetos que
mantm referncias de algum tipo entre objetos associados
Uma seta pode ser anexada ao fim do caminho para indicar
que aquela navegao suportada para a classe anexada
seta, assim como podem ser anexadas setas para zero, um, ou
dois fins de caminho
Em princpio, poderiam ser mostradas setas sempre que a
navegao for suportada em uma determinada direo, mas na
prtica s vezes conveniente suprimir algumas das setas e s
exibir situaes excepcionais
66
Navegabilidade
Pedido Cliente
1 *
{ordenado}
Fonte Alvo
sentido da navegao
67
Navegabilidade na agregao
Todo
Parte 1 Parte 2
1 1
0..* 0..*
Navegabilidade
bidirecional em
agregao de
composio
Navegabilidade
unidirecional em
agregao regular
68
Generalizao
Uma superclasse criada para representar a essncia da idia
sobre subclasses expressando os modos diferentes que
determinadas essncias podem ser percebidas
A generalizao um relacionamento de taxinomia entre um
elemento mais geral e um elemento mais especfico que
completamente consistente com o primeiro elemento somando-
o informao adicional especializada
usada para classes, pacotes, caso de usos e outros elementos
Indica que uma classe mais geral, a superclasse, tem atributos,
operaes e associaes comuns que so compartilhados por
classes mais especializadas, as subclasses
Por sua vez, as subclasses agregam atributos e operaes
particulares ao elemento de especializao que se referem: um
objeto da subclasse um tipo-de objeto da superclasse
Por exemplo, uma superclasse [Veculo Terrestre] define
atributos, operaes e associaes comuns s subclasses
[Automvel] e [Caminho]
69
Generalizao
Automvel
Caminho
Veculo terrestre
tipo-de tipo-de
70
Generalizao
mostrada como uma linha slida do elemento mais especfico,
uma subclasse, para o elemento mais geral, uma superclasse,
com um tringulo vazio ao trmino do caminho que satisfaz o
elemento mais geral
Um grupo de caminhos de generalizao para uma
determinada superclasse pode ser mostrado como uma rvore
com um segmento compartilhado, inclusive tringulo, para a
superclasse, ramificando-se em caminhos mltiplos a cada
subclasse
Se vrios arcos de generalizao compartilham a mesma
etiqueta, eles representam a mesma dimenso de
generalizao de superclasse; etiquetas diferentes definem
dimenses independentes de generalizao
71
Generalizao
Indivduo Organizao
Pessoa
+cdigoDaPessoa: long
+nomeDaPessoa: texto
+incluirPessoa(cdigoDaPessoa)
+destruirPessoa(cdigoDaPessoa)
{disjuno}
Superclasse
Subclasses
72
Generalizao
Podem ser usadas restries predefinidas para indicar
condies semnticas entre subclasses
Uma lista de palavras-chaves separada por vrgula colocada
em chaves prxima ao tringulo compartilhado, no caso de
vrios caminhos compartilharem um nico tringulo, ou ento
prxima a uma linha pontilhada que cruza as linhas de
generalizao envolvidas
As palavras-chaves seguintes so predefinidas na UML e podem
ser usadas:
73
Restries para generalizao/especificao
A
B
B
C
...
N
{completo}: N conhecido
{incompleto}: N no
conhecido
{disjuno}: B, C, ..., N so
mutuamente exclusivos
{sobreposio}: B, C, ..., N
podem ocorrer simultaneamente
{Restrio}
74
Restries para generalizao/especificao
A
B
A1
{completo}
A
B
A1
{incompleto}
Incorreto Adequado
75
Exemplo de generalizao/especificao com restrio
Produto
Leite Chocolate Biscoito
{disjuno, incompleto}
76
Produto
B
{disjuno, incompleto}
Produto
Leite
B
Chocolate Biscoito
{disjuno, incompleto}
Leite
Desnatado
Chocolate
Crocante
Biscoito
Salgado
Molho de pimenta
Leite Chocolate Biscoito Molho
Leite
Desnatado
Chocolate
Crocante
Biscoito
Salgado
Molho de
pimenta
Nova subclasse
77
Herana
Mecanismo de reutilizao de atributos e operaes pelo qual
elementos mais especficos incorporam estrutura e
comportamento de elementos mais gerais relacionados por
comportamento
Pode-se organizar tipos similares de classes de objetos em
categorias chamadas hierarquia de classes, onde a classe de
menor nvel, que uma especializao ou extenso de outra
classe, pode utilizar servios das classes superiores na
hierarquia
Permite a uma subclasse compartilhar atributos e operaes
definidas em sua superclasse
78
Redefinio de atributos e operaes na herana
Veculo terrestre
partida( )
parada( )
{disjuno}
Superclasse
Automvel
partida( )
parada( )
Caminho
partida( )
parada( )
Subclasses
Operaes
redefinidas pela
subclasse
79
Herana mltipla
Veculo
Veculo
terrestre
Veculo
aqutico
{sobreposio, incompleto}
Veculo
anfbio
80
Herana mltipla
Veculo
Veculo
terrestre
Veculo
aqutico
{sobreposio, incompleto}
Veculo
anfbio
Superclasse
abstrata
Superclasse composta
abstrata na viso da
subclasse [Veculo
anfbio]
Subclasses
concretas
Ex.: Jet ski Ex.: Porsche
Ex.: Tanque urutu
81
Agregao versus generalizao
Pedido
Pedido,
item
Veculo
terrestre
Autom-
vel
Agregao:
Pedido, item
parte-de(ou
atributo-de)
Pedido
Generalizao:
Automvel
tipo deVeculo
Terrestre
82
Restrio
Uma restrio um relacionamento semntico entre elementos
de modelo que especifica condies e proposies que devem
ser mantidas como verdadeiras, caso contrrio o sistema
descrito pelo modelo nulo, com conseqncias que esto fora
do escopo da UML
A restrio ou em associaes, j predefinida; outras
restries podem ser definidas normalmente pelos usurios em
palavras cuja sintaxe, consistncia e interpretao passam a
ser de responsabilidade da ferramenta de modelagem em uso
Grupo de
cidados
idosos
Pessoa
{pessoa.idade > 60}
0..1 0..*
83
Restrio - Exemplos
Conta
Corrente
Indivduo
0..1
0..*
{Ou}
Organizao 0..1
0..*
Pertence 4
Pertence 4
Cliente Pedido
Faz 4
0..* 1
{Se nvel de crdito for insuficiente ento
condio de pagamento deve ser vista}
84
Restrio - Exemplos
Funcionrio Projeto
3Gerente
de projeto
* *
{subconjunto}
* 1
Participante4
85
Classe de associao
Uma classe de associao um elemento de modelagem que
tem associao e propriedades de classe
Pode ser vista tanto como uma associao que tem
propriedades de classe como uma classe que tem propriedades
de associao
Embora seja desenhada como uma associao e uma classe,
apenas um nico elemento do modelo e tem s um nome
Classe B
Nome da classe de associao
atributo
atributo: tipo do dado
atributo: tipo do dado = valor inicial
...
operao
operao (listadeargumentos): tipo deresultado
...
Classe A
86
Classe de associao
Uma classe de associao mostrada como um smbolo de
classe anexado por uma linha tracejada a um caminho de
associao
Se uma classe de associao tem s atributos mas nenhuma
operao ou outras associaes, o nome pode ser exibido no
caminho de associao e pode ser omitido do smbolo de classe
de associao para enfatizar sua natureza de associao
Se tem operaes e outras associaes, o nome pode ser
omitido do caminho e pode ser colocado no retngulo de classe
para enfatizar sua natureza de classe
87
Classe A Classe B
Fornecedor Cliente
Dependncia
Indica a ocorrncia de um relacionamento semntico entre dois
ou mais elementos do modelo de forma que uma classe cliente
dependente de alguns servios da classe fornecedora, mas
no tem uma dependncia estrutural interna com o fornecedor
Uma mudana em um elemento (elemento independente) pode
afetar outro elemento da dependncia (elemento dependente)
mostrada como uma seta tracejada de um elemento de
modelo para outro, do fornecedor para o cliente (classe
apontada pela seta)
88
Interface
Uma interface um esteretipo de classe que designa a face
externa de uma classe ou um pacote e consiste de um conjunto
de operaes e suas assinaturas juntamente com sua
respectiva semntica dinmica
descreve os padres legais de interao entre dois objetos
A UML prov um cone de esteretipo para mostrar interfaces
em forma compacta.
O fornecedor de uma interface (i.e., classe, pacote ou sistema
inteiro que conforma o papel de "fornecedor") mostra um
smbolo slido de pirulito etiquetado pelo nome da interface
O cliente de uma interface mostra uma seta de dependncia
tracejada ao crculo de interface
89
Interface
Classe de
implementao
Classe cliente
dependncia
90
Interface
Classe A Classe B
Classe C
armazenvel
executvel
executvel
executar( ) {abstrato}
interface
Executvel
{abstrato}
carregar( ) {abstrato}
salvar( ) {abstrato}
interface
Armazenvel
{abstrato}
Classe A implementa a interface executvel
e armazenvel
Classe C implementa a interface executvel
Classe B usa a interface executvel e
armazenvel de A e executvel de C
Fornecedor Cliente
Fornecedor
91
Interface - Exemplos
Combo box
Campo Password
92
Real Audio Player
Interface - Exemplos
93
Normalizao
Processo formal que examina os atributos de uma classe com o
intuito de minimizar redundncias de dados em objetos
especficos
Causa a simplificao dos atributos dentro da respectiva classe
colaborando para a integridade e estabilidade do modelo
94
Exemplo de criao de classes normalizadas
Cdigodoproduto Quantidade Descriodoproduto
Nmero do pedido: ____________
Cdigo do cliente: _____________
Nome do cliente: ___________________
Data do pedido: ___/ ___/ ___
Pedido
Pedido
nmeroDoPedido
cdigoDoCliente
nomeDoCliente
dataDoPedido
cdigoDoProduto[15]
quantidadeDoProduto[15]
descrioDoProduto[15]
Classe pedido preliminar
95
1a forma normal
DEFINIO:
a normalizao da classe de forma que de seus atributos com o
identificador seja unvoca, isto , para cada identificador h a ocorrncia
de um e somente um atributo de cada tipo
Resultado da 1a forma normal:
Pedido
nmeroDoPedido
cdigoDoCliente
nomeDoCliente
dataDoPedido
Pedido, item
cdigoDoProduto
quantidadeDoProduto
descrioDoProduto
1 1..*
96
1a forma normal como agregao de composio
Pedido
nmeroDoPedido
cdigoDoCliente
nomeDoCliente
dataDoPedido
cdigoDoProduto[15]
quantidadeDoProduto[15]
descrioDoProduto[15]
Pedido
nmeroDoPedido
cdigoDoCliente
nomeDoCliente
dataDoPedido
Pedido, item
cdigoDoProduto
quantidadeDoProduto
descrioDoProduto
1
1..15
97
3a forma normal
DEFINIO:
a normalizao da estrutura de atributos de forma que no
contenha atributos associados que apresentem DEPENDNCIA
TRANSITIVA com o identificador do objeto, ou seja, no
possuam elemento intermedirio de ligao entre os dois
objetos
Pedido
nmeroDoPedido
dataDoPedido
Pedido, item
quantidadeDoProduto
1 1..*
Produto
cdigoDoProduto
descrioDoProduto
1
*
Cliente
cdigoDoCliente
nomeDoCliente
1
*
98
Passos da normalizao
A primeira forma normal obtida atravs dos seguintes passos:
Verificar se h ocorrncias repetitivas de atributos dentro da classe [A] analisada
Destacar os atributos repetitivos e suas respectivas operaes, criando uma nova
classe [B] que absorver esses itens
Estabelecer a associao de agregao regular e multiplicidade 1-* entre as
classes [A] e [B]
OBS: Caso o modelo de objetos esteja sendo implementado em um banco de
objetos, no h, rigorosamente, a necessidade de se promover a primeira forma
normal
A terceira forma normal deve suceder a segunda forma normal sendo
atingida atravs dos seguintes passos:
Verificar se a classe [C] analisada possui atributos que so dependentes de
outros atributos nela contidos. Essa relao de dependncia pode ser atravs de
atributo prprio ou atributo de referncia que no estejam presentes no
identificador da classe [C]
Destacar os atributos com dependncia transitiva e suas respectivas operaes,
incorporando-os na classe [D]
Eliminar os atributos obtidos por clculo a partir de outros atributos da classe [C]
99
Ajustando a natureza das classes
Pedido
nmeroDoPedido
dataDoPedido
Pedido, item
quantidadeDoProduto
1..*
Produto
cdigoDoProduto
descrioDoProduto
1
*
Cliente
1
*
Pessoa
nomeDaParte
1
0..1
Indivduo Organizao
{disjuno}
cdigoDoCliente
100
4a forma normal
DEFINIO:
a normalizao da estrutura de atributos de forma que no
contenha DEPENDNCIA MULTIVALORADA entre os atributos
componentes do identificador
DEPENDNCIA MULTIVALORADA:
Dados trs atributos A, B e C define-se dependncia
multivalorada quando A apresenta vrios B e A apresenta
vrios C, entretanto, B e C so independentes entre si
101
4a forma normal
Suponha a seguinte formao ternria de associaes
(deve haver pelo menos 3 classes envolvidas para a 4
a
FN):
A B C
ABC
Entretanto:
A e B so relacionadas
A e C so relacionadas
B e C so independentes
* *
*
102
Resultado da 4a forma normal
Portanto:
Aplica-se a 4
a
forma normal para transformar uma
associao ternria em duas associaes binrias,
eliminando-se dependncias multivaloradas,
resultando em:
A B C
* * * *
AB AC
103
Curso Professor
Livro
texto
CPL
* *
*
Exemplo
104
4a forma normal - Exemplo
Curso Professor Livro texto
Fsica Hertz, Heinrich Rudolf Electromagneticwaves
Fsica Maxwell, James Clerk Electromagneticwaves
Fsica Fizeau, Armand TheSpeedof light
Fsica Foucault, Jean BernardLon TheSpeedof light
Fsica Doppler, ChristianJohann Thecolor effect of doublestars
Matemtica Babbage, Charles Economyof Machinesand
Manufactures
Matemtica Boole, George AnInvestigation of theLawsof
Thought
Antes...
Depois...
Curso, Professor
Curso Professor
Fsica Hertz, Heinrich Rudolf
Fsica Maxwell, James Clerk
Fsica Fizeau, Armand
Fsica Foucault, Jean BernardLon
Fsica Doppler, ChristianJohann
Matemtica Babbage, Charles
Matemtica Boole, George
Curso, Livro texto
Curso Livro texto
Fsica Electromagneticw aves
Fsica TheSpeedof light
Fsica Thecolor effect of doublestars
Matemtica Economyof MachinesandManufactures
Matemtica AnInvestigation of theLawsof Thought
105
Diagrama de
Caso de Uso
106
Diagrama de caso de uso
Fornecem um modo de descrever a viso externa do sistema e
suas interaes com o mundo exterior
Representa uma viso de alto nvel da funcionalidade
intencional de um sistema mediante o recebimento de um tipo
de requisio de usurio
um grfico de atores, um conjunto de casos de uso includo
por um limite de domnio, comunicao, participao e
associaes entre atores, assim como generalizaes entre
casos de uso. H quatro elementos bsicos em um diagrama de
caso de uso:
ator
caso de uso
interao
sistema
107
Diagrama de caso de uso
Caso de uso
Ator
interao
sistema
108
Caso de uso
Caso de uso uma interao tpica entre um usurio e um
sistema
um modo especfico de usar um sistema a partir de um ponto
de vista segmentado de sua funcionalidade
Representa uma seqncia completa de cenrios de interao
mostrando como eventos externos iniciais so respondidos no
caso
Um cenrio uma narrativa de uma parte do comportamento global do
sistema, sendo que uma coleo completa de cenrios pode ser usada
para especificar completamente um sistema
109
Diagrama de caso de uso
Consulta de
saldo
Cliente
Solicitao de
extrato
Saque
Caixa eletrnico
110
Ator
O mundo externo representado por atores
que desempenham papis
Um ator um agente que interage com o
sistema, um tipo de usurio ou categoria com
papel definido, podendo incluir usurios
humanos, mquinas, dispositivos ou outros
sistemas
Atores tpicos so cliente, usurio, gerente,
impressora, dispositivo de comunicao de
rede etc
A nfase em papis importante: um ator
pode representar muitos papis e um papel
pode ser representado por muitos atores
Atores levam a cabo casos de uso mas no
precisam ser seres humanos (ainda que sejam
representados como figuras de stick man
dentro de um diagrama de caso de uso)
Ator
(forma destick man)
111
Interao em caso de uso
As seguintes interaes so importantes dentro de um
diagrama de caso de uso:
Comunicao
Um ator comunica-se com o caso de uso, assim, cada participao sua
mostrada conectando-se o smbolo de ator ao smbolo de caso de uso por
um caminho slido
Extenso
Um relacionamento de um caso de uso para outro, especificando como o
comportamento definido para o primeiro caso pode ser inserido no
comportamento definido para o segundo
Uso
Um relacionamento de uso entre casos mostrado por uma seta de
generalizao do caso de uso que faz o uso ao caso de uso que usado
112
Relacionamentos em caso de uso
Requisitar
catlogo do pedido
estende
Pedir produto
Colocar pedido
usa
Cliente
113
Desenvolvimento de casos de uso
Sugere-se os seguintes passos para se descrever casos de uso
de sistemas:
identifique o limite de sistema em termos de seus agentes externos
(atores)
identifique cada ator pelo papel que representa na interao como
sistema, por exemplo, cliente, gerente, caixa eletrnico
para cada ator, identifique os modos diferentes e fundamentais nos
quais utiliza o sistema
para cada caso de uso, descreva a interao tpica (cenrio) do ator com
o sistema
114
Associado
Marcao de
consulta ou
exames
Consulta mdica
Encaminhamento
de associado para
exames
Coleta de
material para
exame
Diagnose
Marcao de
cirurgia
Internao
Cirurgia
Tratamento
domiciliar
(home care)
Credenciado
Exemplo de casos de uso
115
Nr
.
Caso de uso Quem inicia a
ao
Descrio do caso de uso
1 Marcao de
consulta ou exames
Associado O associado entra em contato com o
credenciado para marcar consultas ou
exames
2 Consulta mdica Associado O associado encaminha-se ao local da
consulta e atendido pelo credenciado
3 Encaminhamento
de associado para
exames
Credenciado O credenciado encaminha o associado para
a realizao de exames laboratoriais
4 Coleta de material
para exame
Associado
O associado encaminha-se ao credenciado para
realizar coleta de material para exame laboratorial
5 Diagnose Credenciado O credenciado entrega o resultado do
exame laboratorial para o associado
6 Marcao de
cirurgia
Credenciado
Aps a diagnose, sendo necessria uma interveno
cirrgica, o credenciado agenda cirurgia
7 I nternao Credenciado O credenciado faz internao do associado
mediante a apresentao da ordem de
internao ou com o pedido do mdido
mediante cheque de cauo, devolvido
aps a entrega da ordem de internao
8
Cirurgia Credenciado Credenciado efetua cirurgia de associado,
faz acompanhamento ps-operatrio de
recuperao e emite alta
9 Tratamento
domiciliar (homecare)
Credenciado
O credenciado faz o atendimento e tratamento do
associado em sua residncia, quando no h a
necessidade de internao hospitalar
Exemplo de casos de uso (cont.)
116
Gerenciamento de requisitos
As exigncias de um sistema nem sempre so bvias e fceis
de se encontrar
Gerenciamento de requisitos uma forma sistemtica de:
Encontrar
Documentar
Organizar
Controlar as exigncias de mudana em um sistema
Proposta do RUP:
Analisar o problema
Focar nas necessidades do cliente (stakeholders)
Controlar o escopo do sistema
Refinar as exigncias do sistema
Gerenciar das exigncias de mudanas
Preparar casos de uso
117
Gerenciamento de requisitos
Antes de construir um sistema, importante capturar os
requisitos
O RUP emprega casos de uso, como base para o
desenvolvimento
O caso de uso parte integrante dos ciclos no desenvolvimento
iterativo
Requerimentos Use-case model ponto de vista do usurio
Modelagem do negcio
Business Use Case
representa o modelo
do negcio
Anlise e desenho Use-case realizations iterao
Implementao Design model especificao das implementaes
Teste
Test cases identifica casos para testes e
os procedimentos de testes
Gerenciamento do projeto
Use Case iteratividade
118
Diagramas de
interao
Diagrama de seqncia
Diagrama de colocao
119
Diagrama de interao
Diagrama de interao um termo genrico que se aplica a
vrios tipos de diagramas que enfatizam interaes de objeto
Uma interao uma especificao comportamental que inclui
uma seqncia de trocas de mensagem entre um conjunto de
objetos dentro de um contexto para realizar um propsito
especfico, tal como o implementao de uma operao
Diagrama de interao tem aplicabilidade para cumprir com
exigncias de seqncia onde cada linha especfica em um caso
de uso chamada cenrio
Caso de uso
objeto objeto
mensagem
evento de
entrada
(estmulo)
evento de
sada
(resposta)
Tempo
Ator Ator
120
Diagrama de interao
Diagrama de interao deve ser usado quando se deseja
visualizar o comportamento de vrios objetos dentro de um
nico caso de uso, a partir das mensagens que so passadas
entre eles
Diagrama de interao apresentado em duas formas na UML:
Diagrama de seqncia
Diagrama de colaborao
121
Diagrama de seqncia
Dentro de um diagrama de seqncia, um objeto mostrado
como um retngulo ao topo de uma linha vertical tracejada
projetada para baixo
Essa linha vertical chamada de linha de vida do objeto e
representa, tal como sugerido pelo prprio nome, o ciclo de
vida de um objeto durante uma interao
Cada mensagem representada por uma linha com seta
dirigida horizontalmente entre as linhas de vida de dois objetos
A ordem na qual essas mensagens acontecem (fluxo de tempo)
mostrada de maneira top-down
A menos que especificamente anotado, s a seqncia de
mensagens mostrada, no o tempo exato
A UML permite somar anotaes textuais a diagramas de
seqncia quando o tempo importante
122
Diagrama de seqncia
um objeto
um novo
objeto
criar
mensagem
autodelegao
retornar
excluir
tempo
(top-down)
condio de
guarda
mensagem
sncrona
smbolo de
excluso
ativao
linha de vida
[se novo]
objeto
123
Diagrama de seqncia
nome do ator:
classe do ator
objeto 1:
nome da
classe
objeto 2 objeto 3
:nome da
classe
texto
de
script
1. evento
2. operao
4. operao
(lista de
parmetros)
3. operao
(lista de
parmetros)
5. operao
(lista de
parmetros)
124
Diagrama de seqncia
O diagrama de seqncia tem duas dimenses: a dimenso
vertical representa o tempo e a dimenso horizontal representa
objetos diferentes
O tempo procede de cima para baixo na pgina, sendo que no
h qualquer significado ao ordenamento horizontal dos objetos
Anotaes textuais ao longo da extremidade esquerda do
diagrama so opcionais e so chamadas script
Cada declarao nos textos de script explica uma ou mais
mensagens que so passadas no diagrama, podendo
corresponder diretamente ao cenrio real que est sendo
modelado pelo diagrama de seqncia
125
Linha de vida do objeto
Um objeto mostrado como uma linha pontilhada vertical
chamada linha de vida do objeto, que representa sua existncia
em um momento particular
Se o objeto criado ou eliminado durante o perodo de tempo
mostrado no diagrama, ento sua linha de vida comea ou
termina em um ponto designado; caso contrrio ocorre de
maneira top-down
Cada linha de vida representa um objeto distinto, podendo
haver linhas de vida mltiplas para objetos diferentes dos
mesmos tipos ou de tipos diferentes
126
Diagrama de seqncia
janela de
entrada de
pedido
um pedido
um item de
pedido
um item de
estoque
preparar ( )
preparar ( )
verificar ( )
[verificao =
verdadeiro]
remover ( )
uma
entrega de
item
[verificao =
verdadeiro]
criar ( )
objeto
mensagem
condio de guarda
autodelegao
criao
linha de vida
127
Mensagem
Objetos necessitam comunicar-se entre si, e isto ocorre atravs
da passagem de mensagens
Objetos remetentes enviam mensagens para objetos
destinatrios, pedindo processamento, comunicando um evento
ou qualquer outra comunicao que se tornar necessria no
modelo para cumprir determinadas responsabilidades
Este o nico meio para se obter informao de um objeto,
desde que seus dados no sejam diretamente acessveis: uma
comunicao entre objetos carrega uma expectativa de ao a
ser executada
Mensagem mostrada como uma seta slida horizontal da
linha da vida de um objeto para a linha da vida de outro objeto,
etiquetada com o nome da mensagem (operao ou sinal) e
seus valores de argumento. No caso de uma mensagem de um
objeto para si mesmo, a seta pode comear e terminar no
mesmo smbolo de objeto (autodelegao)
128
Mensagem
um item de
pedido
um item de
estoque
verificar ( )
129
Tipos de mensagem
Ponta de flecha slida preenchida
Chamada de procedimento ou outro fluxo aninhado de controle. A
seqncia aninhada inteira completada antes das retomadas de
seqncia exteriores. Pode ser usada com chamadas de procedimento
comuns e tambm com objetos concorrentemente ativos quando um
deles envia um sinal e espera pela concluso de uma seqncia
aninhada de comportamento
Ponta de flecha fina
Fluxo de controle plano. Cada seta mostra a progresso em seqncia
ao prximo passo. Normalmente todas as mensagens so assncronas
Meia ponta de flecha fina
Fluxo assncrono de controle. Usado em vez da ponta da flecha fina para
mostrar explicitamente uma mensagem assncrona entre dois objetos em
uma seqncia procedural
Outras variaes
Podem ser mostrados outros tipos de controle, como empacado ou
pausa, mas estes so tratados como extenses UML
130
Mensagem assncrona
uma
transao
uma
transao
primeira
transao
verificao
segunda
transao
verificao
novo
novo
novo
novo
ok
ok
tudo
feito?
tudo
feito?
ativao
mensagem
assncrona
autodelegao
processamento
suprimido
objeto
destrudo
131
Tipos de mensagem
Mensagem de intervalo
Uma mensagem de intervalo indica que o remetente esperar pelo
destinatrio estar pronto para a mensagem at um perodo fixo de
tempo antes de abortar o processo de transmisso de mensagem e
continuar com seu processo
Mensagem emperrada
Uma mensagem emperrada significa que se o destinatrio da mensagem
no estiver imediatamente pronto para aceitar a mensagem, o
remetente aborta a mensagem e continua
132
Diagrama de seqncia com objetos concorrentes
um
funcionrio
um telefone um cliente
retira fone do gancho
tom de discagem
a
b
{b - a < 1 segundo}
disca o nmero
c
d
d
{c - b < 10 segundos}
{d - d < 5 segundos}
chamada sendo roteada
pela rede
chamando chamando
atende chamada voz do cliente
133
Ativao
a execuo de uma ao
Uma ativao mostra o perodo de tempo no qual um objeto
est executando diretamente uma ao ou atravs de um
procedimento subordinado
exibida como um retngulo cujo topo alinhado com seu
tempo de iniciao e cuja parte inferior alinhada com seu
tempo de concluso
Em chamadas reflexivas para um objeto com uma ativao
existente, o segundo smbolo de ativao desenhado
ligeiramente para a direita do primeiro, de forma que eles
paream visualmente empilhados (podem ser aninhadas
chamadas reflexivas a uma profundidade arbitrria
134
Ativao
objeto 1 objeto 2 objeto 3
135
Condicionais em diagrama de seqncia
objeto 1 objeto 2 objeto 3
[X>0]
[X<=0]
136
Diagrama de colaborao
Uma colaborao um uma viso de um conjunto de
elementos de modelagem relacionados para um propsito
particular em apoio a interaes
Um diagrama de colaborao mostra uma interao organizada
em torno de objetos e seus vnculos formando uma base de
padres
Diagrama de seqncia e diagrama de colaborao expressam
informao semelhante mas mostram de modo diferente
nome do ator:
classe do ator
objeto 1: nome da
classe
objeto 3: nome da
classe
:nome da classe
1: evento
4: operao (lista de parmetros)
5: operao (lista de parmetros)
fluxo de objeto
objeto 2
3: operao (lista de parmetros)
2: operao
137
Diagrama de colaborao
Ao contrrio de um diagrama de seqncia, um diagrama de
colaborao mostra os relacionamentos entre os objetos, mas
no mostra o tempo como uma dimenso separada
A seqncia de tempo, conforme mencionamos, indicada
numerando-se as mensagens
Dentro de um diagrama de colaborao, os objetos so
mostrados como cones, e tal como no diagrama de seqncia,
setas indicam as mensagens enviadas dentro do caso de uso
nome do objeto: nome
da classe
:classe nome do objeto
1: mensagem simples ( )
1.1:mensagem de interao ( )
1.2:mensagem de [condio] ( )
nome do papel
nome do
papel
138
Colaborao
Um comportamento implementado por conjuntos de objetos
que trocam mensagens para realizar um propsito em um
interao global
Para entender os mecanismos usados em um desenho,
importante ver somente os objetos e as mensagens envolvidas
realizando um ou mais propsitos subjacentes
Tal construo chamada de colaborao, uma unidade de
modelagem que descreve um conjunto de interaes entre
tipos
139
Diagrama de colaborao
janela de entrada de
pedido
um pedido um item de pedido
1: preparar
um item de estoque um item de entrega
2: preparar
3: [verificao == verdadeiro] remover
4: atualizar pedido
140
Diagrama de
Estado
Estado
Evento
141
Mquina de estado
Para cada objeto, a ordem das operaes no tempo to
importante que pode-se formalizar a caracterizao do
comportamento de um objeto em termos de uma mquina de
estado finita equivalente
Um mquina de estado finita pode ser pensada como uma
caixa-preta que recebe um nmero finito de entradas
(estmulos) e est preparada para trat-las oferecendo
respostas
Estado
Estmulos
Respostas
142
Diagrama de estado
Um sistema reage com respostas a estmulos externos ou
temporais ocorridos como fatos concretos do mundo fsico
Uma desvantagem do diagrama de estado ter de definir todos
os possveis estados de um sistema
A UML prope o emprego do diagrama de estado de maneira
individualizada para cada classe, com o objetivo de tornar o
estudo simples o bastante para se ter um diagrama de estado
compreensvel
143
Diagrama de estado para a classe Pedido
Registrando pedido
Atendendo pedido
Analisando pedido
Colocando pedido
em pendncia
Aprovando pedido
Alterando pedido Cancelando pedido
Pedido enviado
Pedido para anlise
requisitado
Pedido no pode ser
atendido no
momento
Pedido j pode
ser atendido
Pedido para
aprovao
Alterao de pedido
solicitada
Cancelamento de
pedido solicitado
Pedido ser
cancelado
Pedido ser atendido
Pedido
cancelado
Pedido
atendido
144
Elementos do diagrama de estado
Um diagrama de estado um grfico bipartido de estados e
transies, conectados por reteno fsica e particionamento
Um (pseudo) estado inicial mostrado como um crculo slido
pequeno
Um (pseudo) estado final mostrado como um crculo que
cerca um crculo slido pequeno
Uma transio mostrada como uma seta slida de um estado
fonte para outro estado alvo, etiquetada por uma seqncia de
transio
145
Notaes do diagrama de estado
Nome-do-estado
entrar: ao-de-entrada
fazer: atividade-A
no evento 1: ao-1
...
sair: sada-da-ao
Estado inicial
Estado final
assinatura-de-evento [ condio de guarda ] /
expresso-de-ao ^clusula-de-envio
146
Transies
Transio simples representa relacionamento entre dois
estados indicando que um objeto no primeiro estado executar
certas aes especificadas e entrar no segundo estado quando
um evento relacionado ocorrer e forem satisfeitas condies
preespecificadas
Transio interna uma transio que permanece dentro de
um nico estado em lugar de uma transio que envolve dois
estados, representando uma ocorrncia de um evento que no
causa uma mudana de estado
Transio complexa equivalente a uma transio para seu
estado inicial ou de cada uma de suas sub-regies simultneas.
Indica uma transio que se aplica a cada um dos estados
dentro da regio de estado a qualquer profundidade sendo
herdado pelos estados aninhados
147
Transio complexa
A1 A4
B1 B2
148
Aninhamento de estado
Estados aninhados permitem subdivises de estados complexos
em estruturas mais simples removendo transies duplicadas
Subestado 1 Subestado 2
Subestado 3
superestado
149
Indicador de histria
A A1
A2
B
H
Retoma
Interrompe
150
Estado
Estado uma condio ou situao durante a vida de um
objeto no qual satisfaz alguma condio, executa alguma
atividade em resposta a um evento ou espera pela ocorrncia
de algum evento
Essa condio reflete o resultado das seqncias passadas de
eventos caracterizado pela reao do sistema
Como sugesto lingstica, o nome dos estados deve vir
sempre no gerndio, por exemplo: Cotando material,
Administrando compra, Preparando entrega, Montando
carga
151
Notao para estado
Nome-do-estado
Nome-do-estado
varivel 1
varivel n
Nome-do-estado
varivel 1
varivel n
evento 1/ ao
evento n/ ao
nome do
compartimento
compartimento de
varivel de estado
compartimento de
atividade interna
152
Subestado simultneo
um subestado que pode ocorrer simultaneamente com outro
subestado contido no mesmo estado composto
Uma expanso de um estado em subestados simultneos pode
ser mostrada ladrilhando-se a regio grfica por linhas
tracejadas
Cada subregio resultante um subestado simultneo, que ter
um nome opcional e conter um diagrama de estado aninhado
com estados seqenciais
Selecionando
itens de carga
Montando
carga
Itens
selecionado
s
Carga
montada
Preparando despacho de mercadoria
Emitindo
romaneio
Romaneioemitido
153
Subestado seqencial
um subestado que no pode ocorrer simultaneamente com
outros subestados simultneos contidos no mesmo estado
composto
Analisando
crdito do
associado
Analisando itens
de compra
Negociando
condio de
compra
Crdito OK
Itens analisados
Negcio
fechado
Fechamento de negcio
154
Evento
uma ocorrncia significativa com localizao no tempo e
espao que deve ser reconhecida e reagida pelo sistema em
estudo. Existem os seguintes tipos de eventos:
Recibo de um sinal explcito de um objeto para outro
Passagem de um perodo designado de tempo depois de um evento ou a
ocorrncia de um determinada data/hora
Atualizando
estoque
Despachando
mercadoria
Despacho
emitido
Estoque
atualizado
155
Diagrama de
atividade
156
Diagrama de ao
Trata-se de um caso especial de diagrama de estado no qual
tudo ou a maioria dos estados so estados de ao e a maioria
das transies ativada por concluso de aes nos estados
precedentes
til quando se pretende descrever um comportamento
paralelo ou mostrar como interagem comportamentos em
vrios casos de uso
semelhante aos fluxogramas
Seu uso natural modelar um passo na execuo de um
algoritmo
No devem apresentar transies internas ou de partida
baseadas em eventos explcitos
157
Diagrama de atividade
Atividade 1
Atividade i Atividade 3
Atividade n
[condio 1]
Atividade 2
[condio 2]
[condio de sincronizao]
158
Diagrama de atividade
Em uma mquina de estado geral pode-se pensar em dois tipos
de estados:
Estado de atividade
Um estado de atividade apenas um caso especial de um estado normal e
representa a execuo de uma atividade com um evento implcito na sua
terminao para ativar uma transio de sada
Estado de espera
Um estado de espera um estado normal, tal como encontrado em uma
mquina de estado de Harel. Representa um objeto que est esperando por
algum evento externo acontecer, alm do controle do objeto que possui o
estado. Uma atividade representa uma notao conveniente para a primeira
situao
159
Diagrama de atividade
Registrar
pedido
Avaliar item
em estoque
Autorizar
forma de
pagamento
Cancelar
pedido
[negado]
[ok]
[em estoque]
[para cada item do
pedido]
*
Aceitar
pedido
[item existente em
estoque e forma de
pagamento autorizada]
160
Decises
Uma deciso expressa quando so usadas condies de
guarda para indicar possveis transies diferentes que
dependem de condies booleanas do objeto possudo
Uma deciso pode ser mostrada etiquetando transies de
sada mltiplas de uma ao com condies de guarda
diferentes
Para convenincia, um esteretipo provido para uma deciso:
a forma de diamante tradicional, com uma ou mais setas
entrantes e com duas ou mais setas de partida, cada uma
etiquetada com uma condio de guarda distinta sem gatilho
de evento. Todos os possveis resultados deveriam aparecer em
uma das transies de partida
161
Decises
Calcular valor
total da demanda
Efetuar compra
Solicitar
aprovao
Valor < 1000
Valor >= 1000
162
Swinlanes
Atividade 3
Atividade n
Atividade 2
Atividade i
Atividade 1
Faixa 1 Faixa i Faixa n
163
Diagramas de
implementao
Diagrama de componente
Diagrama de implantao
164
Diagramas de interao
Mostram aspectos de implementao, inclusive da estrutura de
cdigo de fonte e de implementao de run-time.
Eles se apresentam de duas formas na UML:
Diagrama de componente
mostra a estrutura do prprio cdigo fonte
Diagrama de implantao
mostra a estrutura do sistema de run-time
165
Diagrama de componente
Um diagrama de componente mostra as organizaes e
dependncias entre componentes com o propsito de modelar
a viso de implementao dos mdulos de software
executveis com identidade e interface bem-definida de um
sistema e seus relacionamentos
Mostra as dependncias entre componentes de software,
inclusive componentes de cdigo fonte, componentes de cdigo
binrio e componentes executveis
componente 1 componente 2
166
Componente
Um tipo de componente representa um pedao de cdigo de
software (fonte, binrio ou executvel) e pode ser usado para
mostrar o compilador e dependncias de run-time
Uma instncia de componente representa uma unidade de
cdigo de run-time e pode ser usada para mostrar unidades de
cdigo que tm identidade em momento de execuo incluindo
sua localizao nos n
Um componente mostrado como um retngulo maior com
dois retngulos pequenos que protraem de seu lado
167
Exemplo de diagrama de componente
Curso.cls
Curso
oferecido
.cls
Aluno.cls
Professor.
cls
Curso.dll
Pessoa.dll
Curso
Usurio
Registro.
exe
Cobrana
.exe
Sistema de
cobrana
Programas
Bibliotecas
Classes
168
Diagrama de implantao
A UML fornece diagrama de implantao para mostrar a
organizao do hardware e a ligao do software aos
dispositivos fsicos
Diagrama de implantao mostra vrios dispositivos de
hardware e suas interfaces fsicas
O tipo do dispositivo de hardware determinado por seu
esteretipo, como processador, dispositivo, exibio, memria,
disco e assim por diante
N 1 N 2
nome do vnculo
169
Diagrama de implantao
Um diagrama de implantao um grfico de ns conectado
por associaes de comunicao
Na UML, um n um objeto fsico de run-time que representa
um recurso computacional com pelo menos memria ou
capacidade de processamento
Representa um recurso no real mundo que passvel de
distribuio e pode executar elementos dos modelos lgicos
Objetos e componentes de instncias computacionais de run-
time podem residir em instncias de n
Um n mostrado como uma figura que apresenta viso
tridimensional como um cubo
170
Diagrama de implantao
PC
1
PC
1
PC
*
Server
1
Fax
1
Impres-
sora
*
entrada de
pedido
compra
recebimento
171
Pentium
300 Mhz
Computador
de Joe:
Pentium 300 Mhz
Pentium 300 Mhz um tipo de n enquanto
computador deJoe uma instncia de tipo
Nome do n
172
Tipo de n suportando tipo de componente de run-time
RISC
suporta
UNIX
Transaction
Server
173
Componentes e ns
Curso.cls
Curso
oferecido
.cls
Aluno.cls
Professor.
cls
Curso.dll
Pessoa.dll
Registro.
exe
Cobrana
.exe
Computador de Joe: Pentium 300 Mhz

S-ar putea să vă placă și