Vous êtes sur la page 1sur 32

Unified Modeling Language

(2.0)

Marcio de Carvalho Victorino


www.dominandoti.eng.br
Victorino
www.dominandoti.eng.br

UML 2.0
 Todo sistema não trivial é melhor abordado através de um
pequeno conjunto de modelos quase independentes.

O Modelo de Visão 4 + 1 da
2
Arquitetura
Victorino
www.dominandoti.eng.br

UML 2.0
Diagrama

Diagrama Estrutural Diagrama Comportamental

Diagrama Diagrama Diagrama Diagrama Diagrama Diagrama


de de de de Máquina de Casos de
Componentes Classes Implantação de Estados de Uso Atividade

Diagrama Diagrama Diagrama


de de de Diagrama de
Objetos Estrutura Composta Pacotes Interação

Diagrama Diagrama Diagrama Diagrama


de de de de
Seqüência Comunicação Interação Tempo
Geral

3
Victorino
www.dominandoti.eng.br

Diagrama de Casos de Uso


 Representa as funcionalidades externamente
observáveis do sistema e os elementos
externos ao sistema que interagem com ele.
 Relacionamentos:
 Entre Casos de Uso:

Inclusão.

Extensão.

Generalização. Estudante Sistema de
Catálogo
 Entre Atores: de Cursos

Generalização.
 Entre Casos de Uso e Atores:
 Associação (comunicação).
4
Victorino
www.dominandoti.eng.br

Diagrama de Casos de Uso

Reservar Livro Realizar


Pagamento

Cliente
Aluno
Devolver Livro

Realizar Realizar
Pagamento com Pagamento
Cartão de Crédito com Cheque
Solicitar Compra
de Título

Professor

Generalização (herança)
5
Victorino
www.dominandoti.eng.br

Diagrama de Casos de Uso


Associação Mostrar Mapa
<<inclui>> do Salão

Reserva
de
Ator
Restaurante

<<estende>> Cadastrar
Cliente

Sistema

Ator
Caso de Uso 1

Fronteira
Especificação do do
Caso de Uso Sistema
Caso de Uso 2

Caso de Uso 3
6
Victorino
www.dominandoti.eng.br

Diagrama de Classes
 Permite a visualização das classes utilizadas
pelo sistema e como estas se relacionam.
ContaBancaria
ContaBancaria
numero GerenciadorDeEvent
ContaBancaria numero saldo os
saldo - nome
dataAbertura
dataAbertura
- tempo
creditar() + suspender()
debitar() + preparar()

Classe Ativa
São classes cujos objetos têm
3 formas de representar classes
um ou mais processos ou
threads.
7
Victorino
www.dominandoti.eng.br

Diagrama de Classes
 Relacionamentos:
 Entre classes:

Dependência.

Generalização(extends).

Associações:
 Simples.

 Agregação (parte/todo).

 Composição (parte/todo com deleção das partes).

 Entre Classes e Interfaces:


 Dependência.
 Associação.
 Realização (implements).
 Entre Interfaces:
8

Generalização(extends).
Victorino
www.dominandoti.eng.br

Dependência
ContaBancaria Deposito

public class ContaBancaria {


private int numero;
private float saldo;
private Date dataAbertura;

public void creditar(Deposito dep) {


.
.
.

}
}

9
Victorino
www.dominandoti.eng.br

Generalização
public class ContaBancaria {
ContaBancaria private int numero;
private float saldo;
numero private Date dataAbertura;
saldo
public void creditar(ObjValor valor) {
dataAbertura .
.
creditar() .
debitar() }
}

public class Poupanca extends ContaBancaria {


private int variacao;
Poupanca .
.
variacao .
}
}
10
Victorino
www.dominandoti.eng.br

Associação
papéis na associação
Simples
nome da associação

Empresta de

devedor credor
Pessoa 1..* * Banco

multiplicidade da associação

Banco Filial Composição

Agregação

Cliente
11
Victorino
www.dominandoti.eng.br

Qualificador de Associação
 Um qualificador de associação é um atributo
do elemento-alvo capaz de identificar uma
instância dentre as demais.

1
Empresa CPF Cliente

 Apesar de uma “Empresa” possuir vários


“Clientes”, a multiplicidade “1” representa a
multiplicidade entre qualificador da
12
Victorino
www.dominandoti.eng.br

Classes x Interfaces
Veiculo
Garagem

Dependência
Automovel

public class Garagem {


private String endereco;
private int qtdVagas;

public void estacional(Veiculo v) {


...
}
}
13
Victorino
www.dominandoti.eng.br

Classes x Interfaces
<<interface>>
SerHumano Realização SerHumano

Pessoa Pessoa

public class Pessoa implements SerHumano {


public interface SerHumano { private String nome;
public void andar( ); private int idade;
public void tocar( ); public void andar( ) {...};
} public void tocar( ) {...};
}
abstract (opcional) 14
Victorino
www.dominandoti.eng.br

Classes x Interfaces
Extensão entre Interfaces

<<interface>> <<interface>>
Automovel Onibus

<<interface>>
Veiculo

public interface Veiculo extends Automovel, Onibus {


.
.
.
}
15
Victorino
www.dominandoti.eng.br

Classes x Classes Internas

16
Victorino
www.dominandoti.eng.br

Diagrama de Objetos
 Representa uma “fotografia” do sistema em
um certo momento. Exibe as ligações
formadas entre objetos conforme estes
interagem e os valores dos seus atributos.
João : Empregado Rafaela : Empregado

Antônio : Empregado
Aline
Empre: Empregado
gado
José : Empregado Lucas : Empregado

Maria : Empregado

17
Victorino
Diagrama de Estrutura Composta
www.dominandoti.eng.br

(Novo)

 É utilizado para modelar colaborações entre


interfaces, objetos ou classes.

18
Victorino
www.dominandoti.eng.br

Colaboração
 É uma sociedade de classes, interfaces e outros
elementos que trabalham em conjunto para
fornecer algum comportamento cooperativo maior
que a soma de todas as suas partes.

realização

Criar Ordem

Gerenciar
Ordem
<<refine>>

Validar
Ordem
refinamento

19
Victorino
www.dominandoti.eng.br

Diagrama de Seqüência
 Representa como o sistema age
internamente para que um ator atinja seu
objetivo na realização de um caso de uso.

20
Victorino
www.dominandoti.eng.br

Diagrama de Seqüência
Ator Objeto Classe

Objeto1 Objeto2 Objeto3 Classe


Ator
mensagem0
mensagem1 Linha de
vida
mensagem2

mensagem3

Foco de
Mensagem
controle

21
Victorino
www.dominandoti.eng.br

Diagrama de Seqüência

22
Victorino
www.dominandoti.eng.br

Diagrama de Comunicação
 Diagrama de Colaboração na UML 1.5.

23
Victorino
www.dominandoti.eng.br

Diagrama de Máquina de Estados

 Demonstra o comportamento de um elemento


através de um conjunto de transição de estados

disponível

bloqueada

24
Victorino
www.dominandoti.eng.br

Diagrama de Atividade
EstadoAção1 EstadoAção2
Estado
inicial
Ponto de
[x > 0] ramificação

Estado
[x = 0] [x < 0]
ação

Bifurcação
EstadoAção3 EstadoAção4

Ponto de
EstadoAção6 EstadoAção7 união

EstadoAção5

Junção Estado final

25
Diagrama de Interação Geral
Victorino
www.dominandoti.eng.br

(Novo)
 É uma variação do diagrama de atividades.
Fornece uma visão geral do controle de fluxo.

26
Victorino
www.dominandoti.eng.br

Diagrama de Componentes
 Identifica os componentes que fazem parte de
um sistema, um subsistema ou mesmo os
componentes ou classes internas de um
componente individual.

27
Victorino
www.dominandoti.eng.br

Diagrama de Implantação
 Enfoca a questão da organização da
arquitetura física sobre o qual o software irá
ser implantado e executado.

28
Diagrama de Pacotes Victorino
www.dominandoti.eng.br

(Novo)
 Um mecanismo de agrupamento geral que pode ser
utilizado para agrupar vários artefatos de um modelo.
 Notação: uma pasta com uma aba.
 Conteúdo, duas maneiras de representar graficamente:
 exibir o conteúdo dentro do pacote;
 “pendurar” os elementos agrupados no ícone do pacote.

29
Diagrama de Pacotes Victorino
www.dominandoti.eng.br

(Novo)
 Pacotes podem ser agrupados dentro de outros pacotes,
formando uma hierarquia de contenção.
 Pode haver relacionamentos de dependência entre pacotes:
 Um pacote P1 é dependente de outro, P2, se houver qualquer
dependência entre quaisquer dois elementos de P1 e P2.
 É muito comum que uma interface e sua implementação estejam
em pacotes distintos

30
Victorino
www.dominandoti.eng.br

Diagrama de Tempo (Novo)


 Semelhante ao diagrama de Máquina de estados, porém enfoca
as mudanças de estado de um objeto ao longo do tempo, útil
para modelagem de sistemas de tempo real.

Forma Concisa

Forma Robusta

31
FIM