Upload
humberto-costa
View
1.268
Download
0
Embed Size (px)
Citation preview
DCC – IME/USP Programação Orientada a Objetos 1
Uma Visão Geral de UML
Prof. Fabio KonIME/USP
Apresentação baseada em slides de Kendall V. Scott
DCC – IME/USP Programação Orientada a Objetos 2
Linguagem de ModelagemUnificada
UML é uma linguagem padrão da OMG para
• visualização,
• especificação,
• construção e
• documentação
de software orientado a objetos.
DCC – IME/USP Programação Orientada a Objetos 3
Visualização
• A existência de um modelo visual facilita acomunicação e faz com que os membros deum grupo tenham a mesma idéia do sistema.
• Cada símbolo gráfico tem uma semânticabem definida.
DCC – IME/USP Programação Orientada a Objetos 4
Especificação
É uma ferramenta poderosa para aespecificação de diferentes aspectosarquiteturais e de uso de um sistema.
DCC – IME/USP Programação Orientada a Objetos 5
Construção
• Geração automática de código a partir domodelo visual
• Geração do modelo visual a partir do código
• Ambientes de desenvolvimento de softwareatuais permitem:– movimentações em ambos sentidos e
– manutenção da consistência entre as duas visões.
DCC – IME/USP Programação Orientada a Objetos 6
Documentação
Pode incluir artefatos como:• Deliverables (documentos como
especificação de requisitos, especificaçõesfuncionais, planos de teste, etc.).
• Materiais que são importantes paracontrolar, medir, e refletir sobre um sistemadurante o seu desenvolvimento eimplantação.
DCC – IME/USP Programação Orientada a Objetos 7
Descrição Arquitetônica
UML oferece uma forma padrão de sedesenhar as “plantas” (como em arquitetura)de um sistema de forma a incluir
• aspectos abstratos (processos de negócio,funcionalidades do sistema)
• aspectos concretos (classes C++/Javaesquemas de bancos de dados, componentesde software reutilizáveis)
DCC – IME/USP Programação Orientada a Objetos 8
Razões para Modelar
• Comunicar a estrutura e o comportamentodesejado de um sistema.
• Visualizar e controlar a arquitetura de umsistema.
• Para melhorar o nosso entendimento de umsistema e, assim, expor oportunidades paramelhorias e reutilização.
• Para administrar os riscos e trade-offs.
DCC – IME/USP Programação Orientada a Objetos 9
Diagramas Estruturais
Usados para visualizar, especificar, construir edocumentar aspectos estáticos de umsistema
• diagrama de classes• diagrama de pacotes• diagrama de objetos• diagrama de componentes• diagrama de implantação
DCC – IME/USP Programação Orientada a Objetos 10
Usos Comuns paraDiagramas de Classes
• Modelar o vocabulário do sistema, em termos dequais abstrações fazem parte do sistema e quaiscaem fora de seus domínios.
• Modelar as colaborações/interações (sociedadesde elementos que trabalham em conjuntooferencendo algum comportamento cooperativo).
• Modelagem lógica dos dados manipulados pelosistema (servindo de base para a definição formaldo modelo da base de dados).
DCC – IME/USP Programação Orientada a Objetos 11
Notação para Classes
Nome
Atributos
Operações
DCC – IME/USP Programação Orientada a Objetos 12
Notações Alternativas
Nome
Atributos
Operações
Responsabilidades
Nome
Atributos
OperaçõesNome
itálico abstrata
DCC – IME/USP Programação Orientada a Objetos 13
Especificação do Acesso
Nome
+ atrib1- atrib2
+ op1- op2# op3
+ public
- private
# protected
DCC – IME/USP Programação Orientada a Objetos 14
Relacionamentos
São conexões entre classes:
1. dependência
2. generalização
3. associação
DCC – IME/USP Programação Orientada a Objetos 15
Dependência
É uma relação do tipo “usa” na qual mudançasna implementação de uma classe podem causarefeitos em outra classe que a usa.
Exemplo: uma classe usa a outra.
Window
handleEvent()
Event
DCC – IME/USP Programação Orientada a Objetos 16
Generalização
É uma relação do tipo “é um” entre uma coisageral (superclasse) e uma coisa maisespecífica (subclasse).
Shape
RectangleCircle
DCC – IME/USP Programação Orientada a Objetos 17
Associação
É uma relação estrutural na qual classes ouobjetos estão interconectados.
Uma associação entre objetos é chamada deuma ligação (link).
EmpresaPessoa
DCC – IME/USP Programação Orientada a Objetos 18
Ornamentos para Associações
• nome
• papel
• multiplicidade
• agregação
• composição
DCC – IME/USP Programação Orientada a Objetos 19
Nome da Associação
descreve a natureza da relação:
pode indicar a direção:
EmpresaPessoatrabalha p/
EmpresaPessoa trabalha p/
DCC – IME/USP Programação Orientada a Objetos 20
Papéis
• Classes e objetos podem assumir papéisdiferentes em diferentes momentos.
EmpresaPessoaempregado
empregador
DCC – IME/USP Programação Orientada a Objetos 21
Multiplicidade
• Valores possíveis: valor exato, intervalo, ou* para “muitos”.
• Exemplo:
EmpresaPessoa1..*
1
DCC – IME/USP Programação Orientada a Objetos 22
Agregação
É uma relação do tipo “todo/parte” ou “possuium” na qual uma classe representa uma coisagrande que é composta de coisas menores.
Departamento
Instituto
( diamante vazio )
DCC – IME/USP Programação Orientada a Objetos 23
Composição
É um tipo especial de agregação na qual aspartes são inseparáveis do todo.
Frame
Window
( diamante cheio )
DCC – IME/USP Programação Orientada a Objetos 24
Classes de Associação
Uma classe de associação possui aspropriedades de classes e de associações:
EmpresaPessoa
Empregodescrição
dataDeContrataçãosalário
DCC – IME/USP Programação Orientada a Objetos 25
Interfaces
É uma coleção de operações que possui umnome. É usada para especificar um tipo deserviço sem ditar a sua implementação.
Observer
«interface»Observer
update()
DCC – IME/USP Programação Orientada a Objetos 26
Interfaces e Relacionamentos
Uma interface pode participar degeneralizações, associações e dependências.
Observer
Tracker
PeriodicObserver
Observation
DCC – IME/USP Programação Orientada a Objetos 27
Realização
É uma relação entre uma interface e a classeque a implementa, i.e., que provê o serviçodefinido pela interface.
Uma classe pode realizar (implementar) váriasinterfaces.
Observer
TargetTracker«interface»Observer
update()
DCC – IME/USP Programação Orientada a Objetos 28
DCC – IME/USP Programação Orientada a Objetos 29
Ornamentos e Extensibilidade
Um ornamento é algo como uma nota que adicionatexto ou algum elemento gráfico ao modelo.
UML oferece vários mecanismos que podem serutilizados para estender a linguagem “oficial”.
• estereótipos
• valores rotulados (tagged values)
• restrições
DCC – IME/USP Programação Orientada a Objetos 30
Notas
É um símbolo gráfico contendo texto oufiguras oferecendo algum comentário oudetalhes sobre um elemento de um modelo.
Check with Mikeon this.
See encrypt.ps
See http://www.softdocwiz.com
DCC – IME/USP Programação Orientada a Objetos 31
Estereótipos
É uma extensão do vocabulário de UML quepermite a criação de um tipo básico novo queé específico ao problema que está sendoresolvido.
«interface»Observer
update()
«control»TargetTracker
DCC – IME/USP Programação Orientada a Objetos 32
Estereótipos Padrão em UML
cerca de 50, incluindo:• become (indica uma dependência na qual
um objeto se torna outro)• enumeration (especifica um tipo enumerado
incluindo seus possíveis valores)• utility (uma classe na qual todos os valores e
atributos pertencem à classe (e não às suasinstâncias)
DCC – IME/USP Programação Orientada a Objetos 33
Valores Rotulados
Permite a especificação de propriedades deelementos de um modelo:
GL Account{persistent}
TargetTracker{release = 2.0}
DCC – IME/USP Programação Orientada a Objetos 34
Restrições
Especifica uma condição que deve sersatisfeita pelo sistema.
Portfolio
Bank Account
Person
Corporation{secure}
{or}
DCC – IME/USP Programação Orientada a Objetos 35
Pacotes
• Um mecanismo para organizar elementos deum modelo (classes, diagramas, etc. ) emgrupos.
• Cada elemento de um modelo pertence a umúnico pacote. O seu nome dentro do pacotedeve ser único.
DCC – IME/USP Programação Orientada a Objetos 36
Um Diagrama de Pacotes
• Arcabouço para construção de sistemas distribuídosadaptativos (de Francisco Silva2).
DCC – IME/USP Programação Orientada a Objetos 37
Diagrama de Objetos
Mostra um conjunto de objetos e seusrelacionamentos em um certo instante em tempode execução.
ime: Instituto
comp: Departmento
nome = “MAC”
p1: Pessoa
ID = “84724”
: Contato
ramal = “6000”
p2: Pessoa
ID = “87684”
DCC – IME/USP Programação Orientada a Objetos 38
Componente
É uma parte de um sistema que pode sersubstituída e que oferece umaimplementação de um conjunto deinterfaces.
Exemplos práticos:• Biblioteca de carga dinâmica (DLL)• Componente CORBA• Enterprise Java Bean (EJB)
DCC – IME/USP Programação Orientada a Objetos 39
Notação para Componentes
Escalonador
-------------------------------------------------------------
signal.cpp
DCC – IME/USP Programação Orientada a Objetos 40
DCC – IME/USP Programação Orientada a Objetos 41
Nó
Representa um elemento físico capaz deoferecer recursos computacionais.
Em geral, possui pelo menos memória eprocessador.
DCC – IME/USP Programação Orientada a Objetos 42
Diagrama de Implantação
: Kioskdeploysuser.exe
c: Consoledeploys
config.exe
s: Serverdeploys
dbadmin.exe
: RAID farm
«10-T Ethernet»
«RS-232»
DCC – IME/USP Programação Orientada a Objetos 43
Diagrama de Implantação
: Clientdeploys
mozilla.exe
w: WebServerdeploysapache
a: AppServerdeploysJBoss
: RAID farm« HTTP »
«Fast Ethernet»
1
*
DCC – IME/USP Programação Orientada a Objetos 44
Diagramas Comportamentais
Usados para visualizar, especifcar, construir edocumentar aspectos dinâmicos de umsistema
• diagrama de casos de uso• diagrama de seqüência• diagrama de colaboração• diagrama de estados• diagrama de atividades
DCC – IME/USP Programação Orientada a Objetos 45
Casos de Uso e Atores
• Um caso de uso é uma seqüência de ações,incluindo variantes, que um sistema realizaa fim de gerar um resultado observável deinteresse para um ator.
• Um ator é um papel (ou conjunto de papéis)que um usuário desempenha quandoparticipa de um caso de uso.
DCC – IME/USP Programação Orientada a Objetos 46
Fluxos de Eventos
• O fluxo de eventos principal descreve ocaso em que tudo corre bem.
• Fluxos de eventos excepcionais cobrem asvariações que podem ocorrer quandodiferentes coisas dão errado ou quando algopouco comum acontece.
DCC – IME/USP Programação Orientada a Objetos 47
Um Diagrama de Caso de Uso
CompraMaterial
GeraRelatório de
Compra
Atualiza Estoque
DCC – IME/USP Programação Orientada a Objetos 48
Organização de Casos de Uso
• pacotes
• generalização
• inclusão
• extensão
DCC – IME/USP Programação Orientada a Objetos 49
Pacotes de Casos de Uso
Pode ser útil para distribuir trabalho para sub-grupos de trabalho.
Estoque
Cria Novo
Estoque
VisualizaEstoque
AgregaEstoques
GeraRelatórioMensal
DCC – IME/USP Programação Orientada a Objetos 50
Generalização
• Análoga à generalização/especialização declasses.
AutenticaUsuário
VerificaSenha
AnalisaImpressão
Digital
DCC – IME/USP Programação Orientada a Objetos 51
Inclusão
• O estereótipo «include» indica que um casoinclui o outro.
• Permite fatorar comportamento comum avários casos.
AutenticaUsuário
EncomendaLivro
RastreiaEncomenda
«include» «include»
DCC – IME/USP Programação Orientada a Objetos 52
Extensão
Pode-se usar o estereótipo «extend» paraindicar que um caso estende o outro.
Útil para fatorar comportamentoincomum/não-padrão.
EncomendaLivro
EncomendaUrgentíssima
«extend»
DCC – IME/USP Programação Orientada a Objetos 53
DCC – IME/USP Programação Orientada a Objetos 54
Interações e Mensagens
• Uma interação é um comportamento composto datroca de um conjunto de mensagens entre um grupode objetos a fim de atingir um determinado objetivo.
• Uma mensagem é uma comunicação entre objetosque resulta na transmissão de informação com ointuito de que alguma atividade será realizada.
DCC – IME/USP Programação Orientada a Objetos 55
Diagrama de Seqüência
• É um diagrama de interações que enfatiza aordem temporal das mensagens.• Uma linha de vida é uma linha tracejadavertical que representa o tempo de vida de umobjeto.• Um foco de controle é um retângulo finovertical sobreposto à linha de vida que mostra operíodo durante o qual um objeto está realizandouma ação.
DCC – IME/USP Programação Orientada a Objetos 56
Diagrama de Seqüência
: Ticket Agentc: Client
«create»setItinerary(i)
calculateRoute()route
DCC – IME/USP Programação Orientada a Objetos 57
DCC – IME/USP Programação Orientada a Objetos 58
Diagrama de Colaboração
• É um diagrama de interação que enfatiza aorganização dos objetos que participam dainteração.• Um caminho é uma ligação entre objetos,possivelmente com um estereótipo «local».• Números de seqüência indicam a ordemtemporal das mensagens em um ou maisníveis.
DCC – IME/USP Programação Orientada a Objetos 59
Diagrama de Colaboração
: Transaction
c: Client
1: «create»
p: ODBCProxy
2: setActions (a,d,o)3: «destroy»
2.1: setValues(d,3,4)2.2: setValues(a,“CO”)
«global»
DCC – IME/USP Programação Orientada a Objetos 60
DCC – IME/USP Programação Orientada a Objetos 61
Diagrama de Estados
• Diagrama de Estados
• Representa– os possíveis estados que um sistema pode
assumir e
– as possíveis transições entre os estados
DCC – IME/USP Programação Orientada a Objetos 62
DCC – IME/USP Programação Orientada a Objetos 63
Diagrama de Atividades
• É um tipo específico de Diagrama deEstados
• Útil para modelar fluxo de trabalho(workflow)
• Representa as atividades que afetam oestado do sistema e os fluxos que levam deuma atividade a outra.
• É usado para modelar processos de negócioe workflows
DCC – IME/USP Programação Orientada a Objetos 64
Exemplo deDiagrama de Atividade
Dormir
Filho se prepara
Levantar Tomar café
Escovar dente Vestir-se
Sair uninho: Carro
[despertador toca]
estômago: órgão
DCC – IME/USP Programação Orientada a Objetos 65
That’s All Folks!
• Por hoje é só pessoal!