Você está na página 1de 76

Modelagem com UML

Fabio Perez Marzullo


fabio@mz-empresarial.com.br
IEEE Body of Knowledge on Services Computing
Sponsored by Technical
Committee on Services Computing, IEEE Computer Society
fabio@mz-empresarial.com.br

Modelagem Esttica
(Viso Lgica)

fabio@mz-empresarial.com.br

Casos de Uso
Modelagem do Comportamento do
Sistema

fabio@mz-empresarial.com.br

Casos de Uso

representa uma funo completa do


sistema:
incluso + alterao + remoo + consulta
=
manuteno
Manuteno = um nico caso de uso.

fabio@mz-empresarial.com.br

Casos de Uso

fabio@mz-empresarial.com.br

Descrevendo Casos de Uso

Condio de incio do caso de uso.


O fluxo de aes do caso de uso.
Subfluxos do caso de uso.
Fluxos de tratamento de erro.
Variantes do fluxo de aes.
Documentos que descrevem todos os casos
de uso normalmente so longos!

fabio@mz-empresarial.com.br

Atores

Atores representam qualquer elemento que


possa interagir com o sistema
Atores no so parte do sistema, mas
representam os elementos externos que
interagem com o sistema

Atores podem ser:

Pessoas.
Outros sistemas.
Equipamentos ligados ao sistema.

fabio@mz-empresarial.com.br

Esteretipos

Objetivo:

Esteretipos so nomes especiais, utilizados para


descrever categorias de elementos em modelos
UML.
Esteretipos so representados por nomes entre os
smbolos << e >>.

Nos diagramas de casos de uso, os


esteretipos podem ser utilizados para nomear
as relaes de uso e extenso.

fabio@mz-empresarial.com.br

Relaes entre Casos de Uso


Relao de Uso:


Diversos casos de uso compartilham o mesmo


comportamento.
 O comportamento fatorado em um caso de uso
independente.
 O novo caso de uso reutilizado pelos demais.
Liberar
Financiamento
<<uses>>

Cliente
<<uses>>
Consulta
Cadastral

Adquir
Suprimentos

fabio@mz-empresarial.com.br

Fornecedor

Relaes entre Casos de Uso


Relao de extenso:


Indica comportamento opcional ou dependente de condio.


 Complementos de um caso de uso.

Servir
jantar
Cliente
<<extends>>

Servir
entrada

<<extends>>

Servir
sobremesa

fabio@mz-empresarial.com.br

<<extends>>

Jantar
luz de velas

Uses X Extends
Uses:
 Uso obrigatrio, toda vez que o caso de uso A for executado,
obrigatoriamente o B tambm dever ser executado.
Extends:


Facultativo, ao executar o caso de uso A, no se torna


obrigatorio a execuo do caso de uso B.

fabio@mz-empresarial.com.br

Conceitos Avanados

Generalizaes

 Associaes de Casos de Uso

fabio@mz-empresarial.com.br

Conceitos Avanados
Generalizao de Casos de Uso

Vender
Carro de Passeio

Vender
Carro
Vendedor
Vender
Utilitrio

fabio@mz-empresarial.com.br

Conceitos Avanados
Generalizao de Casos de Uso

Vender
Equipamento
Vendedor
O Gerente tambm pode efetuar vendas

Autorizar
Crdito
Gerente

fabio@mz-empresarial.com.br

Tempo mximo de
resposta = 1 s

Classes e Objetos
Modelagem da estrutura dos sistemas

fabio@mz-empresarial.com.br

Conceitos Bsicos de OO

Classe
Grupo de objetos

Propriedades semelhantes.
Mesmo comportamento.

fabio@mz-empresarial.com.br

Classe

Em UML, uma classe representada por


um retngulo com trs divises:
Nome

Atributos

Nome da classe.
Atributos.
Mtodos.

Mtodos

fabio@mz-empresarial.com.br

Objetos

Em UML, objetos so representados por


retngulos, e sua identidade aparece
sublinhada:

Monitor LG, 19,


Preto

Monitor Samsung,
22, Touch of Color

fabio@mz-empresarial.com.br

Descobrindo Classes

Descobrir as classes de um sistema a


parte mais complexa do desenvolvimento
orientado a objetos.

fabio@mz-empresarial.com.br

Caractersticas de uma Boa Classe


O domnio da aplicao:

Uma boa classe captura um nico conceito do


domnio da aplicao.

Domnio
Domnio da Arquitetura

Domnio da Aplicao

Interface

Domnio do Negcio

BD

Relacionamentos

Comunicao
Domnio Bsico

Papis

Semntico

Atributos

Estrutural
Fundamental

fabio@mz-empresarial.com.br

Atributos

Os atributos representam as caractersticas da


classe.

Cada atributo representa um conceito atmico.

Atributos compostos devem ser decompostos.

Ex: Endereo = Rua, Nmero e Bairro.

Trs atributos de uma classe.

fabio@mz-empresarial.com.br

Atributos - Exemplo
Exemplo: Instncia da Classe Veculo  Carro

Placa
Chassi
Potncia

fabio@mz-empresarial.com.br

Representao de Atributos
Em UML, os nomes dos atributos so
apresentados no retngulo central do
diagrama de classes:

Atributos

fabio@mz-empresarial.com.br

Visibilidade

A visibilidade de um atributo indica as classes


(ou objetos) que podem consultar ou alterar
seu valor:

Visibilidade pblica (smbolo +)

Visibilidade privativa (smbolo -)

Qualquer classe pode acessar o atributo


Apenas objetos da classe acessam o atributo

Visibilidade protegida (smbolo #)

Apenas objetos da classe e seus descendentes acessam o


atributo

fabio@mz-empresarial.com.br

Associaes
Quando um objeto possui outro objeto
como atributo, dizemos que existe uma
associao entre as classes dos objetos
envolvidos.

fabio@mz-empresarial.com.br

Componentes e Associaes

Uma associao representada por


uma linha entre as duas classes.

Uma associao descrita pelas


seguintes informaes:
nome (opcional);
papel (opcional);
cardinalidade.

fabio@mz-empresarial.com.br

Associaes - Exemplo

Emprego

Empresa

empregador

1..*
empregado

Emprego
salrio

fabio@mz-empresarial.com.br

Pessoa

Cardinalidade

A cardinalidade indica o nmero de objetos


participando em cada lado da associao:
 Indica o nmero mnimo e mximo de objetos.
 Se o mximo for igual ao mnimo, apresenta um
nico nmero.

Tipos comuns de cardinalidades:


Tipo

Significado

1, 0..*
1..*
0..1
5..8
4..7, 9

Exatamente 1 objeto Zero ou mais objetos


Um ou mais objetos
Zero ou um objetos
5, 6, 7 ou 8 objetos
4, 5, 6, 7 ou 9 objetos

fabio@mz-empresarial.com.br

Cardinalidade

Diviso

1..*

Alocao

alocador

*
alocado

Funcionrio

chefe
1

Alocao
data

fabio@mz-empresarial.com.br

subordinado *

Identificando a Cardinalidade
Para cada classe em uma associao:
A associao opcional?
Limite mnimo de zero.

A associao obrigatria?
Limite mnimo de um.

Um nico objeto deve ser associado?


Limite mximo de zero.

Diversos objetos podem ser associados?


Limite mximo infinito ( * ).

fabio@mz-empresarial.com.br

Agregao

Uma agregao um tipo especial de


associao, utilizado quando existe uma
relao de contedorcontedo entre as classes.
Exemplos:
 Um carro contm um motor
 Uma cidade contm bairros

fabio@mz-empresarial.com.br

Representao
Uma agregao representada como uma
associao com um diamante
indicando a classe que contm.

fabio@mz-empresarial.com.br

Autorelacionamento
Um auto-relacionamento ocorre quando uma
classe possui um objeto da mesma classe como
atributo, ou seja, quando uma classe possui
uma associao ou agregao consigo mesma.
Funcionrio

chefe
1

subordinado

fabio@mz-empresarial.com.br

Autorelacionamento de Agregao

Exemplo:
Um circuito eletrnico composto de diversos
circuitos eletrnicos mais simples.

Circuito Integrado
1
*

fabio@mz-empresarial.com.br

Composio
Em uma composio as partes s fazem
sentido quando em conjunto.
Algoritmo para deteco de composies:
 Se eu excluir o objeto A, terei que excluir tambm o B?
Caso a resposta seja sim, ento provavelmente uma composio.
Ex.: Um pedido e compras s faz sentido com os itens de pedido.
Caso a resposta seja no:
O objeto B tem alguma utilidade sozinho?
Caso a resposta seja sim ento uma associao comum, caso contrrio provavelmente
uma agregao.
Ex.: Um carro e suas rodas e um carro e seu volante.

fabio@mz-empresarial.com.br

Composio
 Agregao (por referncia)
TODO

PARTE

 Composio (por valor)


TODO

PARTE

fabio@mz-empresarial.com.br

Mtodos

Mtodos indicam comportamento e destacam:





Visibilidade:


Operaes que podem ser realizadas sobre o objeto.


Operaes que o objeto realiza no contexto do sistema.

Os mtodos utilizam os mesmos modificadores de visibilidade


utilizados nos atributos.

Classificao de mtodos:
 Algoritmicamente simples.
 Algoritmicamente complexos.

fabio@mz-empresarial.com.br

Mtodos - Exemplo
Exemplo: Classe Carro

Trocar Marcha
Acelerar
Abastecer

fabio@mz-empresarial.com.br

Dependncia entre Classes

Uma classe X depende de uma classe Y quando:

 Possui um atributo da classe Y.


 Executa algum mtodo da classe Y.
Algum de seus mtodos possui uma varivel local, parmetro
ou tipo de retorno da classe Y.
 A dependncia representa por uma seta pontilhada.

fabio@mz-empresarial.com.br

Herana
Em UML, a herana
representada como uma
seta vazada:
 A seta aponta a superclasse.
 A herana no pode ter nome,
papel de classe, navegao ou
cardinalidade.

fabio@mz-empresarial.com.br

Exemplo

fabio@mz-empresarial.com.br

Pacotes

A maioria dos modelos contm diversas


classes e como tal podem ser agrupadas em
pacotes.

 Um pacote uma coleo lgica de classes


ou pacotes.
 O pacote representado por uma pasta.

fabio@mz-empresarial.com.br

Dependncia entre Pacotes


Dependncia entre pacotes:
 Um pacote A depende de um pacote B quando ao
menos uma classe do pacote A depende de uma
classe do pacote B.

fabio@mz-empresarial.com.br

Modelagem Dinmica
(Viso de Processo)

fabio@mz-empresarial.com.br

Diagrama de Sequncia
Protocolos de Interao

fabio@mz-empresarial.com.br

Fluxos e Subfluxos
Fluxo principal do caso de uso.

Subfluxos do fluxo
principal.

Ramificaes de um subfluxo do caso de uso.

Subfluxos demonstram operaes que podem ser selecionadas pelo


usurio ou casos especiais de algumas operaes.

fabio@mz-empresarial.com.br

Cenrio
Um cenrio um caminho da raiz at uma
folha da rvore de ramificaes de um
caso de uso.

fabio@mz-empresarial.com.br

Diagramas de Sequncia
Determinam os objetos responsveis pela
realizao de um cenrio e as mensagens
que so trocadas entre eles.
O diagrama apresenta a ordem com que as
mensagens so trocadas no tempo.

fabio@mz-empresarial.com.br

Objetos
Um diagrama de sequncias contm diversos objetos:
 Os objetos so alinhados no topo do diagrama.
 Suas linhas de vida descem em direo base do diagrama.

fabio@mz-empresarial.com.br

Mensagens
Representao:
 Mensagens so representadas como setas
entre dois objetos.
 As setas devem conter nomes de mtodos
do objeto destino.

fabio@mz-empresarial.com.br

Foco de Controle
Retngulos na linha de vida de um
objeto:
 Representam o tempo em que um
objeto est ativo na troca de
mensagens.
 Focos de controle so opcionais nos
diagramas de sequncia.

fabio@mz-empresarial.com.br

Complementos
Condio de mensagens:



A mensagem somente ser emitida se a condio for


verdadeira.
A condio expressa entre colchetes antes do nome do
mtodo.

fabio@mz-empresarial.com.br

Complementos
Repetio de Mensagems:



A mensagem ser emitida mltiplas vezes.

Um asterisco apresentado antes do nome do mtodo.

fabio@mz-empresarial.com.br

Automensagem
Ocorre quando um objeto chama um mtodo seu
para realizar parte do cenrio:
Objeto 1

 Automensagens so
representadas por setas saindo
e retornando para o prprio
objeto.

fabio@mz-empresarial.com.br

Automensagem

Encerramento
Um X representa o fim da execuo
e da vida do objeto:

X
fabio@mz-empresarial.com.br

Diagramas de Colaborao
Alternativa ao diagrama de sequncia.
No apresenta a linha de tempo dos objetos.
Objetos representados por retngulos.
Mensagens representadas como setas entre os retngulos.
Mensagens podem ser numeradas (sequncia de tempo).

fabio@mz-empresarial.com.br

Exemplo

fabio@mz-empresarial.com.br

ESTADOS
Modelagem Dinmica de Classes

fabio@mz-empresarial.com.br

Diagramas de Estado

Estes diagramas so utilizados por diversos


mtodos de anlise:
 Anlise estruturada moderna.
 Anlise essencial.
 Anlise orientada a objetos.

Componentes:





Estado
Transio
Estado Inicial
Estado Final

fabio@mz-empresarial.com.br

Estado

Estados

Representao UML
 Estado: representado por um retngulo de bordas
arredondadas.
 Transio: representada por uma seta entre os
estados.

fabio@mz-empresarial.com.br

Estados Especiais
Um diagrama de estados tem no mnimo dois
estados:
 Estado Inicial: um objeto recm criado no sistema se
encontra neste estado.
 Estado Final: estado final na cadeia de troca de
estados do objeto. O objeto no poder trocar de
estado aps atingir seu estado final.
Em um diagrama de estados podem existir diversos
estados finais.

fabio@mz-empresarial.com.br

Transies

Uma transio pode estar associada a:





Uma ao, que indica um mtodo do objeto que ser


executado quando a transio de estado se realizar.

Uma condio, tambm conhecida como guarda, que indica


quando a transio de estado deve ocorrer.


Ambos so apresentados junto ao nome do evento na


transio.


fabio@mz-empresarial.com.br

Todos so opcionais.

Diagrama de Estados

fabio@mz-empresarial.com.br

Modelagem Fsica
(Viso Fsica)

fabio@mz-empresarial.com.br

Diagrama de Componentes

fabio@mz-empresarial.com.br

Diagrama de Componentes

Apresenta os mdulos fsicos do


software e suas relaes;

O software se torna um conjunto de


unidades modulares e reutilizveis;

Podem representar uma classe,


aplicaes, subsistemas ou sistemas.

fabio@mz-empresarial.com.br

Diagrama de Componentes
Notao
UML 1.4
PedirServico

UML 2.0
<<componente>>
PedirServico

PedirServico

fabio@mz-empresarial.com.br

Diagrama de Componentes
Interfaces
UML 1.4

ReceberPedidos
ControlarExecucao

PedirServico

UML 2.0

ReceberPedidos

PedirServico

PedirServico

fabio@mz-empresarial.com.br

ControlarExecucao

<<Interface>>
ReceberPedido
+Avaliar()
+Cotar()

Diagrama de Componentes
Dependncias
ControlarExecucao

PedirServico
RH

fabio@mz-empresarial.com.br

Diagrama de Componentes
Delineamento

1..*
<<implementa>>
<<arquivo>>
ControlePedido.JAR

<<realiza>>

1..*
Servico

PedirServico
<<realiza>>
<<realiza>>

1..*
1..*
Operario

fabio@mz-empresarial.com.br

Diagrama de Componentes
PedirServico
Delineamento

1
1..*

<<arquivo>>
ControlePedido.JAR

Servico

<<implementa>>
1..*
1

Operario

fabio@mz-empresarial.com.br

ReceberPedidos

Diagrama de Distribuio

fabio@mz-empresarial.com.br

Diagrama de Distribuio
Captura

a topologia (ambiente) de hardware de


um sistema sobre a qual so executados os
componentes de software:
Construdo como parte da especificao da
arquitetura fsica.
Objetivo:
Especificar a distribuio de componentes.
Identificar problemas de desempenho.

fabio@mz-empresarial.com.br

Diagrama de Distribuio

fabio@mz-empresarial.com.br

Diagrama de Distribuio

fabio@mz-empresarial.com.br

Diagrama de Distribuio

fabio@mz-empresarial.com.br

Você também pode gostar