UML
A linguagem unificada de modelagem
Visão Geral
Origens e Criadores
• OMT-2
• Booch-94
• OOSE
UML
Visão Geral
(James Rumbaugh)
(Grady Booch)
(Ivar Jacobson)
História e padronização
UML
Visão Geral
Tradicional e Moderna
Classes
Objetos
Use Cases
Interfaces
Relacionamentos
Componentes
ODBMS
RDBMS
Sistemas de
grande porte
Java Beans
Sistemas
de tempo real
CORBA
Design Patterns
ActiveX/COM+
UML
Visão Geral
Objetos de
negócio
Usos de UML
•
•
•
•
•
UML
Visão Geral
Visualização
Especificação
Documentação
Comunicação
Construção
Elementos essenciais
Elementos
Estruturais
Elementos de
Extensão e
Anotação
UML
Visão Geral
Elementos
Comportamentais
Elementos de
Agrupamento
Elementos estruturais
OBJETO
CLASSE
umCliente: Cliente
Cliente
nome: String
sobrenome: String
dataNascimento: Date
INTERFACE
alterarNome(nome: String)
alterarTelefone(novoTel: String)
calcularSalario(): Currency
IPessoa
RELACIONAMENTOS
Associação
Herança
Agregação
Composição
Dependência
UML
Visão Geral
NÓ
Navegabilidade
Realização
Se rvidor Web
COMPONENTE
Cadastro.exe
Elementos comportamentais
USE CASE
ESTADOS
Cadastrar cliente
MENSAGENS e
TRANSIÇÕES
Conectando
Mensagem/transição
ATOR
H
Auto-(mensagem/transição)
Mensagem assíncrona
Retorno/controle
UML
Visão Geral
Elementos de Agrupamento
PACOTES
Interface
gráfica
Regras de
negócio
Acesso ao
Banco
UML
Visão Geral
Elementos de Extensão e
Anotação
ESTEREÓTIPO
«importa»
RESTRIÇÃO
{frozen}
ANOTAÇÃO
Esta operação deve ser
chamada depois da
conexão
UML
Visão Geral
TAGGED VALUES
{autor=Janjão Lima
data=12/105/2004}
Permitem adicionar
novas propriedades
aos elementos
de UML.
Conceitos (I)
• UML pode ser usado para
– Mostrar os limites de um sistema e suas
principais funções, usando use cases e atores
– Ilustrar a realização dos use cases, usando os
diagramas de interação
– Representar a estrutura estática de um
sistema, usando diagramas de classe
UML
Visão Geral
Conceitos (II)
• UML pode ser usado, também, para
– Modelar o comportamento de objetos, com
diagramas de estados
– Apresentar a implementação física e a
arquitetura de um sistema, com diagramas de
componentes e diagramas de implantação
– Criar extensões, usando estereótipos
UML
Visão Geral
Atores
• Atores são pessoas ou coisas que
interagem com o sistema em
desenvolvimento
<<Ator>>
Coordenador
Professora
UML
Visão Geral
Sistema de controle
de pre-requisitos
Secretária
Estudante
Use cases
• Um use case é a especificação de sequências
de ações que um sistema, subsistema, ou
classe pode realizar, interagindo com um dos
atores
• Use cases podem incluir seqüências
alternativas, ou seqüências excepcionais (de
erro)
Matricular aluno
UML
Visão Geral
Solicitar
histórico
Verificar
pré-requisitos
Diagramas de Use cases
Solicitar
histórico
<<estende>>
Solicitar histórico do
curso atual
<<estende>>
Solicitar histórico de
todos os cursos
Estudante
<<inclue>>
Matricular
aluno
Verificar
dependências
Secretária
UML
Visão Geral
Sistema de controle
de pre-requisitos
Diagramas de Interação
• Um diagrama de interação mostra um
conjunto de objetos, seus relacionamentos e
as mensagens que podem ser enviadas
entre eles
• Podem ser de dois tipos (isomórficos):
UML
Visão Geral
– Diagramas de seqüência dão ênfase à ordenação
das mensagens
– Diagramas de colaboração enfatizam o
relacionamento entre os objetos que trocam
mensagens
Diagramas de Seqüência
Janela de entrada
de pedido
p: Pedido
: ItemPedido
:ItemEstoque
pr eparar ()
* [para cada item do pedido]
pr eparar ()
emEstoque := v erificar ()
[emEstoque]
remover ()
estoqueBaixo :=
v erific EstoqueBaixo()
[estoqueBaix o]
<<criar>>
[emEstoque]
<<criar>>
UML
Visão Geral
:ItemRenov Estoque
:ItemEntrega
Diagramas de Colaboração
Janela de entrada
de pedido
1: preparar()
p: Pedido
1.1.2.1: estoqueBaixo :=
verif icEstoqueBaixo()
1.1: *[para cada item do pedido]
preparar()
1.1.1 : emEstoque := verif icar()
1.1.2 : [emEstoque] remover()
: ItemPedido
1.1.3 : [emEstoque]
<<criar>>
UML
Visão Geral
:ItemEntrega
:ItemEstoque
1.1.2.2 [estoqueBaixo]
<<criar>>
:ItemRenovEstoque
Diagramas de Atividades
• Os Diagramas de Atividades mostram o fluxo
entre atividades (ações não-atômicas). Ex:
fluxos de processos, fluxos de eventos,
detalhamento de operações.
• São um caso especial dos Diagramas de
Estados, com a maioria das transições
resultantes do término das atividades
• São semelhantes aos antigos fluxogramas
• São muito usados para modelar atividades
concorrentes
UML
Visão Geral
Diagramas de Atividades
Pessoa
[sem café]
H
[sem Coca]
Procurar bebida
[achou café]
Colocar café
no filtro
Adicionar água à
máquina
[achou Coca]
Pegar
xícara
Pegar lata
de Coca
Colocar filtro
na máquina
Ligar máquina
Filtrar café
UML
Visão Geral
Colocar café na
xícara
Beber
H
Diagramas de classes
• Os diagramas de classes são os principais
diagramas estruturais da UML
• Diagramas de classe mostram classes,
interfaces e os relacionamentos entre
esses elementos
• As classes especificam a estrutura e o
comportamento dos objetos
• Objetos são instâncias de classes
UML
Visão Geral
Diagramas de Classe
Cliente
Pedido
-nome: String
-endereco: String
-dataPrimeiraCompra: Date
-dataUltimaCompra: Date
-totalComprado: Currency
-codigo: Integer
-dataRecebido
-total: Currency
+confirmar()
+cancelar()
-calcularTotal():Currency
gerarNovoCodigo: String
itens
#creditoPermitido: Currency
#nivelCredibilidade()
*
Item de Pedido
-quantidade: Integer
-preco: Currency
-emEstoque: Boolean
Cliente pessoa-jurídica
nomeContato: String
telefones[1..10]: String
CGC: String
FAX[1..3]: String
Cliente pessoa-física
nome: String
CPF: String
numCartaoCredito
colocarListaNegra()
*
Produto
representante
de vendas
*
Empregado
UML
Visão Geral
IPessoa
Diagramas de objetos
• Os diagramas de objetos mostram uma
“fotografia” de um sistema OO em
execução
• São mostrados os objetos, com os valores
de seus atributos e as ligações entre eles
• Os diagramas de objetos são úteis para a
modelagem de estruturas de dados
complexas
UML
Visão Geral
Diagramas de Objetos
Curso
Professor
ministra
-matrícula: String
-nome: String
[1..3]
[1..5]
-codDisciplina: String
-descrição: String
-codTurma: String
Aluno
* -matrícula: String
-nome: String
-período: Integer
[0..10]
p1: Prof essor
p2: Prof essor
matricula: "205-6712-09"
nome: "Jaelson Castro"
c1: Curso
: Curso
c2: Curso
: Curso
codCurso: "IF291"
descrição: "MPS"
codTurma: I7
codCurso: "IF185"
descrição: "AER"
codTurma: I6
c3: Curso
: Aluno
: Aluno
: Aluno
: Aluno
: Aluno
:aluno
Bill
matricula: "219846534"
nome: "Nelson Mandella"
:aluno
UML
Visão Geral
matricula: "562746134"
nome: "John Major"
: Aluno
Lew insky
Diagramas de estados
• Os diagramas de estados são usados para
modelar o comportamento de objetos
(com comportamento complexo)
• Nos diagramas de estados são modelados
os estados em que um objeto pode estar e
os eventos que fazem o objeto passar de
um estado para outro
UML
Visão Geral
Diagramas de estados
cartãoInserido
Ativo
Ocioso
cancelar
Validando
fazerManutenção
H
[continuar]
[não continuar]
Manutenção
Selecionando
entry / lerCartão
exit / ejetarCartão
UML
Visão Geral
Processando
Imprimindo
Diagramas de Componentes
• Diagramas de componentes são
usados para modelar o aspecto físico
de um sistema
• São mostrados componentes e os
relacionamentos entre eles
• Exemplos de componentes são
documentos, executáveis, e tabelas
de bancos de dados
UML
Visão Geral
Diagramas de Componentes
Cadastro.exe
<<link>>
Usuários
FormCadastro.html
Banco
<<link>>
Principal.html
FormEntrada.html
UML
Visão Geral
Autenticacao.exe
Senhas
Diagramas de Implantação
• Os diagramas de implantação são usados
para modelar o ambiente em que o o
sistema será executado
• São compostos por nós e relacionamentos
de comunicação
• Um nó pode ser, por exemplo, um
computador, uma rede, um disco rígido,
um sensor, etc.
UML
Visão Geral
Diagramas de Implantação
PC - G309
Nestscape
Communicator
5.0
Principal.html
servidorWeb
FormCadastro.html
Autenticação.exe
servidorDeArquivos
Cadastro.exe
FormEntrada.html
servidorBancoDeDados
UML
Visão Geral
SGBD
O SGBD a ser
utilizado ainda
não f oi escolhido.
Bibliografia Recomendada
• The Unified Modelling Language User
Guide (Grady Booch)
• The Unified Modelling Language Reference
Manual (James Rumbaugh)
• The Unified Software Development Process
(Ivar Jacobson)
• UML Distilled (Martin Fowler)
• http://www.eribeiro.com.br/pablo/uml
UML
Visão Geral