Módulo II Introdução à UML - Alessandro Cerqueira - 2005
Introdução à Unified Modeling Language (UML)
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: Introdução à UML - Alessandro Cerqueira - 2005
– Simula (primeira linguagem a incorporar elementos OO)
• 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 Introdução à UML - Alessandro Cerqueira - 2005
• OOA e OOD
• 1991 – Grady Booch • 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”)
Introdução à UML - Alessandro Cerqueira - 2005
• Novas versões dos métodos, incorporando técnicas uns dos outros (OOSE, OMT-2, Booch’93) – ReconheciaReconhecia-se que havia pontos mais fortes em cada um dos 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
Introdução à UML - Alessandro Cerqueira - 2005
Submissão final na OMG, Sep ‘97 Retorno do público
Primeira submissão na OMG (Object Management Group), Jan ´97 Parceiros UML Web - June ´96
OOPSLA ´95
Outros Métodos
UML 1.1 UML 1.0
UML 0.9 Unified Method 0.8
Método Booch
OMT (Rumbaugh) Rumbaugh)
OOSE (Jacobson) Jacobson)
8
UML e seu Contexto de Utilização • UML - Linguagem Unificada de Modelagem • É uma linguagem para a representaç representação de modelos Introdução à UML - Alessandro Cerqueira - 2005
• Entretanto só só isto não é suficiente. suficiente. • També Também é necessá necessário definir QUEM faz O QUE, QUE, QUANDO é feito e COMO atingir um certo objetivo. objetivo. • També Também é necessá necessário determinar qual será será o Processo de Desenvolvimento a ser utilizado. utilizado.
Equipe de Desenvolvimento
Linguagem de Modelagem
Processo Unificado
9
Introdução à UML - Alessandro Cerqueira - 2005
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.
• 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 Before and after conditions
Statecharts
Gamma, et al Frameworks and patterns,
HP Fusion Booch
Operation descriptions and message numbering
Introdução à UML - Alessandro Cerqueira - 2005
Booch method
Embley
Rumbaugh
Singleton classes and high-level view
OMT
Jacobson
Wirfs-Brock
OOSE
Responsibilities
Shlaer - Mellor
Odell
Object lifecycles
Classification
11
Estrutura Vertical da UML
Introdução à UML - Alessandro Cerqueira - 2005
• 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. – 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
Introdução à UML - Alessandro Cerqueira - 2005
Use Case Use Case Diagrams Diagrama de Diagrams Seqüências
Scenario Scenario Diagrams Diagrama Diagrams de Colaborações
Scenario Scenario de Diagrama Diagrams Diagrams Gráficos de Estados
Use Case Use Case Diagrams Diagrama Diagrams de Casos de Uso
State State Diagrams Diagrama Diagrams de Classes
State State Diagrams Diagrama Diagrams de Objetos
State State Diagrams Diagrama Diagrams de Componentes
Modelos do Sistema
Component Component Diagrams Diagrama Diagrams
Diagrama de Atividades
de Implantação
13
Estrutura Transversal da UML • Os diagramas da UML descrevem: – Itens
Introdução à UML - Alessandro Cerqueira - 2005
– Relacionamentos – Mecanismos de Extensibilidade
• Quatro tipos de Itens: – Itens Estruturais – Itens Comportamentais – Itens de Agrupamento – Itens Anotacionais
14
Estrutura Transversal da UML (Itens) Polígolo
Nome da Classe
• Itens Estruturais
Introdução à UML - Alessandro Cerqueira - 2005
–
Visibilidade
Atributos
+ origem : Ponto
<< construtor >> Ex: Classes, Interfaces, Colaboraç Colaborações, ões+,new ( ) << ações de desenho >> Casos de Uso, Uso, Classes Ativas, Ativas, + mover(p : Ponto) Componentes e Nós. + redimensionar(e : Escala) + apresentar( ) # invalidarRegião( )
• Itens Comportamentais
– Ex: Interaç Interações e Máquinas de
• Itens de Agrupamento
Responsabilidades Estado- - Gerenciar o estado do polígono - - Manipular suas transformações básicas
– Ex: Notas
Operações
Responsabilidades
– Ex: Pacotes e Subsistemas
• Itens Anotacionais
Assinatura
Nome da Interface
IApplication
15
Estrutura Transversal da UML (Relacionamentos) • Quatro tipos de Relacionamentos
Introdução à UML - Alessandro Cerqueira - 2005
– Dependência 0..1
– Associação
empregador
emprega
* 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
Introdução à UML - Alessandro Cerqueira - 2005
– Valores Atribuídos – Restrições
<< container>>
FilaDeEventos {versão = 3.2} Estereótipos
Valor Atribuído
+ adicionar (e : Evento) + remover (e : Evento) << consulta >> + tamanho ( ) : Integer << funções de ajuda >> + reordenar ( )
{adicionar ordenado}
17
Diagrama de Casos de Uso • Apresenta a funcionalidade do sistema como é vista pelos usuários Fazer ligação de conferência
Introdução à UML - Alessandro Cerqueira - 2005
Fazer Ligação estende o relacionamento
Rede Celular ator
Uso Programado Usuário associação
Receber ligação adicional
Receber Ligação Casos de uso
Fronteira do sistema
Telefone Celular
18
Diagrama de Casos de Uso • Construído nas primeiras fases do desenvolvimento (levantamento e especificação de requisitos)
Introdução à UML - Alessandro Cerqueira - 2005
• Propósitos – Especificar o contexto de um sistema – 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
Introdução à UML - Alessandro Cerqueira - 2005
Diagrama de Classes • Apresenta o vocabulário do sistema e quais são os dados manipulados pelo sistema.
Empresa
agregação
classe
nome
multiplicidade Departamento
Escritório
localização
nome : Nome
endereço : String voz : Número
restrição papel
{subconjunto}
membro
generalização
associação EscritórioCentral
gerente Pessoa
nome : Nome códigoFuncionário : Inteiro título : String obterFoto( p : Foto ) obterSom ( ) obterInformaçãoDeContato ( )_ obterRegistrosPessoais ( )
atributos operações InformaçãoDeContato endereço : String
RegistroPessoal
dependência
interface
códigoDeImposto históricoDeEmprego salário
IInformaçãoSegura
20
Diagrama de Classes • Construído e refinado através do desenvolvimento
• Propósitos Introdução à UML - Alessandro Cerqueira - 2005
– Modelar e dar nomes aos conceitos no sistema – 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
Introdução à UML - Alessandro Cerqueira - 2005
e : Empresa
d1 : Departamento
d2 : Departamento
nome = “Vendas”
nome = “P&D” 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 cargo = “VP de Vendas”
endereço : “Rua da Fonte, 87”
22
Diagrama de Objetos • Construído durante a análise e o projeto • Propósito Introdução à UML - Alessandro Cerqueira - 2005
– Ilustrar a estrutura dos dados e objetos – 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
Introdução à UML - Alessandro Cerqueira - 2005
executável encontre.exe
index.html
dbacs.dll
bibliotecas componentes
nateng.dll
24
Diagrama de Componentes • Parte da especificação da arquitetura • Propósitos: Introdução à UML - Alessandro Cerqueira - 2005
– Organizar o código-fonte – 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
Introdução à UML - Alessandro Cerqueira - 2005
nós
conexões servidor de cache
servidor de cache nós
Rede local
servidor primário
servidor
servidor
servidor
26
Diagrama de Implantação • Parte da especificação da arquitetura • Propósitos Introdução à UML - Alessandro Cerqueira - 2005
– Especificar a distribuição dos componentes – 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) Introdução à UML - Alessandro Cerqueira - 2005
objeto
interação
linha de vida rótulo de seqúência mensagem
criação chamada
foco do controle recursão retorno
destruição
28
Diagrama de Colaboração
Introdução à UML - Alessandro Cerqueira - 2005
• Apresenta o comportamento dinâmico (orientado a mensagens)
vínculo mensagem
objeto
29
Diagramas de Sequência e Colaboração • Propósitos do Diagrama de Seqüência – Modelar o fluxo de controle
Introdução à UML - Alessandro Cerqueira - 2005
– Ilustrar cenários típicos
• 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 Introdução à UML - Alessandro Cerqueira - 2005
estado final
estado
transição
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
Introdução à UML - Alessandro Cerqueira - 2005
– Modelar estados dos objetos de interface • Janelas (Em sistemas convencionais) • Páginas HTML (Em sistemas Web)
32
Diagrama de Atividades
Introdução à UML - Alessandro Cerqueira - 2005
estado inicial
• Apresenta o comportamento dinâmico (orientado a atividades)
Selecionar local
estado de ação
Contratar arquiteto
Desenvolver plano
Orçar plano
ramificação 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
Concluir Construção
estado final
: CertificadoDeHabitese [concluído]
33
Diagrama de Atividades • Propósitos – Modelar o fluxo de trabalho
Introdução à UML - Alessandro Cerqueira - 2005
– Modelar operações