65
DCC – IME/USP Programação Orientada a Objetos 1 Uma Visão Geral de UML Prof. Fabio Kon IME/USP Apresentação baseada em slides de Kendall V. Scott

UML Introdução

Embed Size (px)

Citation preview

Page 1: UML Introdução

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

Page 2: UML Introdução

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.

Page 3: UML Introdução

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.

Page 4: UML Introdução

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.

Page 5: UML Introdução

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.

Page 6: UML Introdução

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.

Page 7: UML Introduçã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)

Page 8: UML Introdução

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.

Page 9: UML Introdução

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

Page 10: UML Introduçã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).

Page 11: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 11

Notação para Classes

Nome

Atributos

Operações

Page 12: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 12

Notações Alternativas

Nome

Atributos

Operações

Responsabilidades

Nome

Atributos

OperaçõesNome

itálico abstrata

Page 13: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 13

Especificação do Acesso

Nome

+ atrib1- atrib2

+ op1- op2# op3

+ public

- private

# protected

Page 14: UML Introdução

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

Page 15: UML Introduçã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

Page 16: UML Introdução

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

Page 17: UML Introdução

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

Page 18: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 18

Ornamentos para Associações

• nome

• papel

• multiplicidade

• agregação

• composição

Page 19: UML Introduçã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/

Page 20: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 20

Papéis

• Classes e objetos podem assumir papéisdiferentes em diferentes momentos.

EmpresaPessoaempregado

empregador

Page 21: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 21

Multiplicidade

• Valores possíveis: valor exato, intervalo, ou* para “muitos”.

• Exemplo:

EmpresaPessoa1..*

1

Page 22: UML Introdução

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 )

Page 23: UML Introdução

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 )

Page 24: UML Introdução

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

Page 25: UML Introdução

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()

Page 26: UML Introdução

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

Page 27: UML Introdução

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()

Page 28: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 28

Page 29: UML Introdução

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

Page 30: UML Introdução

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

Page 31: UML Introdução

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

Page 32: UML Introdução

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)

Page 33: UML Introdução

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}

Page 34: UML Introdução

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}

Page 35: UML Introdução

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.

Page 36: UML Introdução

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).

Page 37: UML Introdução

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”

Page 38: UML Introdução

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)

Page 39: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 39

Notação para Componentes

Escalonador

-------------------------------------------------------------

signal.cpp

Page 40: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 40

Page 41: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 41

Representa um elemento físico capaz deoferecer recursos computacionais.

Em geral, possui pelo menos memória eprocessador.

Page 42: UML Introdução

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»

Page 43: UML Introdução

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

*

Page 44: UML Introdução

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

Page 45: UML Introdução

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.

Page 46: UML Introdução

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.

Page 47: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 47

Um Diagrama de Caso de Uso

CompraMaterial

GeraRelatório de

Compra

Atualiza Estoque

Page 48: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 48

Organização de Casos de Uso

• pacotes

• generalização

• inclusão

• extensão

Page 49: UML Introduçã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

Page 50: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 50

Generalização

• Análoga à generalização/especialização declasses.

AutenticaUsuário

VerificaSenha

AnalisaImpressão

Digital

Page 51: UML Introdução

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»

Page 52: UML Introdução

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»

Page 53: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 53

Page 54: UML Introdução

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.

Page 55: UML Introdução

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.

Page 56: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 56

Diagrama de Seqüência

: Ticket Agentc: Client

«create»setItinerary(i)

calculateRoute()route

Page 57: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 57

Page 58: UML Introdução

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.

Page 59: UML Introdução

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»

Page 60: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 60

Page 61: UML Introdução

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

Page 62: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 62

Page 63: UML Introdução

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

Page 64: UML Introdução

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

Page 65: UML Introdução

DCC – IME/USP Programação Orientada a Objetos 65

That’s All Folks!

• Por hoje é só pessoal!