A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula 10 UML (cont.).

Apresentações semelhantes


Apresentação em tema: "Aula 10 UML (cont.)."— Transcrição da apresentação:

1 Aula 10 UML (cont.)

2 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 2003/2004 Programação Orientada para Objectos

3 Diagramas em UML Estáticos: Casos de Utilização Sequência Colaboração
De classes De objectos Casos de Utilização Sequência Colaboração Estado Actividade Implementação 2003/2004 Programação Orientada para Objectos

4 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 2003/2004 Programação Orientada para Objectos

5 Tipos de mensagens Simples Síncrona Assíncrona Retorno
2003/2004 Programação Orientada para Objectos

6 Acções Associadas às mensagens trocadas entre objectos Call Return
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. 2003/2004 Programação Orientada para Objectos

7 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 2003/2004 Programação Orientada para Objectos

8 Notação Objecto1 Objecto2 Linha de vida. Controlo ou activação.
mensagem() resposta Linha de vida. Controlo ou activação. 2003/2004 Programação Orientada para Objectos

9 Notação Objecto1 Objecto2 «create» mensagem() resposta «destroy»
2003/2004 Programação Orientada para Objectos

10 Editor Documento documento parágrafos * void edita() «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) cursor Parágrafo «friend» {um glifo ou está num parágrafo, ou numa acção, nunca nos dois.} documento acções * glifos cursor * Acção 0..1 última_acção_desfeita Glifo boolean está_feita glifo_removido «query» boolean estáFeita() «update» void faz() void desfaz() boolean éFazível() Caractere Sorriso Moldura Desloca InsereGlifo RemoveGlifo

11 : Editor : Documento nova_acção = new Remove(documento) : Acção faz(nova_acção) é_fazível = éFazível() podeRemoverGlifo() [é_fazível] faz() removeGlifo() glifo_removido = glifoRemovido() guardaAcçãoFeita(nova_acção) Indica a alguém que o documento foi alterado, pelo que precisa de ser visualizado de novo. actualiza()

12 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 2003/2004 Programação Orientada para Objectos

13 Usos comuns Nível conceptual Nível de implementação
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 2003/2004 Programação Orientada para Objectos

14 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 2003/2004 Programação Orientada para Objectos

15 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 2003/2004 Programação Orientada para Objectos

16 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 2003/2004 Programação Orientada para Objectos

17 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 2003/2004 Programação Orientada para Objectos

18 Notação: transição Início da actividade Transição Fim da actividade
2003/2004 Programação Orientada para Objectos

19 Notação: actividade Início da actividade Transição Fim da actividade
passo 2003/2004 Programação Orientada para Objectos

20 Notação:divisórias de domínio de responsabilidade
Início da actividade Divisória de domínio de responsabilidade. Divisórias de Transição Fim da actividade passo Actividade 2003/2004 Programação Orientada para Objectos

21 Notação: controlo Divisória de domínio de responsabilidade.
Início da actividade Entroncamento Divisória de domínio de responsabilidade. Condição(guarda) Condição (guarda) Ramificação [¬G] Transição [G] Fim da actividade passo Actividade 2003/2004 Programação Orientada para Objectos

22 Exemplo [i = n] [i ≠ n] {PC: 0 ≤ n} int i = 0; double potência = 1.0;
potência = xi} [i ≠ n] potência *= x; {0 ≤ n  i = n  potência = xn} ++i; {0 ≤ n  0 < i ≤ n  potência = xi} 2003/2004 Programação Orientada para Objectos

23 Notação: actividade composta
Nome da actividade [G] [¬ G] Actividade A Actividade B 2003/2004 Programação Orientada para Objectos

24 Exemplo: actividade composta
Diagrama de actividades parcial da actividade composta Entrega Encomenda. Entrega Encomenda [Entrega Urgente] [¬ Entrega Urgente] Entrega 24 horas Entrega Normal 2003/2004 Programação Orientada para Objectos

25 Notação: paralelismo Subdivisão ou ponto de divergência (fork).
Actividade A Subdivisão ou ponto de divergência (fork). Actividade B1 Actividade B2 Junção ou ponto de convergência (join). Actividade C 2003/2004 Programação Orientada para Objectos

26 Exemplo: paralelismo Diagrama de actividade contendo actividade composta Entrega Encomenda. Receber Encomenda Fecho Encomenda Preencher Encomenda Envio Factura Entrega Encomenda Recepção Pagamento 2003/2004 Programação Orientada para Objectos

27 Serviços Fornecimento
Serviço Clientes Serviço Financeiro Receber Encomenda Envio Factura Preencher Encomenda Recepção Pagamento Entrega Encomenda Fecho Encomenda

28 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 2003/2004 Programação Orientada para Objectos

29 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 2003/2004 Programação Orientada para Objectos

30 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 2003/2004 Programação Orientada para Objectos

31 Identificação de operações
Verbos Modificadores: verbos que denotam acções Predicados: verbos que denotam estados (temporários ou permanentes) 2003/2004 Programação Orientada para Objectos

32 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) 2003/2004 Programação Orientada para Objectos

33 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 2003/2004 Programação Orientada para Objectos

34 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 2003/2004 Programação Orientada para Objectos


Carregar ppt "Aula 10 UML (cont.)."

Apresentações semelhantes


Anúncios Google