UML
UML significa Linguagem de Modelagem Unificada
A UML combina o melhor do melhor de:
• Conceitos de Modelagem de Dados (Diagramas Entidade-
Relacionamento)
• Modelagem de Negócios (Fluxo de trabalhos)
• Modelagem de Objetos
• Modelagem de Componentes
A UML é a linguagem padrão para visualizar, especificar,
construir e documentar os artefatos de um sistema
intensamente baseado em software
Pode ser usada com todos os processos, durante todo o
ciclo de desenvolvimento, e com diferentes tecnologias de
implementação
Na UML, há nove Diagramas padrão:
• Visões estáticas: classes, objetos, componentes, distribuição
• Visões dinâmicas: casos de usos, seqüência, colaboração,
máquinas de estados, atividades
Um Diagrama é uma visão do modelo
• Apresentado da perspectiva de um patrocinador em particular
• Fornece uma representação parcial do sistema
• É semanticamente consistente com outras visões
UML
1
2
3
4
UML – Diagramas, Visão, Modelo
State
State
Diagramas
Diagramas
Diagramas
Use Case Classes
Use Case
Diagramas State
Use Case Diagramas State
Diagramas
Use Case Casos de Usos Diagramas
Diagramas
Diagramas Diagramas
Diagramas Objetos
Sequência
Scenario State
Scenario
Diagramas State
Diagramas
Diagramas
Diagramas Diagramas
Diagramas
Colaboração Modelos Componentes
Scenario Component
Scenario
Diagramas de
Component
Diagramas
Diagramas
Máquinas Diagramas
Diagramas
Estados Distribuição estático
Diagramas dinâmico
Atividades
1 - Diagrama de caso de uso
2 - Diagrama de interação
Diagrama de seqüência
Diagrama de colaboração
3 - Diagrama de classes
4 - Diagrama de gráfico de estados
5 - Diagrama de atividades
6 - Diagrama de objetos
7 - Diagrama de componentes
8 - Diagrama de implantação
UML – Diagramas, Visão, Modelo
Fases
Fluxo de Trabalho de Processo
ConcepçãoElaboração Construção Transição
Modelagem Negócios
Requisitos
Análise e Projeto
Implementação
Teste
Distribuição
Fluxo de Trabalho de Suporte
Ger. Versões
Gerenciamento
Ambiente
Iterações Iter. Iter. Iter. Iter. Iter. Iter. Iter.
#1 #2 #n #n+1 #n+2 #m #m+1
Iterações
Diagramas
para modelagem para modelagem
comportamental estrutural
Caso de uso -Caso de uso
-Atividades
Projeto -Interação -Classes
-Estado
Visão
Processo -Interação -Classes
Implementação - Componentes
Distribuição - Distribuição
Casos de Uso
Um caso de uso é um padrão de comportamento que o
sistema exibe
• Cada caso de uso é uma sequência de transações relacionadas
executadas por um ator e o sistema num diálogo
Atores são examinados para determinar suas necessidades
• Vendedor, Cliente, Gerente
Um documento de fluxo de eventos é criado para cada caso
de uso
• Escrito do ponto de vista do ator
Detalha o que o sistema deve fornecer quando o caso de
uso é executado
Conteúdos típicos
• Como o caso de uso inicia e termina
• Fluxo normal de eventos
• Fluxos alternativos de eventos
• Fluxos excepcionais de eventos (respostas a erros)
Roteiro de evento para venda a prazo
Roteiro: Venda a Prazo
1. Cliente informa o(s) produto(s) desejado(s).
2. Vendedor registra venda.
3. Cliente escolhe plano de pagamento (quantidade de
prestações).
4. Vendedor informa o valor das prestações.
5. Funcionário do Setor Financeiro verifica se cliente está com
situação financeira regular em relação a empresa.
6. Funcionário do Setor Financeiro autoriza o crédito e emite o
carnê de pagamento.
7. Caixa informa valor a pagar para o cliente.
8. Cliente paga a primeira prestação no guichê do caixa.
9. Caixa registra o pagamento e fornece a nota fiscal.
10. Almoxarife realiza a baixa no estoque.
11. Cliente leva o produto com a nota fiscal.
12. Ao final do mês o funcionário do Setor Financeiro calcula as
comissões dos vendedores sobre as prestações quitadas.
Caso de Uso Passos do Roteiro
Registrar Venda 2 – 10
Definir Prestações 3–4
Autorizar Crédito 5–6
Registrar Pagamento 7–8–9
Calcular Comissão de Vendedor 12
Diagrama de caso de uso
Um diagrama de caso de uso mostra um
conjunto de casos de uso e atores (um tipo
especial de classe) e seus relacionamentos.
Aplique esses diagramas para ilustrar a visão
estática do caso de uso de um sistema.
Os diagramas de caso de uso são importantes
principalmente para a organização e modelagem
dos comportamentos de um sistema.
À medida em que casos de uso são documentados, outras
relações entre casos de uso poderão ser descobertas
• Uma relação de uso (uses) mostra comportamento que é comum a
um ou mais casos de uso
• Uma relação de extensão (extends) mostra comportamento
opcional
Estereótipos podem ser usados para extender os elementos
notacionais de UML
Diagrama de caso de uso
Realizações de Casos de Uso
O Diagrama de Caso de Uso apresenta uma visão externa do
sistema
Diagramas de Interação descrevem como casos de uso são
realizados como interações entre associações de objetos
Há dois tipos de Diagramas de Interação
• Diagramas de Sequência
• Diagramas de Colaboração
Todos os diagramas de seqüência e de
colaboração são diagramas de interação e
qualquer diagrama de interação é um diagrama
de seqüência ou de colaboração.
Os diagramas de seqüência e de colaboração são
isomórficos, significando que você pode
converter um em outro sem perder informações.
Diagrama de seqüência
Um diagrama de seqüência é um diagrama de interação que
dá ênfase à ordenação temporal de mensagens.
Um diagrama de seqüência mostra conjunto de objetos e as
mensagens enviadas e recebidas por esses objetos em uma
seqüência de tempo
Tipicamente os objetos são instâncias nomeadas ou
anônimas de classes, mas também podem representar
instâncias de outros itens, como colaborações,
componentes e nós.
Use os diagramas de seqüência para ilustrar a visão
dinâmica de um sistema.
Diagrama de seqüência - vendas
Diagrama de colaboração
Um diagrama de colaboração é um diagrama de interação
que dá ênfase à organização estrutural dos objetos que
enviam e recebem mensagens.
Um diagrama de colaboração mostra um conjunto de
objetos, as conexões existentes entre esses objetos e as
mensagens enviadas e recebidas pelos objetos.
Tipicamente os objetos são instâncias nomeadas ou
anônimas de classes, mas também podem representar
instâncias de outros itens, como colaborações,
componentes e nós.
Use os diagramas de colaboração para ilustrar a visão
dinâmica de um sistema.
Diagrama de colaboração - vendas
Diagrama de classes
Um diagrama de classes mostra um conjunto de classes,
interfaces e colaborações e seus relacionamentos.
Os diagramas de classes são os diagramas mais
encontrados em sistemas de modelagem orientados a
objetos.
Use esses diagramas para ilustrar a visão estática do
projeto de um sistema.
Os diagramas de classes que incluem classes ativas são
empregados para direcionar a visão estática do processo de
um sistema.
Elementos de UML presentes nos Diagramas de Classes:
• Classes, suas estruturas internas e comportamento
• Associações, agregações, dependências, e relações de herança
• Multiplicidade e indicadores de navegação
• Nomes de papéis (O que uma classe representa para outra)
UML – Classes Notação Gráfica
Classe abstrata
Nome da Classe
escopo de instância
- Atributo 1 escopo de classe
- Atributo 2: tipo
...
# Atributo n: tipo=valor
# Serviço 1()
+ Serviço 2(): retorno Visibilidade:
... - privado
+ público
+ Serviço n(param: tipo)
# protegido
Funcionário
Nome:texto
Residência:texto
Salário Bruto:real
Faltas:inteiro
Cálculo Salarial():real
Imprimir Dados()
SetResidencia(R:Residencia)
GetFaltas():faltas
ApagarFuncionário()
CriarNovo()
UML - Relacionamentos
Associação:
• é uma conexão bi-direcional entre classes
• É mostrada como uma linha conectando as classes relacionadas
Agregação:
• é um tipo mais forte de conexão, especialização de uma
associação;
• Neste tipo de relacionamento, descreve-se a instância (Todo) e
seus componentes que, por sua vez, também são instâncias
(Partes). Em uma estrutura agregação, há um "agrupamento" de
subclasses para formar uma classe mais global;
• É mostrada como uma linha conectando as classes relacionadas
com um losango perto da classes que representa o todo
Herança:
• um dos princípios da OO, permite a reutilização, uma nova classe
pode ser definida a partir de outra já existente
UML – Relacionamentos Notação
Gráfica
Associação:
Classe A Classe B
unidirecional
ou
Classe A Classe B
bidirecional
Classe A Classe B bidirecional
ou
não determinada
Agregação:
Endereço
Funcionário
Rua:texto
Nome:texto Número:texto
Residencia:Endereco Bairro:texto
Salário Bruto:real CEP:texto
1 Telefone:texto
Faltas:inteiro
1..n Email:texto
Cálculo Salarial() Cidade:texto
Imprimir Dados() EnviarEMail()
FazerEtiqueta()
UML – Relacionamentos Notação
Gráfica
Herança: Pessoa
Nome
Endereço
Mostrar()
Funcionário Cliente
Salário Compra
Faltas TipoPagamento
CalcularSalario() GerarRecibo()
Mostrar() Mostrar()
Pessoa
Nome
Endereço
Mostrar()
Funcionário Cliente
Salário Compra
Faltas TipoPagamento
CalcularSalario() GerarRecibo()
Mostrar() Mostrar()
Funcionário_Cliente
Desconto
CalcularSalario()
Mostrar()
Diagrama de classes
Diagrama de classes
Classes são identificadas pelos diagramas de caso de uso e de
seqüência
Os serviços das Classes são retirados dos diagramas de
colaboração e de seqüência
Diagrama de pacotes
Este termo é utilizado para mostrar os pacotes de classes e
suas dependências. Este diagrama não existe na UML é
utilizado pelo Fowler.
Diagrama de estados
Um diagrama de gráfico de estados mostra uma
máquina de estados, que consiste de estados,
transições, eventos e atividades.
Use os diagramas de gráfico de estados para ilustrar a
visão dinâmica de um sistema.
Esses diagramas são importantes principalmente para
se fazer a modelagem do comportamento de uma
interface, classe ou colaboração.
Os diagramas de gráfico de estados dão ênfase ao
comportamento de um objeto, solicita-do por eventos,
que é de grande ajuda para a modelagem de sistemas
reativos.
Diagrama de atividades
Um diagrama de atividades mostra o fluxo de
uma atividade para outra em um sistema.
Uma atividade mostra um conjunto de
atividades, o fluxo seqüencial ou ramificado de
uma atividade para outra e os objetos que
realizam ou sofrem ações.
Use os diagramas de
atividades para ilustrar
a visão dinâmica de
um sistema.
Esses diagramas são
importantes
principalmente para se
fazer a modelagem da
função de um sistema.
Os diagramas de
atividades dão ênfase
ao fluxo de controle
entre objetos.
Diagrama de atividades
•Uma atividade
pode ser dividida
em subatividades
raias ou swimlanes
Diagrama de componentes
Um diagrama de componentes mostra um
conjunto de componentes e seus
relacionamentos.
Use esses diagramas para ilustrar a visão
estática da implementação de um sistema.
Os diagramas de componentes estão
relacionados aos diagramas de classes, pois
tipicamente um componente mapeia uma ou mais
classes, interfaces ou colaborações.
Diagrama de implantação ou de
distribuição
Um diagrama de implantação mostra um
conjunto de nós e seus relacionamentos.
Use esses diagramas para ilustrar a visão
estática da implantação de uma arquitetura.
Os diagramas de funcionamento estão
relacionados aos diagramas de componentes,
pois tipicamente um nó contém um ou mais
componentes.
Exercício
O curso de especialização AFaz de Conta irá implementar
um sistema de cadastro de informações. Algumas
informações de interesse para os alunos são nome,
endereço, CPF, matricula e disciplina matriculadas.
Algumas informações dos professores são nome, endereço,
data de admissão, turno, disciplinas lecionadas. As
disciplinas devem ter informações sobre nome, código,
horário, sala e créditos.
Todo professor deve receber uma remuneração e os dados
referentes a ela são salário bruto, gratificação, descontos.
Os alunos precisam pagar uma mensalidade de acordo com
o numero de créditos cursados.
A administração do curso deve calcular os gastos mensais
(levar em conta que a única despesa é com salário de
professores e os créditos são referentes as mensalidades
dos alunos.
O aluno deverá fazer matricula em disciplinas em cada
semestre, e dever’;a ser verificado a existência de pré-
requisitos na disciplina.
Verifiquem a existência de outras informações que não
constem nesta lista.