Você está na página 1de 21

1

UML
UML
( (Unified Unified Modeling Modeling Language Language) )
Prof. Cristiano Roberto Cervi Prof. Cristiano Roberto Cervi
Universidade de Passo Fundo Universidade de Passo Fundo
Instituto de Cincias Exatas e Geocincias Instituto de Cincias Exatas e Geocincias
P P s em Desenvolvimento de Software s em Desenvolvimento de Software
2
UML UML
O problema
O grande problema do desenvolvimento de sistemas
utilizando a orientao a objetos nas
Fases de anlise de requisitos
Anlise de sistemas
Design
No existe uma nota No existe uma nota o padronizada e realmente eficaz o padronizada e realmente eficaz
que abranja qualquer tipo de aplica que abranja qualquer tipo de aplica o que se deseje o que se deseje
3
UML UML
O problema
Cada simbologia existente possui seus prprios
conceitos, grficos e terminologias, resultando numa
grande confuso
Especialmente para aqueles que querem utilizar a
orientao a objetos no s sabendo para que lado
aponta a seta de um relacionamento, mas sabendo
criar modelos de qualidade para ajud-los a construir
e manter sistemas cada vez mais eficazes
4
UML UML
Modelagem
Por que fazer a modelagem?
Construmos modelos para compreender melhor o sistema
que estamos desenvolvendo
O que um modelo?
Um modelo uma simplificao da realidade
So esquemas grficos que representam o sistema
5
UML UML
Modelagem
Como fazer a modelagem?
A escolha dos modelos a serem criados tem profunda
influncia sobre a maneira como um determinado problema
atacado e como uma soluo definida
Cada modelo poder ser expresso em diferentes nveis de
preciso
6
UML UML
Modelagem
Como fazer a modelagem?
Os melhores modelos esto relacionados realidade
Nenhum modelo nico suficiente
Deve-se usar um conjunto de modelos independentes
2
7
UML UML
Modelando com a UML
A UML o sucessor de um conjunto de mtodos de
anlise e projeto orientados a objetos
A UML um modelo de linguagem, no um mtodo
A UML uma linguagem-padro para a elaborao
da estrutura de projetos de software
8
UML UML
Modelando com a UML
Um mtodo pressupe um modelo de linguagem
e um processo
O modelo de linguagem a notao que o mtodo usa
para descrever o projeto
O processo so os passos que devem ser seguidos para
se construir o projeto
O modelo de linguagem corresponde ao ponto principal
da comunicao
Se uma pessoa quer conversar sobre o projeto, com
outra pessoa, atravs do modelo de linguagem que
elas se entendem
Nessa hora, o processo no utilizado
9
UML UML
Modelando com a UML
A UML define uma notao e um meta-modelo
A notao so todos os elementos de representao grfica
vistos no modelo (retngulos, setas, o texto, etc.)
a sintaxe do modelo de linguagem
Um meta-modelo um diagrama que define de maneira mais
rigorosa a notao
10
UML UML
Modelando com a UML
A UML pode ser empregada para
Visualizao
Especificao
Construo
Documentao de artefatos
Que faam uso de sistemas complexos de software
UML UML uma linguagem de modelagem e uma linguagem de modelagem e
no uma metodologia no uma metodologia
11
UML UML
Histria
A UML teve seu incio na dcada de 90 quando trs
metodologias foram unificadas, OMT OMT, Booch Booch e
OOSE OOSE
OMT (Object Modeling Technique)
James Rumbaugh
Booch
Grady Booch
OOSE (Object-Oriented Software Engineering)
Ivar Jacobson
12
UML UML
Histria
OMT
Tcnica de Modelagem de Objetos
um mtodo desenvolvido pela GE (General
Electric) onde James Rumbaugh trabalhava
O mtodo especialmente voltado para o teste dos
modelos, baseado nas especificaes da anlise de
requisitos do sistema
3
13
UML UML
Histria
Booch
Booch definiu a noo de que um sistema
analisado a partir de um nmero de vises, onde
cada viso descrita por um nmero de modelos e
diagramas
O Mtodo de Booch trazia uma simbologia
complexa de ser desenhada a mo
14
UML UML
Histria
OOSE/Objectory
Os mtodos OOSE e o Objectory foram desenvolvidos
baseados no mesmo ponto de vista formado por Ivar
Jacobson
O mtodo OOSE a viso de Jacobson de um mtodo
orientado a objetos
O Objectory usado para a construo de sistemas to
diversos quanto eles forem
Ambos os mtodos so baseados na utilizao de use
cases (casos de uso), que definem os requisitos iniciais
do sistema, vistos por um ator externo
15
UML UML
Histria
Cada um destes mtodos possui
Sua prpria notao
Seus prprios smbolos para representar modelos
orientado a objetos
Processos
Que atividades so desenvolvidas em diferentes partes
do desenvolvimento
Ferramentas
As ferramentas CASE (Computer Aided Software
Engineering) que suportam cada uma destas notaes e
processos
16
UML UML
Histria
Diante desta diversidade de conceitos, os trs amigos
decidiram criar uma linguagem de modelagem unificada
Disponibilizaram inmeras verses preliminares da UML
para a comunidade de desenvolvedores
As respostas incrementaram muitas novas idias que
melhoraram ainda mais a linguagem
Grady Booch Ivar Jacobson James Rumbaugh
17
UML UML
Histria (Evoluo)
De 2000 a 2003 foi produzida De 2000 a 2003 foi produzida
a UML 2.0 e a OMG a adotou a UML 2.0 e a OMG a adotou
como padro no in como padro no in cio de 2005 cio de 2005
Feedback Feedback
P P blico blico
Submisso Submisso OMG OMG jan/97 jan/97
Submisso Submisso OMG OMG set/97 set/97
Aprovado em out/97 Aprovado em out/97
95 95
96 96
18
UML UML
Introduo
A UML usada no desenvolvimento dos mais
diversos tipos de sistemas
Abrange sempre qualquer caracterstica de um
sistema em um de seus diagramas
aplicada em diferentes fases do desenvolvimento de
um sistema
Desde a especificao da anlise de requisitos at a
finalizao com a fase de testes
4
19
UML UML
Introduo
O objetivo da UML descrever qualquer tipo de
sistema
Em termos de diagramas orientado a objetos
Naturalmente, o uso mais comum para criar
modelos de sistemas de software
Mas a UML tambm usada para representar
sistemas mecnicos sem nenhum software
20
UML UML
Utilizao
Sistemas de Informao
Sistemas Tcnicos
Sistemas de Tempo Real Integrados
Sistemas Distribudos
21
UML UML
Utilizao
A UML
Uma linguagem
Uma notao
No tem uma regra para sua utilizao
Permite que o desenvolvedor/analista/gerente use os
diagramas como bem entender, dependendo do
sistema que pretende desenvolver
22
UML UML
Diagramas
O modo para descrever os vrios aspectos de
modelagem para a UML atravs da notao definida
pelos seus vrios tipos de diagramas
Um diagrama
Uma apresentao grfica de uma coleo de elementos de
modelo
Frequentemente mostrado como um grfico conectado de
arcos (relacionamentos) e vrtices (outros elementos do
modelo)
23
UML UML
Diagramas at a UML 1.4
1.Diagrama de casos de uso
2.Diagrama de atividades
3.Diagrama de classes
4.Diagrama de sequncia
5.Diagrama de colaborao
6.Diagrama de estados
7.Diagrama de objetos
8.Diagrama de componentes
9.Diagrama de implantao
24
UML UML
Diagramas da UML 2.0
1.Diagrama de casos de uso 1.Diagrama de casos de uso
2.Diagrama de atividades .Diagrama de atividades
3.Diagrama de classes 3.Diagrama de classes
4.Diagrama de 4.Diagrama de sequncia sequncia
5.Diagrama de estados 5.Diagrama de estados
6.Diagrama de comunicao (antigo Diagrama de colaborao)
7.Diagrama de objetos
8.Diagrama de componentes
9.Diagrama de implantao
10.Diagrama de pacotes 10.Diagrama de pacotes
11.Diagrama de estruturas compostas 11.Diagrama de estruturas compostas
12.Diagrama de temporiza 12.Diagrama de temporiza o o
13.Diagrama de viso geral de intera 13.Diagrama de viso geral de intera o o
5
25
UML UML
Diagramas
Para dar incio a construo de qualquer diagrama da
UML, primeiro deve-se conhecer a sua notao ou
seja
A forma de representao
Sua semntica
26
UML UML
Diagrama de casos de uso
o diagrama mais importante da construo de
software orientado a objetos
Os casos de uso so, talvez, o nico instrumento que
acompanha um software do seu incio at a sua
concluso
O limite de um caso de uso uma deciso pessoal e
s com experincia de sua utilizao que se aprende
a distinguir um caso de uso de outro
27
UML UML
Diagrama de casos de uso
Descreve o que um sistema deve fazer ou o que um
sistema j est fazendo
construdo atravs de um processo iterativo durante
discusses entre os desenvolvedores do sistema e os
usurios
As discusses conduzem a uma especificao de
requisitos sobre os quais, o sistema deve ser projetado
e desenvolvido
28
UML UML
Diagrama de casos de uso
Na modelagem de casos de uso, o sistema visto
como uma caixa-preta que fornece uma
funcionalidade atravs de atividades
O modo como o sistema implementa os casos de uso,
no relevante nesse ponto do trabalho, tornando o
caso de uso uma tcnica mais para a anlise do que
para o projeto
Uma das grandes vantagens a documentao da
anlise dos requisitos do sistema
29
UML UML
Diagrama de casos de uso
Um caso de uso deve ser muito bem detalhado, mas
sem ser longo demais para ser lido
A objetividade no deve sacrificar a compreenso e a
composio do detalhe
Em anlise OO, quando utiliza-se o conceito de
abstrao, divide-se um problema em partes e essas
partes so os casos de uso
Quando se aborda o detalhamento dos casos de uso tem-se a
anlise de suas tarefas, atividades ou aquilo que ele ir
desempenhar no mbito do sistema
30
UML UML
Diagrama de casos de uso
A extrao de um caso de uso pode ser feita ou por
observao ou por entrevista
A observao somente possvel em casos onde a atividade
repetitiva, realizadas por um operador ou por uma mquina
A entrevista somente possvel entre humanos e a forma
mais utilizada na extrao dos casos de uso de um sistema
6
31
UML UML
Diagrama de casos de uso
A aprovao de um caso de uso deve ser feita pelo
cliente que est contratando o servio
Antes de mostrar os casos de uso ao cliente, mostre
para um colega/gerente de projetos
Se ele compreender o que foi descrito sem questionamento, o
trabalho est bom
Se ele questionar alguma coisa, fique esperto, veja o que
pode ter sado errado e submeta a uma nova apreciao
Lembre que se fizer isso estar ganhando tempo ao
invs de perder
32
UML UML
Diagrama de casos de uso (princpios)
Decide e descreve os requisitos funcionais do sistema,
resultando em um acordo entre o usurio e o
desenvolvedor do sistema
Fornece uma descrio clara e consistente da
funcionalidade do sistema
O que o sistema faz
Serve de orientao para as prximas fases
Demonstra a interao do sistema com agentes
externos
33
UML UML
Diagrama de casos de uso (composio)
composto de quatro elementos bsicos
Ator
Caso de uso
Interao
Sistema
34
UML UML
Diagrama de casos de uso (visualizao)
Cadastrar Cadastrar
cliente cliente
Remover Remover
agncia agncia
Fechar conta Fechar conta
corrente corrente
Abrir conta Abrir conta
corrente corrente
Cadastrar Cadastrar
agncia agncia
Fechar conta Fechar conta
poupan poupan a a
Abrir conta Abrir conta
poupan poupan a a
Remover Remover
cliente cliente
35
UML UML
Diagrama de casos de uso (sistema)
Significa um sistema de software, um negcio ou uma
mquina
Como parte da modelagem, os limites do sistema
desenvolvido so definidos
A fase de definio dos limites e responsabilidades de
um sistema nem sempre um processo fcil, pois nem
sempre bvio quais tarefas so melhor
automatizadas pelo sistema e quais tarefas so melhor
tratadas manualmente ou por outros sistemas
36
UML UML
Diagrama de casos de uso (atores)
Um ator algum ou algo que interage com o sistema
quem ou o qu usa o sistema
A interao com o sistema significa que o ator envia
ou recebe mensagens para/do sistema, ou troca
informaes com o sistema
Um ator pode ser um departamento, um profissional,
uma mquina, etc.
7
37
UML UML
Diagrama de casos de uso (atores)
O ator se comunica com o sistema pelo envio e
recebimento de mensagens, de forma similar aos
mtodos usados na programao orientada a objetos
Para identificar atores, estabelece-se quais objetos
esto interessados no uso e interao com o sistema
A partir desta lista, possvel levantar a posio do
ator em relao ao sistema tentando identificar os
requisitos do ator e de quais casos de uso o ator
necessita
38
UML UML
Diagrama de casos de uso (atores)
Quando observa-se os usurios de um sistema, no
deve-se considerar somente os indivduos que esto
sentados na frente do computador
O usurio do sistema pode ser qualquer pessoa ou
coisa que interage direta ou indiretamente com o
sistema e usa os servios disponveis pelo sistema
39
UML UML
Diagrama de casos de uso (como encontrar atores)
Algumas perguntas podem ser feitas para auxiliar na
identificao dos atores
quem usa as funes principais do sistema?
quem necessita suporte do sistema para realizar suas tarefas
diariamente?
quem se responsabiliza pela manuteno, administrao e
conservao do funcionamento do sistema?
quais so os dispositivos de hardware necessrios ?
quem ou o qu se interessa pelos resultados produzidos pelo
sistema?
40
UML UML
Diagrama de casos de uso
Representa uma funcionalidade completa como
percebida por um ator
definido como um conjunto de seqncias de aes
de um sistema que rende um resultado observvel por
um ator
41
UML UML
Diagrama de casos de uso (como encontrar)
Para cada ator identificado se faz as seguintes
perguntas
quais funes o ator requisita do sistema ? e o qu o ator
necessita fazer ?
o ator necessita ler, criar, destruir, modificar ou armazenar
algum tipo de informao no sistema ?
o ator deve ser notificado sobre eventos realizados pelo
sistema ou o ator necessita notificar ao sistema quando algo
ocorre ?
pode o trabalho do ator ser simplificado ou ser feito com
melhor eficincia atravs de novas funes ?
o qu o sistema necessita de entrada e de sada ?
42
UML UML
Diagrama de casos de uso (relacionamento)
Extenso
Incluso
Generalizao
8
43
Diagrama de casos de uso (relacionamento)
Extenso
O desenho informa que a emisso da nota pode ser chamada
diretamente do cadastro da venda, mas esta uma ao que pode
ocorrer ou no
O caso de uso que estende tem uma relao de dependncia com
o caso de uso estendido (seta tracejada), ou seja, o Emitir nota
s pode ser executado se Cadastrar venda for executado antes
UML UML
Atendente
Cadastrar Cadastrar
venda venda
Emitir nota Emitir nota
<< Extend >>
44
Diagrama de casos de uso (relacionamento)
Incluso
Utilizado para demonstrar que um caso de uso pode ser utilizado por
vrios outros casos de uso, quando este representa uma atividade
comum a mais casos de uso
Apresenta uma relao de dependncia, ou seja, se Cadastrar Venda e
Cadastrar Servio forem executados, Realizar Pagamento
obrigatoriamente ser executado
O caso de uso Realizar pagamento pode ser chamado por Cadastrar
venda ou por Cadastrar servio
UML UML
Atendente
Cadastrar Cadastrar
servi servi o o
Cadastrar Cadastrar
venda venda
Emitir Emitir
Nota Nota
<< Include >>
<< Include >>
45
Diagrama de casos de uso (relacionamento)
Generalizao
Receber pagamento em dinheiro, Receber pagamento em cheque e
Receber pagamento em carto so especializaes do caso de uso
Receber Pagamento
UML UML
Receber Receber
pagamento pagamento
Receber Receber
Pagamento em Pagamento em
cheque cheque
Receber Receber
Pagamento em Pagamento em
dinheiro dinheiro
Receber Receber
Pagamento em Pagamento em
carto carto
Atendente
46
UML UML
Diagrama de casos de uso (visualizao)
Cadastrar autorizados
Atendente
Realizar locao Pagar locao
<<extend>>
Avisar cliente de filme j assistido
Cliente
Cadastrar clientes
<<extend>>
<<include>>
47
UML UML
Diagrama de casos de uso
Possibilidades de relacionamentos
Caso de uso e ator
Ator e ator
Caso de uso e caso de uso
X
X
X X X
Generalizao Incluso Extenso Comunicao
48
UML UML
Diagrama de atividades
utilizado para criar boas descries de casos de uso
a especificao de um caso de uso
Se equivalente a um algoritmo
Sequncia de passos para demonstrar alguma coisa
Dificilmente haver um diagrama de atividades para
todos os casos de uso de um sistema
9
49
UML UML
Diagrama de atividades
Utiliza-se para os casos de uso em cenrios mais
complexos
Onde o negcio a ser modelado de difcil compreenso
Um caso de uso interpretado ou escrito de maneira
equivocada gerar um diagrama de atividades
igualmente equivocado
Ao escrever o diagrama de atividades pode ser
necessrio retornar ao caso de uso para reescrev-lo
50
UML UML
Diagrama de atividades (composio)
Representa uma atividade Representa uma atividade
Representa passagens de uma atividade para outra Representa passagens de uma atividade para outra
Representa uma deciso Representa uma deciso
Representa o ponto de entrada de um processo Representa o ponto de entrada de um processo
Representa o ponto de sa Representa o ponto de sa da de um processo da de um processo
Sincroniza Sincroniza o com o com Fork Fork
Uma atividade Uma atividade dividida em mais de uma dividida em mais de uma
Sincroniza Sincroniza o com o com Join Join
Mais de uma atividade foram unidas em uma Mais de uma atividade foram unidas em uma
51
UML UML
Diagrama de atividades (visualizao 1)
Inicio
Ocliente sedirije ao bal cao e
entrega o filme ao at endent e
Atendente registra filme
como devolvido
Atendente verifica se o
filme est pago
Pagar locao
Finaliza
[ Se sim ]
[ Se no ]
52
UML UML
Diagrama de atividades (visualizao 2)
Cliente entrega o
filme ao atendente
Atendente verifica se o cliente j
locou aquele filme
[ Se j viu e no quer
locar novamente]
Atendente verifica
pendncia financeira
[Se j viu e quer
locar novamente]
Registrar mdia
como locada
[ Se no h pendncia] [Se h pendncia]
Registrar locao
como no paga
[Se no pagar]
Finaliza locao 2
[Se pagar] Registrar locao
como paga
Acertar
pendnci a
[Se acertar
pendncia]
[Se no acertar
pendncia]
[ Se no viu]
[Se j viu]
53
UML UML
Diagrama de atividades (visualizao 3)
Calcular Calcular
valor total valor total
Efetuar Efetuar
compra compra
[se valor < 100]
Solicitar Solicitar
aprova aprova o o
[se valor >= 100]
[
s
e
a
p
r
o
v
a
d
o
]
[ se no aprovado]
54
UML UML
Diagrama de Classes
Classe (notao)
Pessoa Pessoa
get_data_nasc ( )
set_data_nasc ( )
informar_idade ( )
nome
data_nascimento
endereco
Nome Nome
Atributos Atributos
M M todos todos
Essa nota Essa nota o no foi definida pela UML o no foi definida pela UML
10
55
UML UML
Classe
similar a uma tabela no modelo relacional similar a uma tabela no modelo relacional
somente at somente at o ponto onde representa uma o ponto onde representa uma
cole cole o de dados armazenados com um o de dados armazenados com um
tema em comum tema em comum
56
UML UML
Diagrama de classes
uma estrutura lgica esttica, mostrando uma
coleo de elementos declarativos de modelo como
as classes
seus tipos
seus atributos
seus mtodos
seus relacionamentos
57
UML UML
Diagrama de classes
Como localizar classes ?
Na funcionalidade especificada atravs dos casos de uso
Os substantivos indicam candidatos classes e objetos
Os adjetivos desses substantivos indicam os atributos
Os verbos representando as aes desses substantivos
indicam os mtodos
58
UML UML
Diagrama de classes (visualizao)
Estudante
Naturalidade : String
Professor
Titulacao : String
calcularsalario()
Funcionario
Cargo : String
calcularsalario()
Pessoa
Nome : String
Endereco : String
Telefone : String
CPF: String
cadastrarpessoa()
atualizarpessoa()
excl uirpessoa()
Venda
Numero : Integer
Data : Date
ValorTotal : Currency
ItensVenda
Quantidade : Integer
Produto
Descricao : String
Estoque : Integer
Preco : Currency
59
UML UML
Relacionamentos entre classes
As classes no coexistem isoladamente em uma
aplicao
Os relacionamentos existentes entre classes podem ser
Herana
Generalizao/Especializao
Agregao
Agregao por Composio
Associao
60
UML UML
Herana
Define que uma classe uma especializao de outra
classe
Exemplo
As classes Pessoa, Estudante, Funcionrio e Professor
Estudante, Funcionrio e Professor so um tipo de pessoa
Pessoa (generalizao)
Estudante, Funcionrio e Professor (especializao,
particularizao)
Dica
um, um tipo de
11
61
UML UML
Herana (papis das classes)
Superclasse
Representa a generalizao
Subclasse
Representa a especializao/particularizao
Exemplo
Relacionamento de herana entre as classes Pessoa e
Estudante, Funcionrio e Professor
Pessoa: superclasse de Estudante, Funcionrio e Professor
Estudante, Funcionrio e Professor: subclasse de Pessoa
62
UML UML
Herana (vantagens)
Economia de descrio
Facilidade de gerenciamento da estrutura
Reutilizao
63
UML UML
Herana (exemplo)
Estudante Funcionario Professor
Superclasse Superclasse
Subclasses Subclasses
matricula
nome
endereco
informar_nome ( )
Pessoa
64
UML UML
Herana (significado)
Atributos da superclasse so herdados pela subclasse
Pessoa possui o atributo nome
Em consequncia, estudante, funcionrio e professor tambm
possuem o atributo nome
Todos os atributos da superclasse so herdados pela
subclasse
Todos os mtodos da superclasse so herdados pela
subclasse
65
UML UML
Herana (caractersticas)
A superclasse implementa atributos e mtodos
genricos que servem para todas as subclasses e estas,
implementam atributos e mtodos especficos ao seu
contexto
Este tipo de relacionamento um dos pontos chaves
do paradigma de orientao a objetos, pois contempla
a propriedade de reuso de software
66
UML UML
Herana (caractersticas)
A generalizao um relacionamento entre classes e
no entre objetos, ou seja
Cada instanciao de um objeto da subclasse gera
uma estrutura composta por atributos e mtodos
pblicos da superclasse acrescidos dos atributos e
mtodos da subclasse
12
67
UML UML
Herana Mltipla
Quando uma subclasse herda atributos ou mtodos de
duas ou mais superclasses
um tipo de relacionamento que pode apresentar
problemas se no for bem utilizado
Coliso de nomes provindos de atributos da superclasse
Coliso de mtodos provindos das superclasses
Java e Smalltalk no implementam
Eifell e C++ implementam
68
UML UML
Herana Mltipla (exemplo)
Veculo
marca
modelo
ano
dirigir ( )
Anf Anf bio bio
Autom Autom vel vel
numportas
dirhidraulica
dirigir ( )
Barco Barco
tamanho
tipomotor
dirigir ( )
Superclasse Superclasse
Subclasse e Subclasse e
Superclasse Superclasse
Subclasse e Subclasse e
Superclasse Superclasse
Subclasse Subclasse
dirigir ( )
69
UML UML
Herana Mltipla (como evitar)
Em Java existem duas sadas para o problema da
herana mltipla
A primeira aumentar o nmero de classes e isso feito em
50% dos casos (MEDEIROS, 2004)
A segunda a utilizao de Interfaces Interfaces
70
UML UML
Interfaces
Utilizada em Java para contornar a falta da herana
mltipla
No uma classe
No possui atributos
um arquivo que define valores constantes valores constantes e
opera opera es es que outra classe deve implementar
71
UML UML
Interfaces
Define somente as operaes, sem os mtodos
No podem ser instanciadas (no tem objetos)
S podem ser Public e Abstract
No podem ser Private e Protected
Se no forem declaradas como Public e Abstract,
sero automaticamente transformados desse maneira
72
UML UML
Interfaces (exemplo)
Ve Ve culo culo
marca
modelo
ano
dirigir (int x)
dirigir ( )
<<Interface>> <<Interface>>
Barco Barco
Superclasse Superclasse
Subclasse Subclasse
Subclasse/Superclasse Subclasse/Superclasse
Anf Anf bio bio
dirigir (int x)
Autom Autom vel vel
numportas
dirhidraulica
dirigir (int x)
Barco Barco
tamanho
tipomotor
dirigir (int x)
Mtodos com assinaturas diferentes
dirigir (double x)
13
73
UML UML
Agregao
Relao que pode ocorrer entre duas classes
Caracteriza uma relao todo-parte
Exemplo
Relao entre as classes Carro e Roda
Um Carro possui rodas
74
UML UML
Agregao (papis das classes)
Classe todo ou agregada
a classe resultante da agregao
Classe parte
a classe cujas instncias formam a agregao
Exemplo entre as classes
Carro e Roda
Classe Carro: todo ou agregada
Classe Roda: parte
75
UML UML
Agregao (exemplo)
Carro Carro Roda Roda
Classe parte Classe parte Classe todo Classe todo
76
UML UML
Agregao (significado)
A classe todo existe, independentemente da classe
parte (e vice-versa)
No existe uma ligao forte entre as duas classes
Objetos da classe todo so independentes da classe
parte
O objeto parte pode estar em mais de 1 objeto
todo
77
UML UML
Agregao (como encontrar)
Dica
Consiste em, Contm, parte de
Perguntas
uma relao todo-parte?
um objeto vive sem o outro?
Em uma relao entre as classes X e Y
X tem um ou mais Y?
Y parte de X?
78
UML UML
Agregao por Composio
Ocorre quando tem-se uma situao semelhante da
agregao entre duas partes
Ambas as classes vivem unidas, de forma dependente,
ou seja, existe uma ligao forte entre as duas
A parte pode compor apenas 1 todo em um
determinado instante do tempo
14
79
UML UML
Agregao por Composio
O todo responsvel pela vida de suas partes
(criao e destruio)
A parte no tem vida independente do todo
Os objetos da classe parte so dependentes, em
termos de vida, da classe todo
Os objetos da classe parte no podem continuar
vivendo quando o todo destrudo
80
UML UML
Agregao por Composio (exemplo)
Venda Venda Parcela Parcela
Classe parte Classe parte Classe todo Classe todo
81
UML UML
Agregao por Composio (como
encontrar)
Dica
Consiste em, Contm, parte de
Perguntas
uma relao todo-parte?
um objeto vive sem o outro?
No tem sentido os objetos parte continuarem existindo sem
o objeto todo
82
UML UML
Agregao x Composio (diferena)
Agregao
Os objetos parte podem estar em mais de 1 objeto todo
Os objetos parte continuam existindo se o objeto todo
no mais existir
Composio
Os objetos parte podem compor apenas 1 objeto todo em
um determinado instante do tempo
Os objetos parte s existem se o objeto todo existir
83
UML UML
Agregao e Composio (exemplo 1)
Venda Venda
Parcela Parcela
Itens da Venda Itens da Venda Produto Produto
- -A venda possui parcelas e itens. Se excluir a venda, so exclu A venda possui parcelas e itens. Se excluir a venda, so exclu dos tamb dos tamb m seus itens e suas parcelas m seus itens e suas parcelas
- -Os itens da venda so formados por produtos, mas se excluir um i Os itens da venda so formados por produtos, mas se excluir um item o produto continua existindo tem o produto continua existindo 84
UML UML
Agregao e Composio (exemplo 2)
Empresa Empresa
Equipe de Projeto Equipe de Projeto
Empregado Empregado
- -Uma empresa Uma empresa composta por empregados e equipes. Se excluir a empresa, o empr composta por empregados e equipes. Se excluir a empresa, o empregado e a equipe egado e a equipe
so exclu so exclu dos juntos dos juntos
- -Uma equipe Uma equipe formada por empregados. Se excluir uma equipe, os empregados co formada por empregados. Se excluir uma equipe, os empregados continuam existindo ntinuam existindo
15
85
UML UML
Associao
uma relacionamento entre classes que no pode ser
caracterizado como herana, nem como agregao e
nem como composio
No apresenta significado preciso
Mais comum em aplicaes voltadas para comrcio e
servios
86
UML UML
Associao (exemplo)
Cidade Cidade Cliente Cliente
87
UML UML
Como saber qual relacionamento deve ser
utilizado?
Pense se existe herana
Existem atributos ou mtodos sendo aproveitados por outras
classes? A subclasse do tipo da superclasse?
Sim: Isso heran heran a a
No: Existe todo-parte?
Sim: A parte vive sem o todo?
Sim: Isso agrega agrega o o
No: Isso uma composi composi o o
No: Isso associa associa o o
88
UML UML
Diagrama de classes (multiplicidade)
Define quantos objetos participam do relacionamento
o nmero de instncias de uma classe relacionada a
uma instncia de outra classe
89
UML UML
Diagrama de classes (multiplicidade)
Possibilidades
No mnimo 1 e no mximo 6 1..6
Muitos (mesmo que zero ou muitos) *
No especificada
Um ou muitos 1..*
Um e somente um 1
Um e somente um 1..1
Zero ou muitos 0..*
Zero ou um 0..1
90
UML UML
Diagrama de classes (navegabilidade)
Define que a instncia de uma classe pode navegar instncias
de outras classes e vice-versa
Uma seta ligada entre duas classes para indicar o caminho de
navegao entre elas
Representa que o objeto de uma classe contm um apontador
para o objeto da outra classe
Sentido da navegao: de Pessoa para Cidade
Uma Pessoa busca a cidade
A Pessoa tem a responsabilidade de informar a qual cidade
pertence
16
91
UML UML
Diagrama de classes (navegabilidade)
Possibilidades
92
UML UML
Diagrama de sequncia
Modela a seqncia de eventos e a interao de
mensagens existentes em uma transao do sistema
Uma interao uma especificao comportamental que
inclui uma sequncia de trocas de mensagens entre um
conjunto de objetos dentro de um contexto para realizar um
propsito especfico, tal como a realizao de um caso de
uso
93
UML UML
Diagrama de sequncia
A partir de uma linha do tempo, o diagrama mostra a
ativao de mensagens entre objetos
Os objetos so desenhados como linhas verticais, as
mensagens como linhas horizontais e a sequncia de
mensagem lida de cima para baixo na pgina
: Locacao
Objeto
[Devolver filme]
Mensagem
94
UML UML
Diagrama de sequncia
O objeto desenhado 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 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
95
UML UML
Diagrama de sequncia (visualizao)
: Client e : Atendente
: ItensLocacao : Locacao
[Busca Locao]
[Devolver filme]
96
UML UML
Diagrama de sequncia (visualizao)
: Usurio
Pedido:Pedido Itens: Itens
Pedido
Produto:
Produto
inserepedido( )
insereitens( )
buscaproduto( )
verificaitem( )
17
97
UML UML
Diagrama de estados
Diagrama de estados capturam os ciclos de vida de
objetos
Eles distinguem os estados que um objeto pode ter e
quais os eventos (mensagem recebida, tempo, erros e
condies verdadeiras) afetam esses estados ao
mesmo tempo
Um diagrama de estado existe para todas as classes
que possuem, claramente, estados identificveis e
comportamentos complexos
Cada classe possui, somente, um diagrama de estados
98
UML UML
Diagrama de estados
Todos objetos tem um estado
O estado o resultado de atividades anteriores
realizadas pelo objeto, e tipicamente determinada
por valores de seus atributos
Uma classe pode possuir um atributo especfico para
indicar o estado (forma explcita), como pode o
estado ser determinado por valores de atributos
normais no objeto (forma implcita)
99
UML UML
Diagrama de estados
Exemplos de estados de objetos
O pedido (objeto) atendido (estado)
O carro (objeto) est andando (estado)
A mquina (objeto) est parada (estado)
100
UML UML
Diagrama de estados
Um objeto muda de estado quando alguma coisa
acontece, o que chamado de evento evento
H duas dimenses de dinamicidade
Interao: descreve o comportamento externo do objeto e
como ele interage com outros objetos
Por exemplo: enviando mensagens
Mudana de estado interno: descreve como os objetos tem
alterao de estados atravs de eventos internos
101
UML UML
Diagrama de estados (representao)
Diagramas de estado podem ter um ponto de incio e
vrios pontos de encerramento
Cada estado representado, no diagrama, atravs de
um retngulo com as bordas arredondadas
102
UML UML
Diagrama de estados (representao)
No Trreo Subindo
Parado Descendo
Indo para o
trreo
subir (andar)
Chegar no andar subir (andar)
Chegar no andar
descer (andar)
tempo de espera
Chegar no trreo
V
18
103
UML UML
Diagrama de estados (representao)
Vazia Preparada
Seca
Cheia
Disponvel
(molhada/vazia) Erva
Lavada
Preparar(Erva/Bomba)
Esvaziar
Encher
Limpar
Pode quebar
(descartar)
Tomar(Erva Lavada)
Limpar
Tomar(Erva Boa)
Encher
Limpar
Pode quebar
(descartar)
104
UML UML
Diagrama de estados (representao)
105
UML UML
Diagrama de comunicao
Diagramas de sequncia e comunicao expressam
informaes semelhantes mas as apresentam de modo
diferente
As associaes mostram os objetos atuais e como eles
esto inter-relacionados
Como o diagrama de seqncia, o diagrama de
comunicao pode ser usado para ilustrar a execuo
de uma operao ou a execuo de um caso de uso
106
UML UML
Diagrama de comunicao (visualizao)
1: Imprimir (arq)
[Impressora Ocupada]
1.2: Armazenar (arq)
[Impressora Livre]
1.1: Imprimir (arq) : Servidor de
Impresso
: Computador
: Fila
: Impressora
107
UML UML
Diagrama de objetos
O diagrama de objetos uma variao do diagrama de
classes
A diferena que o diagrama de objetos mostra os
objetos que foram instanciados das classes
Sua finalidade descrever um conjunto de objetos
existentes em algum momento da execuo do
software, como uma espcie de fotografia do tempo
de execuo
108
UML UML
Diagrama de objetos (visualizao)
Mi di a 1:Itens Locacao
DataPrevDevol
DataDevol
Val or
= 11/03/2009
= 11/03/2009
= 4,00
Locacao 1:Locacao
Nmero
Data
Val orPago
Val orTotal
Pago
= 125
= 10/03/2009
= 8,00
= 8,00
= S
Mi di a 2:Itens Locacao
DataPrevDevol
DataDevol
Val or
= 11/03/2009
= 11/03/2009
= 4,00
19
109
UML UML
Diagrama de componentes
O diagrama de componente mostra a organizao e as
dependncias existentes entre um conjunto de
componentes
um dos dois tipos de diagramas disponveis para
modelagem de aspectos fsicos de sistemas orientados
a objetos
So tipicamente os arquivos implementados no
ambiente de desenvolvimento
110
UML UML
Diagrama de componentes
Um componente qualquer arquivo que contenha
uma parte necessria ao software
Se um software necessita de uma pgina HTML para
ser executado ou de um arquivo .txt, estes arquivos
so um componente
Um componente no necessariamente um arquivo
executvel, como um .exe
111
UML UML
Diagrama de componentes
usado quando se deseja
Mostrar o sistema por um lado funcional, expondo as
relaes entre seus componentes e a organizao de seus
mdulos durante sua execuo
Descrever os componentes de software e suas dependncias
entre si
112
UML UML
Diagrama de componentes (visualizao)
Apl icao
Financeiro Produtos Vendas
Arqui vo Ini cial izao
113
UML UML
Diagrama de implantao
o diagrama com a viso mais fsica da UML
Tambm chamado de Diagrama de Execuo
um diagrama que mostra a configurao dos ns de
processamento em tempo de execuo e os componentes que
neles existem
a ltima descrio fsica da topologia do sistema, descrevendo
a estrutura de hardware e software que executam em cada
unidade
Os ns significam objetos fsicos que fazem parte do sistema,
onde um ou mais mdulos do sistema ser executado, pode ser
uma mquina cliente numa LAN, uma mquina servidora, uma
impressora, um roteador etc
Um n mostrado como uma figura que apresenta viso
tridimensional como um cubo
114
UML UML
Diagrama de implantao (visualizao)
20
1
1
1
1
1
1
1
Cl i ente
Servi dor
Impressora
Scanner
Lei tor de cartao
20
115
UML UML
Diagrama de pacotes
Pacote um mecanismo de agrupamento, onde todos
os modelos de elementos podem ser agrupados
Classes, componentes, implantao, casos de uso
Pode representar um mdulo do sistema, um
subsistema, ou simplesmente uma pasta para
organizao das informaes do modelo
Este diagrama utilizado normalmente em sistemas
de maior complexidade
116
UML UML
Diagrama de pacotes (visualizao)
Pacote 1 Pacote 1
Classe1 Classe1 Classe2 Classe2
Classe3 Classe3
Classe4 Classe4
Pacote 3 Pacote 3
Classe1 Classe1 Classe2 Classe2
Pacote 2 Pacote 2
Classe1 Classe1 Classe2 Classe2
117
UML UML
Diagrama de estruturas compostas
Representa a colaborao entre classes, objetos ou
interfaces para realizar uma tarefa
118
UML UML
Diagrama de temporizao (ou de Tempo)
Utilizado para mostrar a interao entre objetos em
determinado ponto do tempo
a fuso do diagrama de seqncia e de estado
Apresenta o comportamento dos objetos e sua
interao em uma escala de tempo
O estado dos objetos em relao ao tempo e as mensagens
que modificam esse estado
Publicar
resultados
Divulgar edital e
abrir inscries
Aplicar prova
de seleo
Avaliar
provas
Elaborar
edital
de concurso
|{05/01..30/01}| |{01/02..31/03}| |{10/04 14:00..
10/04 18:00}|
|{12/04..30/04}| |{03/05}|
119
UML UML
Diagrama de viso geral de interao
Mostra uma interao entre os diagramas de
sequncia e atividades
Pesquisar Livros
[Livro no encontrado]
[Adicionar livro]
<<control>>
controlador
Itens: Carrinho
[Registrar Item]
[Verdadeiro]
120
UML UML
Vantagens & Desvantagens da UML
Perdas
Maior trabalho na modelagem
Mais tempo gasto
Ganhos
Menos trabalho na construo
A soluo est pronta
Menos tempo gasto
Os problemas so encontrados em tempo hbil
para sua soluo
As dvidas so sanadas mais cedo e so levantadas
na sua totalidade
21
121
Referncias Referncias
DEBONI, J. E. Z. Modelagem Orientada a Objetos com a UML. 1 ed.,
Futura, 2003
FURLAN, J. D. Modelagem de Objetos Atravs da UML: The Unified
Modeling Language. 1 ed., Makron Books, 1998
GUEDES, GT. A. G. UML Uma Abordagem Prtica. 2 ed., Novatec,
2006
MEDEIROS, E. S. Desenvolvendo Software com UML 2.0: Definitivo.
1 ed., Makron Books, 2004
PRESSMAN, R. Engenharia de Software. 6 ed., McGraw-Hill, 2006
SILVA, R. P. Notas de aula da disciplina de Engenharia de Software.
PPGCC/UFSC
SILVA, R. P. UML2 em Modelagem Orientada a Objetos. 1 ed., Visual
Books, 2007
SOMMERVILLE, I. Engenharia de Software. 8 ed., Pearson
Education, 2007

Você também pode gostar