Vous êtes sur la page 1sur 33

Módulo II

Introdução à
Unified Modeling Language (UML)
Introdução à UML - Alessandro Cerqueira - 2005

Objetivo
Apresentar os principais
características e elementos
da UML
2

História da Orientação a Objetos


• Anos 60 - 70
– COBOL, FORTRAN, C
– Métodos de Aná
Análise e Projeto Estruturado
• Final dos Anos 60:
– Simula (primeira linguagem a incorporar elementos OO)
Introdução à UML - Alessandro Cerqueira - 2005

• Anos 80 e Iní
Início dos Anos 90
– ADA, Smalltalk,
Smalltalk, C++
– Primeiros mé
métodos OO
• Restante dos Anos 90: Iní
Início de atraç
atração por OO
– Java, UML, Unified Process
– Proliferaç
Proliferação de Mé
Métodos OO
• Método: Notaç
Notação + Atividades
Introdução à UML - Alessandro Cerqueira - 2005 3
Introdução à UML - Alessandro Cerqueira - 2005 4
5

Métodos OO Precursores
• 1989 – Wirfs-Brock
• Cartões CRC ( Classe – Responsabilidade - Colaborador)
• 1991 – Coad / Yourdon
• OOA e OOD
• 1991 – Grady Booch
Introdução à UML - Alessandro Cerqueira - 2005

• Método BOOCH
• 1991 – James Rumbaugh
• Método OMT (Object
(Object Modeling Technique)
Technique)
• 1992 – Ivar Jacobson
• OBJECTORY OOSE
• 1994 – Coleman
• Método Fusion (Mistura de conceitos presentes nos
Métodos Booch,
Booch, OMT, CRC e MéMétodos Formais).
6

Antes da UML
• Vários métodos surgem entre 89 e 94 (“Guerra dos
métodos”)

• Novas versões dos métodos, incorporando técnicas uns dos


outros (OOSE, OMT-2, Booch’93)
– Reconhecia-
Reconhecia-se que havia pontos mais fortes em cada um dos
Introdução à UML - Alessandro Cerqueira - 2005

métodos

• Parceria entre Booch e Rumbaugh (Rational) – 1994


– Unified Method (UM)

• Rational incorpora a Objective Systems de (Jacobson)


(Objectory) – 1995
– parceria Booch/
Booch/Rumbaugh estendida com Jacobson
– Unified Modeling Language (UML)
7

Evolução da UML UML 2.0

UML 1.4 (2001)

UML 1.3
Aceitação pela OMG, Nov 1997
Submissão final na OMG, Sep ‘97
UML 1.1
Retorno do Primeira submissão na OMG
Introdução à UML - Alessandro Cerqueira - 2005

público (Object Management Group), Jan ´97


Parceiros UML
UML 1.0
Web - June ´96
UML 0.9
OOPSLA ´95
Unified Method 0.8

Outros Métodos Método Booch OMT OOSE


(Rumbaugh)
Rumbaugh) (Jacobson)
Jacobson)
8

UML e seu Contexto de Utilização


• UML - Linguagem Unificada de Modelagem
• É uma linguagem para a representaç
representação de
modelos
• Entretanto só
só isto não é suficiente.
suficiente.
Introdução à UML - Alessandro Cerqueira - 2005

• També
Também é necessá
necessário definir
QUEM faz O QUE,QUE, QUANDO é
Equipe de
feito e COMO atingir um Desenvolvimento
certo objetivo.
objetivo.
• També
Também é necessá
necessário determinar
qual será
será o Processo de Linguagem de Processo
Desenvolvimento a ser utilizado.
utilizado. Modelagem Unificado
9

UML e seu Contexto de Utilização


• A estratégia principal foi padronizar uma linguagem
de modelagem e não padronizar um processo.
• Remove as diferenças desnecessárias entre as
notações dos métodos Booch, OMT e OOSE.
Introdução à UML - Alessandro Cerqueira - 2005

• Linguagem padrão de modelagem adotada pela OMG


(Object Management Group), orgão de padronização
da tecnologia OO.
• Também é definido o RUP (Rational Unified Process)
– Método:
todo: Notaç
Notação + workflow de desenvolvimento (quem, o
que, quando e como)
– Podemos fazer realizar o desenvolvimento utilizando a UML
como padrão notacional sem necessariamente utilizar o RUP
10

Contribuições dadas para a UML


Harel
Meyer Gamma, et al
Statecharts
Before and after Frameworks and patterns,
conditions
HP Fusion
Booch
Operation descriptions and
Booch method message numbering
Introdução à UML - Alessandro Cerqueira - 2005

Embley
Rumbaugh
Singleton classes and
OMT
high-level view

Jacobson Wirfs-Brock
OOSE
Responsibilities
Shlaer - Mellor Odell

Object lifecycles Classification


11

Estrutura Vertical da UML


• A UML define nove tipos diferentes de diagramas
para visualizar, especificar, construir e documentar
aspectos estáticos e dinâmicos de um sistema:
– Visão Está
Estática:
tica: casos de uso,
uso, classes, objetos,
objetos, componentes
e implantaç
implantação.
ão.
Introdução à UML - Alessandro Cerqueira - 2005

– Visão Dinâmica:
Dinâmica: seqü
seqüência,
ência, colaboraç
colaboração,
ão, grá
gráficos de estados
e atividades.
atividades.

• Cada diagrama define uma visão


– Apresentado sob um determinado ponto de vista
– Fornece uma representaç
representação parcial do sistema
– Deve ser semanticamente consistente com outras visões
12

Estrutura Vertical da UML


State
State
Diagrams
Diagrama
Diagrams de
Use Case Classes
Use Case
Diagrams State
Use Case Diagrama
Diagrams de State
Diagrams
Use Case Casos de Uso Diagrama
Diagrams de
Diagrams
Diagrama de Objetos
Diagrams
Seqüências
Introdução à UML - Alessandro Cerqueira - 2005

Scenario State
Scenario
Diagrams State
Diagrams
Diagrama
Diagrams de Modelos do Diagrams de
Diagrama
Colaborações Sistema Componentes

Scenario Component
Scenario de
Diagrama
Diagrams
Component
Diagrams
Diagrama de
Diagrams
Diagrams
Gráficos de Implantação
Estados Diagrama de
Atividades
13

Estrutura Transversal da UML


• Os diagramas da UML descrevem:
– Itens
– Relacionamentos
– Mecanismos de Extensibilidade
Introdução à UML - Alessandro Cerqueira - 2005

• Quatro tipos de Itens:


– Itens Estruturais
– Itens Comportamentais
– Itens de Agrupamento
– Itens Anotacionais
14

Estrutura Transversal da UML


(Itens) Polígolo Nome da Classe

Atributos
• Itens Estruturais Visibilidade
+ origem : Ponto
<< construtor >>
– Ex: Classes, Interfaces, Colaboraç
Colaborações,
ões+,new ( )
Casos de Uso,
Uso, Classes Ativas,
Ativas, << ações de desenho >>
+ mover(p : Ponto) Assinatura
Componentes e Nós. + redimensionar(e : Escala)
+ apresentar( )
# invalidarRegião( )
• Itens Comportamentais
Introdução à UML - Alessandro Cerqueira - 2005

Operações
Responsabilidades
– Ex: Interaç
Interações e Máquinas de Estado- - Gerenciar o estado
do polígono
- - Manipular suas
• Itens de Agrupamento transformações básicas

– Ex: Pacotes e Subsistemas Responsabilidades

• Itens Anotacionais
Nome da Interface
– Ex: Notas IApplication
15

Estrutura Transversal da UML


(Relacionamentos)
• Quatro tipos de Relacionamentos

– Dependência
Introdução à UML - Alessandro Cerqueira - 2005

0..1 emprega *
– Associação empregador funcioná
funcionário

– Generalização

– Realização
Obs:
Obs: A agregaç
agregação é um tipo
particular de associaç
associação
16

Estrutura Transversal da UML


(Mecanismos de Extensibilidade)
• Três tipos de Mecanismos de Extensibilidade
– Estereótipos
– Valores Atribuídos
– Restrições
Introdução à UML - Alessandro Cerqueira - 2005

<< container>>
FilaDeEventos
{versão = 3.2}
Estereótipos Valor Atribuído
+ adicionar (e : Evento) {adicionar ordenado}
+ remover (e : Evento)
<< consulta >>
+ tamanho ( ) : Integer
<< funções de ajuda >>
+ reordenar ( )
17

Diagrama de Casos de Uso


• Apresenta a funcionalidade do sistema como é
vista pelos usuários

Fazer ligação de
Fazer Ligação
conferência
Introdução à UML - Alessandro Cerqueira - 2005

estende o relacionamento
Rede Celular
Receber Receber ligação
ator Ligação adicional

Casos
Uso de uso
Programado Fronteira do sistema

Usuário
Telefone Celular
associação
18

Diagrama de Casos de Uso


• Construído nas primeiras fases do desenvolvimento
(levantamento e especificação de requisitos)
• Propósitos
– Especificar o contexto de um sistema
Introdução à UML - Alessandro Cerqueira - 2005

– Capturar os requisitos de um sistema


– Validar a arquitetura do sistema
– Guiar a implementação e gerar casos para testes
• Desenvolvido pelos analistas, especialistas do domínio e
steakholders.
19

Diagrama de Classes
• Apresenta o classe
Empresa agregação

vocabulário multiplicidade
nome

do sistema e Departamento
nome : Nome
localização
Escritório
endereço : String

quais são os restrição


voz : Número

papel
dados mani- {subconjunto}
associação
generalização
Introdução à UML - Alessandro Cerqueira - 2005

membro
pulados pelo Pessoa
gerente EscritórioCentral

sistema. nome : Nome


códigoFuncionário : Inteiro
título : String
atributos

operações
obterFoto( p : Foto )
obterSom ( ) InformaçãoDeContato
obterInformaçãoDeContato ( )_ endereço : String
obterRegistrosPessoais ( )

RegistroPessoal
interface

códigoDeImposto
dependência históricoDeEmprego
salário
IInformaçãoSegura
20

Diagrama de Classes
• Construído e refinado através do desenvolvimento

• Propósitos
– Modelar e dar nomes aos conceitos no sistema
Introdução à UML - Alessandro Cerqueira - 2005

– Especificar as colaborações
– Especificar o esquema lógico do banco de dados
• Desenvolvido por analistas, projetistas e
implementadores
21

Diagrama de Objetos
• Apresenta instâncias e ligações
e : Empresa

d1 : Departamento d2 : Departamento
nome = “Vendas” nome = “P&D”
Introdução à UML - Alessandro Cerqueira - 2005

Vínculos ou
ligações

d3 : Departamento
objetos valores dos atributos
nome = “Vendas RJ”

gerente objeto anônimo

p : Pessoa
: InformaçãoDeContato
nome = “José da Silva”
códigoDoFuncionário = 4362 endereço : “Rua da Fonte, 87”
cargo = “VP de Vendas”
22

Diagrama de Objetos
• Construído durante a análise e o projeto
• Propósito
– Ilustrar a estrutura dos dados e objetos
Introdução à UML - Alessandro Cerqueira - 2005

– Representar um estado momentâneo da estrutura


dos dados e objetos

• Utilizado pelos analistas, projetistas e


implementadores
23

Diagrama de Componentes
• Apresenta a estrutura de arquivos que
compõem a implementação
página encontre.html
executável

encontre.exe
Introdução à UML - Alessandro Cerqueira - 2005

index.html

dbacs.dll

nateng.dll
bibliotecas
componentes
24

Diagrama de Componentes
• Parte da especificação da arquitetura
• Propósitos:
– Organizar o código-fonte
Introdução à UML - Alessandro Cerqueira - 2005

– Construir uma versão executável


– Especificar o banco de dados físico

• Desenvolvido por projetistas e programadores


25

Diagrama de Implantação
• Apresenta a topologia do hardware do sistema
nós

conexões
Introdução à UML - Alessandro Cerqueira - 2005

servidor de servidor de
cache cache
nós

Rede local

servidor servidor servidor servidor


primário
26

Diagrama de Implantação
• Parte da especificação da arquitetura
• Propósitos
– Especificar a distribuição dos componentes
Introdução à UML - Alessandro Cerqueira - 2005

– Identificar complicações de desempenho

• Desenvolvido por projetistas, engenheiros de


rede e engenheiros de sistema.
27

Diagrama de Seqüência
• Apresenta o comportamento dinâmico
(orientado pelo tempo)
interação
objeto
Introdução à UML - Alessandro Cerqueira - 2005

linha de vida

rótulo de criação
seqúência mensagem
chamada
foco do controle
recursão
retorno

destruição
28

Diagrama de Colaboração
• Apresenta o comportamento dinâmico
(orientado a mensagens)
Introdução à UML - Alessandro Cerqueira - 2005

vínculo

mensagem

objeto
29

Diagramas de Sequência e
Colaboração
• Propósitos do Diagrama de Seqüência
– Modelar o fluxo de controle
– Ilustrar cenários típicos
Introdução à UML - Alessandro Cerqueira - 2005

• Propósitos do Diagrama de Colaboração


– Modelar o fluxo de controle
– Ilustrar a coordenação da estrutura e controle dos
objetos

• São semanticamente equivalentes!


30

Diagrama de Gráficos de Estado


• Apresenta o comportamento dinâmico
(orientado a eventos)
Máquina de Estados
estado final
estado
transição
Introdução à UML - Alessandro Cerqueira - 2005

estado aninhado

guarda

estado inicial

transição interna

evento
ação
estado composto
31

Diagrama de Gráficos de Estado


• Propósitos
– Modelar o ciclo de vida dos objetos
– Modelar estados dos objetos de interface
• Janelas (Em sistemas convencionais)
Introdução à UML - Alessandro Cerqueira - 2005

• Páginas HTML (Em sistemas Web)


32

Diagrama de Atividades
estado inicial

• Apresenta o Selecionar local

comportamento estado de Contratar arquiteto


ação
dinâmico
Desenvolver plano

(orientado a
Introdução à UML - Alessandro Cerqueira - 2005

atividades) ramificação
Orçar plano

seqüêncial [rejeitado]

[senão] bifurcação concorrente

estado da atividade
com submáquina
Trabalhar no local Trabalhar c/ setores
união concorrente

fluxo de objetos
: CertificadoDeHabitese
Concluir Construção [concluído]
estado final
33

Diagrama de Atividades
• Propósitos
– Modelar o fluxo de trabalho
– Modelar operações
Introdução à UML - Alessandro Cerqueira - 2005