UML Introdução

Preview:

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

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!

Recommended