Modulo a UML
Transcript of Modulo a UML
Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
MMóódulo II dulo II IntroduIntroduçção ão ààUnified Modeling Language Unified Modeling Language (UML)(UML)
Objetivo Apresentar os principais
características e elementos
da UML
2Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
HistHistóória da Orientaria da Orientaçção a Objetosão a Objetos•• Anos 60 Anos 60 -- 7070
–– COBOL, FORTRAN, CCOBOL, FORTRAN, C
–– MMéétodos de Antodos de Anáálise e Projeto Estruturadolise e Projeto Estruturado
•• Final dos Anos 60: Final dos Anos 60: –– Simula (primeira linguagem a incorporar elementos OO)Simula (primeira linguagem a incorporar elementos OO)
•• Anos 80 e InAnos 80 e Iníício dos Anos 90cio dos Anos 90–– ADA, ADA, SmalltalkSmalltalk, C++, C++
–– Primeiros mPrimeiros méétodos OOtodos OO
•• Restante dos Anos 90: InRestante dos Anos 90: Iníício de atracio de atraçção por OOão por OO–– Java, UML, Java, UML, Unified ProcessUnified Process
–– ProliferaProliferaçção de Mão de Méétodos OOtodos OO•• MMéétodo: Notatodo: Notaçção + Atividadesão + Atividades
3Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
4Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
5Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
MMéétodos OO Precursorestodos OO Precursores
•• 1989 1989 –– WirfsWirfs --Brock Brock •• Cartões CRC ( Classe Cartões CRC ( Classe –– Responsabilidade Responsabilidade -- Colaborador)Colaborador)
•• 1991 1991 –– CoadCoad / / YourdonYourdon•• OOA e OOD OOA e OOD
•• 1991 1991 –– Grady BoochGrady Booch•• MMéétodo BOOCHtodo BOOCH
•• 1991 1991 –– James RumbaughJames Rumbaugh•• MMéétodo OMT (todo OMT ( Object Modeling TechniqueObject Modeling Technique))
•• 1992 1992 –– IvarIvar JacobsonJacobson•• OBJECTORY OOSEOBJECTORY OOSE
•• 1994 1994 –– ColemanColeman•• MMéétodo todo FusionFusion (Mistura de conceitos presentes nos (Mistura de conceitos presentes nos
MMéétodos todos BoochBooch , OMT, CRC e M, OMT, CRC e Méétodos Formais).todos Formais).
6Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Antes da UMLAntes da UML•• VVáários mrios méétodos surgem entre 89 e 94 (todos surgem entre 89 e 94 (““Guerra dos Guerra dos
mméétodostodos””))
•• Novas versões dos mNovas versões dos méétodos, incorporando ttodos, incorporando téécnicas uns dos cnicas uns dos outros (outros (OOSE, OMTOOSE, OMT--2, Booch2, Booch’’9393))
–– ReconheciaReconhecia--se que havia pontos mais fortes em cada um dos se que havia pontos mais fortes em cada um dos mméétodostodos
•• Parceria entre Parceria entre BoochBooch e e RumbaughRumbaugh ((RationalRational) ) –– 19941994
–– Unified MethodUnified Method (UM)(UM)
•• RationalRational incorpora a incorpora a Objective SystemsObjective Systems de (de (JacobsonJacobson) ) ((ObjectoryObjectory) ) –– 19951995–– parceria parceria BoochBooch//RumbaughRumbaugh estendida comestendida com JacobsonJacobson
–– Unified Modeling LanguageUnified Modeling Language (UML)(UML)
7Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
EvoluEvoluçção da UMLão da UML
MMéétodo todo BoochBooch OMT OMT
((RumbaughRumbaugh))
Unified Method 0.8OOPSLA ´95
OOSEOOSE
((JacobsonJacobson))
Outros Métodos
UML 0.9Web - June ´96
Retorno do
público
Submissão final na OMG, Sep ‘97
Primeira submissão na OMG
(Object Management Group), Jan ´97
UML 1.1
Aceitação pela OMG, Nov 1997UML 1.3
UML 1.0Parceiros UML
UML 1.4 (2001)
UML 2.0
8Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
UML e UML e seu Contextoseu Contexto de de UtilizaUtilizaççãoão
•• UML UML -- Linguagem Unificada de ModelagemLinguagem Unificada de Modelagem
•• ÉÉ uma linguagem para uma linguagem para a a representarepresentaçção ão de de modelosmodelos
•• Entretanto sEntretanto sóó isto não isto não éé suficientesuficiente..
•• TambTambéémm éé necessnecessááriorio definirdefinirQUEMQUEM faz faz O QUEO QUE, , QUANDOQUANDO ééfeito feito e e COMOCOMO atingir atingir umumcerto objetivocerto objetivo..
•• TambTambéém m éé necessnecessáário determinarrio determinarqual serqual seráá oo ProcessoProcesso de de Desenvolvimento Desenvolvimento a sera ser utilizadoutilizado..
Equipe de
Desenvolvimento
Linguagem de
Modelagem
Processo
Unificado
9Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
UML eUML e seu Contextoseu Contexto dede UtilizaUtilizaççãoão
•• A estratA estratéégia principal foi padronizar uma gia principal foi padronizar uma linguagem linguagem de modelagemde modelagem e não padronizar um processo.e não padronizar um processo.
•• Remove as diferenRemove as diferençças desnecessas desnecessáárias entre as rias entre as notanotaçções dos mões dos méétodos todos BoochBooch, OMT e OOSE., OMT e OOSE.
•• LinguagemLinguagem padrãopadrão de de modelagem adotada pelamodelagem adotada pela OMG OMG ((Object Management GroupObject Management Group)), , orgão orgão de de padronizapadronizaçção ão da tecnologia da tecnologia OO.OO.
•• TambTambéém m éé definido o definido o RUPRUP ((Rational Unified ProcessRational Unified Process))–– MMéétodotodo: : NotaNotaççãoão + + workflowworkflow de desenvolvimentode desenvolvimento (quem, o (quem, o que, quando e como)que, quando e como)
–– Podemos fazer realizar o desenvolvimento utilizando a UML Podemos fazer realizar o desenvolvimento utilizando a UML como padrão como padrão notacional notacional sem necessariamente utilizar o RUPsem necessariamente utilizar o RUP
10Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
ContribuiContribuiçções dadas para a UML ões dadas para a UML Meyer
Before and after
conditions
Harel
Statecharts
Gamma, et al
Frameworks and patterns,
HP Fusion
Operation descriptions and
message numbering
Embley
Singleton classes and
high-level view
Wirfs-Brock
Responsibilities
Odell
Classification
Shlaer - Mellor
Object lifecycles
Rumbaugh
OMT
Booch
Booch method
Jacobson
OOSE
11Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Estrutura Estrutura Vertical Vertical da da UMLUML
•• A UML define A UML define novenove tipostipos diferentesdiferentes de de diagramasdiagramasparapara visualizarvisualizar, , especificarespecificar, , construirconstruir e e documentardocumentaraspectos estaspectos estááticosticos e e dinâmicosdinâmicos de um de um sistemasistema::–– Visão EstVisão Estááticatica:: casoscasos dede usouso, classes,, classes, objetosobjetos,, componentescomponentesee implantaimplantaççãoão..
–– Visão DinâmicaVisão Dinâmica:: seqseqüüênciaência,, colaboracolaboraççãoão,, grgrááficosficos dede estadosestadosee atividadesatividades..
•• Cada diagrama Cada diagrama define define umauma visãovisão–– Apresentado Apresentado sob um sob um determinado ponto determinado ponto de vistade vista
–– Fornece uma representaFornece uma representaçção parcial ão parcial do do sistemasistema
–– Deve Deve ser ser semanticamente consistente semanticamente consistente com com outras visõesoutras visões
12Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
EstruturaEstrutura VerticalVertical dada UMLUML
Use CaseDiagramsUse CaseDiagramsDiagrama de Casos de Uso
ScenarioDiagramsScenarioDiagramsDiagrama de Colaborações
StateDiagramsStateDiagramsDiagrama deComponentes
ComponentDiagramsComponentDiagramsDiagrama de Implantação
StateDiagramsStateDiagramsDiagrama de
Objetos
ScenarioDiagramsScenarioDiagramsDiagrama de Gráficos de Estados
Use CaseDiagramsUse CaseDiagramsDiagrama deSeqüências
StateDiagramsStateDiagramsDiagrama de
Classes
Diagrama de Atividades
Modelos doSistema
13Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Estrutura Transversal da UMLEstrutura Transversal da UML
•• Os diagramas da UML descrevem:Os diagramas da UML descrevem:–– ItensItens
–– Relacionamentos Relacionamentos
–– Mecanismos de ExtensibilidadeMecanismos de Extensibilidade
•• Quatro tiposQuatro tipos dede ItensItens::–– Itens EstruturaisItens Estruturais
–– Itens ComportamentaisItens Comportamentais
–– ItensItens dede AgrupamentoAgrupamento
–– Itens AnotacionaisItens Anotacionais
14Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Estrutura Transversal da UMLEstrutura Transversal da UML((ItensItens))
•• Itens EstruturaisItens Estruturais–– Ex: Classes, Interfaces, Ex: Classes, Interfaces, ColaboraColaboraççõesões, , CasosCasos de de UsoUso, Classes , Classes AtivasAtivas, , ComponentesComponentes e e NNóóss..
•• Itens ComportamentaisItens Comportamentais–– Ex:Ex: InteraInteraççõesões e e MMááquinas quinas de de EstadoEstado
•• ItensItens de de AgrupamentoAgrupamento–– Ex:Ex: PacotesPacotes e e SubsistemasSubsistemas
•• ItensItens AnotacionaisAnotacionais–– Ex:Ex: NotasNotas
Polígolo+ origem : Ponto
<< construtor >>
+ new ( )
<< ações de desenho >>
+ mover(p : Ponto)
+ redimensionar(e : Escala)
+ apresentar( )
# invalidarRegião( )
Responsabilidades
- - Gerenciar o estado
do polígono
- - Manipular suas
transformações básicas
Nome da Classe
Visibilidade
Assinatura
Operações
Atributos
Responsabilidades
IApplication
Nome da Interface
15Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Estrutura Transversal da UMLEstrutura Transversal da UML((RelacionamentosRelacionamentos))
•• Quatro tiposQuatro tipos de de RelacionamentosRelacionamentos
–– DependênciaDependência
–– AssociaAssociaççãoão
–– GeneralizaGeneralizaççãoão
–– RealizaRealizaççãoão
0..1 0..1 emprega emprega **
empregador funcionempregador funcionááriorio
ObsObs: A agrega: A agregaçção ão éé um tipoum tipoparticular departicular de associaassociaççãoão
16Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Estrutura Transversal da UMLEstrutura Transversal da UML((MecanismosMecanismos de de ExtensibilidadeExtensibilidade))
•• Três tipos Três tipos de de Mecanismos Mecanismos de de ExtensibilidadeExtensibilidade
–– EstereEstereóótipostipos
–– Valores AtribuValores Atribuíídosdos
–– RestriRestriççõesões << container>>
FilaDeEventos{versão = 3.2}
+ adicionar (e : Evento)
+ remover (e : Evento)
<< consulta >>
+ tamanho ( ) : Integer
<< funções de ajuda >>
+ reordenar ( )
Estereótipos Valor Atribuído
{adicionar ordenado}
17Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de Casos Casos de de UsoUso
•• Apresenta Apresenta a a funcionalidade funcionalidade do do sistema como sistema como éévista vista pelos usupelos usuááriosrios
Usuário
Rede Celular
Telefone Celular
Fazer Ligação
Receber
Ligação
Uso
Programado
Receber ligação
adicional
Fazer ligação de
conferência
Fronteira do sistema
estende o relacionamento
associação
ator
Casos
de uso
18Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de Casos Casos de de UsoUso
•• ConstruConstruíído nas primeiras fases do nas primeiras fases do do desenvolvimento desenvolvimento ((levantamento levantamento e e especificaespecificaççãoão de de requisitosrequisitos))
•• PropPropóósitossitos
–– Especificar Especificar o o contexto contexto de um de um sistemasistema
–– Capturar os requisitos Capturar os requisitos de um de um sistemasistema
–– Validar Validar a a arquitetura arquitetura do do sistemasistema
–– Guiar Guiar a a implementaimplementaçção ão e e gerar casos para gerar casos para testestestes
•• Desenvolvido pelos Desenvolvido pelos analistasanalistas, , especialistas especialistas do do domdomíínionio eesteakholderssteakholders..
19Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
DiagramaDiagrama de Classesde Classes•• ApresentaApresenta o o vocabulvocabuláário rio do do sistema sistema eequais são os quais são os dadosdados manimani--pulados pelopulados pelosistemasistema..
Empresa agregaçãoclasse
multiplicidade
Departamento
nome : Nomelocalização
Escritório
nome
endereço : String
voz : Número
papel
membro
{subconjunto}
restrição
associação
gerente
Pessoa
nome : Nome
códigoFuncionário : Inteiro
título : String
obterFoto( p : Foto )
obterSom ( )
obterInformaçãoDeContato ( )_
obterRegistrosPessoais ( )
atributos
operações
generalização
EscritórioCentral
InformaçãoDeContato
RegistroPessoal
dependência
endereço : String
códigoDeImposto
históricoDeEmprego
salário
IInformaçãoSegura
interface
20Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de Classesde Classes
•• ConstruConstruíído do e e refinado atravrefinado atravéés s do do desenvolvimentodesenvolvimento
•• PropPropóósitossitos
–– Modelar Modelar e e dar nomes aos conceitos dar nomes aos conceitos no no sistemasistema
–– Especificar Especificar as as colaboracolaboraççõesões
–– Especificar Especificar o o esquema lesquema lóógico gico do do banco banco de dadosde dados
•• Desenvolvido por Desenvolvido por analistasanalistas, , projetistasprojetistas e e implementadoresimplementadores
21Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de ObjetosObjetos
•• Apresenta instâncias Apresenta instâncias e e ligaligaççõesõese : Empresa
Vínculos ou
ligações
objetos
d1 : Departamento
nome = “Vendas”
d2 : Departamento
nome = “P&D”
d3 : Departamento
nome = “Vendas RJ”
p : Pessoa
nome = “José da Silva”
códigoDoFuncionário = 4362
cargo = “VP de Vendas”
valores dos atributos
gerente objeto anônimo
: InformaçãoDeContato
endereço : “Rua da Fonte, 87”
22Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de ObjetosObjetos
•• ConstruConstruíído durante do durante a a ananáálise lise e o e o projetoprojeto
•• PropPropóósitosito
–– Ilustrar Ilustrar a a estrutura estrutura dos dados e dos dados e objetosobjetos
–– Representar Representar um um estado momentâneo da estrutura estado momentâneo da estrutura dos dados e dos dados e objetosobjetos
•• Utilizado pelos Utilizado pelos analistasanalistas, , projetistasprojetistas e e implementadoresimplementadores
23Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de ComponentesComponentes
•• ApresentaApresenta a a estrutura estrutura de de arquivos que arquivos que compõem compõem a a implementaimplementaççãoão
página
index.html
encontre.htmlexecutável
encontre.exe
dbacs.dll
nateng.dllbibliotecas
componentes
24Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de ComponentesComponentes
•• Parte da especificaParte da especificaçção da arquiteturaão da arquitetura
•• PropPropóósitossitos::
–– Organizar Organizar o o ccóódigodigo--fontefonte
–– Construir uma versão executConstruir uma versão executáávelvel
–– Especificar Especificar o o banco banco de dados de dados ffíísicosico
•• Desenvolvido por Desenvolvido por projetistasprojetistas e e programadoresprogramadores
25Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de ImplantaImplantaççãoão•• Apresenta Apresenta a a topologia topologia do hardware do do hardware do sistemasistema
servidor de
cache
nós
conexões
nós
servidor de
cache
Rede local
servidor
primário
servidor servidor servidor
26Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de ImplantaImplantaççãoão
•• Parte da especificaParte da especificaçção da arquiteturaão da arquitetura
•• PropPropóósitossitos
–– EspecificarEspecificar a a distribuidistribuiçção ão dos dos componentescomponentes
–– Identificar complicaIdentificar complicaçções ões de de desempenhodesempenho
•• Desenvolvido por Desenvolvido por projetistasprojetistas, , engenheiros engenheiros de de rederede e e engenheiros engenheiros de de sistemasistema..
27Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de SeqSeqüüênciaência
•• Apresenta Apresenta o o comportamento dinâmico comportamento dinâmico ((orientado pelo orientado pelo tempo)tempo)
objeto
linha de vida
mensagem
rótulo de
seqúência
foco do controle
retorno
destruição
criação
interação
chamada
recursão
28Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de ColaboraColaboraççãoão
•• ApresentaApresenta o o comportamento dinâmico comportamento dinâmico ((orientado orientado a a mensagensmensagens))
mensagem
objeto
vínculo
29Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
DiagramasDiagramas de de Sequência Sequência eeColaboraColaboraççãoão
•• PropPropóósitossitos do do Diagrama Diagrama de de SeqSeqüüênciaência
–– ModelarModelar oo fluxofluxo dede controlecontrole
–– Ilustrar cenIlustrar cenáários trios tíípicospicos
•• PropPropóósitos sitos dodo Diagrama Diagrama de de ColaboraColaboraççãoão
–– Modelar Modelar o o fluxo fluxo de de controlecontrole
–– Ilustrar Ilustrar a a coordenacoordenaçção da estrutura ão da estrutura e e controlecontrole dos dos objetos objetos
•• São semanticamente equivalentesSão semanticamente equivalentes!!
30Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de GrGrááficos ficos de de EstadoEstado
•• Apresenta Apresenta o o comportamento dinâmico comportamento dinâmico ((orientado orientado a a eventoseventos))
estado inicial
estado finalestado
Máquina de Estados
transição interna
evento
ação
estado aninhadotransição
estado composto
guarda
31Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de GrGrááficos ficos de de EstadoEstado
•• PropPropóósitossitos
–– Modelar Modelar o o ciclo ciclo de de vida vida dos dos objetosobjetos
–– Modelar estados Modelar estados dosdos objetosobjetos de interfacede interface•• Janelas (Em sistemas convencionais)Janelas (Em sistemas convencionais)
•• PPááginas HTML (Em sistemas Web)ginas HTML (Em sistemas Web)
32Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de AtividadesAtividades
•• Apresenta Apresenta o o comportamento comportamento dinâmico dinâmico ((orientado orientado a a atividadesatividades))
estado de
ação
ramificação
seqüêncial
bifurcação concorrente
estado da atividade
com submáquina
união concorrente
fluxo de objetos
estado final
estado inicial
Selecionar local
Contratar arquiteto
Desenvolver plano
Orçar plano
[rejeitado]
[senão]
Trabalhar no local Trabalhar c/ setores
Concluir Construção: CertificadoDeHabitese
[concluído]
33Introd
uIntrod
u ççãoão
ààUML
UML --
Alessandro Cerqu
eira
Alessandro Cerqu
eira --
2005
2005
Diagrama Diagrama de de AtividadesAtividades
•• PropPropóósitossitos
–– Modelar Modelar o o fluxo fluxo de de trabalho trabalho
–– Modelar operaModelar operaççõesões