1 aula 10 uml (cont.). 2003/2004 programação orientada para objectos 2 uml: unified modelling...

34
1 Aula 10 UML (cont.)

Upload: internet

Post on 17-Apr-2015

113 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

1

Aula 10

UML (cont.)

Page 2: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos2

UML: Unified Modelling Language

Linguagem gráfica de modelação Grady Booch Ivar Jacobson James Rumbaugh

Diagramas representam modelo simplificado

Ferramenta importante de comunicação

Page 3: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos3

Diagramas em UML

Estáticos: De classes De objectos

Casos de Utilização Sequência Colaboração Estado Actividade Implementação

Page 4: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos4

Diagramas de sequência

Diagramas onde se anotam as interacções entre objectos dispostas como uma sequência temporal Mostram um conjunto de objectos e mensagens

trocadas por esses objectos num dado contexto Mensagem = transferência de informação Ênfase na cronologia das mensagens

Page 5: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos5

Tipos de mensagens

Simples Síncrona Assíncrona Retorno

Page 6: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos6

Acções

Associadas às mensagens trocadas entre objectos Call

Invoca operação do objecto receptor Pode ser enviada ao próprio objecto

Return Retorna ao objecto emissor

Send Envia sinal ao objecto

Create Cria um objecto

Destroy Destrói um objecto

Mensagens síncronas.

Mensagens de retorno.

Mensagens assíncronas.

Explicitamente ilustradas nos diagramas.

Page 7: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos7

Diagramas de sequência

Dimensão vertical denota o tempo Tempo avança no sentido descendente

Objecto que envia mensagem tem de estar activo (possuir o controlo)

Linhas de controlo ou activação podem ser duplicadas

Page 8: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos8

Notação

Objecto1 Objecto2

mensagem()

respostaLinhade vida.

Controlo ou activação.

Page 9: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos9

Notação

Objecto1

Objecto2

mensagem()

«create»

resposta

«destroy»

Page 10: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

Editor

void edita()

Documento

«query»+ void desenha(Ecrã ecrã)- boolean podeRemoverGlifo()«update»+ void faz(Acção acção)- void removeGlifo()- Glifo glifoRemovido()- void guardaAcçãoFeita(Acção acção)

Acção

boolean está_feita

«query»boolean estáFeita()«update»void faz()void desfaz()boolean éFazível()

«friend»

Desloca InsereGlifo RemoveGlifo

documento

acções

Parágrafo

Glifo0..1

**

parágrafos

glifos

glifo_removido

{um glifo ou está num parágrafo, ou numa acção, nunca nos dois.}

documento *

última_acção_desfeita

cursor

cursor

Caractere Sorriso Moldura

Page 11: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

: Editor : Documento

: Acção

nova_acção = new Remove(documento)

faz(nova_acção)

é_fazível = éFazível()

podeRemoverGlifo()

[é_fazível] faz()

removeGlifo()

glifo_removido = glifoRemovido()

guardaAcçãoFeita(nova_acção)

actualiza()

Indica a alguémque o documento foi alterado, pelo que precisa de ser visualizado de novo.

Page 12: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos12

Diagramas de actividade

Diagramas que descrevem sequências de processamento do sistema Nível conceptual

Casos de utilização

Nível de implementação Classes Operações

Mostram evolução temporal Melhoria sobre o fluxograma tradicional

Page 13: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos13

Usos comuns

Nível conceptual Detalhe de casos de utilização Descrição de fluxos envolvendo vários casos de utilização Descrição de desenvolvimentos paralelos, com

participação de vários actores Nível de implementação

Descrição rigorosa de processamento paralelo Estabelecimento de responsabilidades sobre classes e

actividades

Page 14: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos14

Usos indevidos

Representar colaboração entre objectos Solução: diagramas de sequência ou colaboração

Comportamento de objecto no tempo Solução: diagramas de estado

Page 15: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos15

Elementos

Linhas verticais de responsabilidade Actividades de início e de fim Actividade operacional Transição de actividade Comportamento condicional Barras de processamento paralelo Fluxo de objectos

Page 16: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos16

Actividade

Passo numa sequência de processamento Estado contendo uma acção e, pelo menos, uma

transição de saída Actividade pode possuir várias transições de

saída desde que identificadas por condições É possível identificar objecto responsável por

cada actividade

Page 17: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos17

Domínios de responsabilidade

Diagramas de actividade divisíveis em domínios de responsabilidade (swimlanes) Para cada domínio de responsabilidade pode-se

indicar pertença Classe Componente Estrutura organizacional …

Page 18: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos18

Notação: transição

Início da actividade

Fim da actividade

Transição

Page 19: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos19

Notação: actividade

passo

Início da actividade

Fim da actividade

Actividade

Transição

Page 20: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos20

Notação:divisórias de domínio de responsabilidade

passo

Início da actividade

Fim da actividade

Actividade

Transição

Divisória dedomínio deresponsabilidade.

Divisórias dedomínio deresponsabilidade.

Page 21: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos21

Notação: controlo

passo

[G]

[¬G]

Início da actividade

Fim da actividade

Actividade

Transição

Entroncamento

Condição(guarda)

Condição(guarda)

Divisória dedomínio deresponsabilidade. Ramificação

Page 22: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos22

Exemplo

++i;

[i ≠ n]

[i = n]

int i = 0;double potência = 1.0;

potência *= x;

{PC: 0 ≤ n}

{0 ≤ n i = 0 potência = 1}

{0 ≤ n 0 ≤ i < n potência = xi}

{0 ≤ n 0 < i ≤ n potência = xi}

{0 ≤ n i = n potência = xn}

Page 23: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos23

Notação: actividade composta

[G]

Actividade A Actividade B

[¬ G]

Nome daactividade

Page 24: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos24

Exemplo: actividade composta

[Entrega Urgente]

Entrega 24 horas Entrega Normal

[¬ Entrega Urgente]

Entrega Encomenda

Diagrama de actividades parcial da actividade composta Entrega Encomenda.

Page 25: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos25

Notação: paralelismoActividade A

Actividade B1 Actividade B2

Actividade C

Subdivisão ou ponto de divergência (fork).

Junção ou ponto de convergência (join).

Page 26: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos26

Exemplo: paralelismo

Receber Encomenda

Preencher Encomenda Envio Factura

Fecho Encomenda

Recepção PagamentoEntrega Encomenda

Diagrama de actividade contendo actividade composta Entrega Encomenda.

Page 27: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

Receber Encomenda

Preencher EncomendaEnvio Factura

Fecho Encomenda

Recepção Pagamento

Entrega Encomenda

Serviços Fornecimento Serviço Clientes Serviço Financeiro

Page 28: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos28

Desenvolvimento de um modelo

Capacidade de abstracção Resistir à tentação de introduzir no modelo

pormenores que são irrelevantes para o problema em causa

Modelo de análise vs. modelo de desenho Casos de uso

Page 29: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos29

Identificação de classes

Substantivos ou frases substantivas Nomes comuns podem ser "papeis" que um

objecto tem relativamente a outro: correspondem a atributos ou relações (frota, dono)

Frases substantivas: muitas vezes correspondem a atributos de classes

Nomes próprios: instâncias

Page 30: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos30

Identificação de relações

Verificar frases com que unimos os conceitos Procurar "ser", "ter", "ser constituído por", etc. Verbos que não denotam acção Por vezes, verbos que denotam estados Relação "é parecido com" e "é como" leva a

identificar classes que são, provavelmente, "irmãs", ou seja, especializações de uma generalização comum, provavelmente abstracta

Page 31: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos31

Identificação de operações

Verbos Modificadores: verbos que denotam acções Predicados: verbos que denotam estados

(temporários ou permanentes)

Page 32: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos32

Identificação de propriedades

Inspectores Não correspondem forçosamente a atributos Exemplo:

Cor de um veículo (valor guardado por um atributo)

Preço de uma reserva (calculado a partir do número de dias da reserva e do valor diário da reserva)

Page 33: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos33

Identificação de atributos

Adjectivos Reflectem o estado do conceito Valor de uma dada propriedade

Propriedade permanente: atributo constante Propriedade transitória: atributo variável, ou

propriedade calculável

Page 34: 1 Aula 10 UML (cont.). 2003/2004 Programação Orientada para Objectos 2 UML: Unified Modelling Language Linguagem gráfica de modelação Grady Booch Ivar

2003/2004 Programação Orientada para

Objectos34

Aula 10: Sumário

UML (continuação da aula 9) Diagramas de sequência Diagramas de actividade

Desenvolvimento de um modelo Identificação de classes ou conceitos Identificação de relações Identificação de operações Identificação de propriedades Identificação de atributos