• Nenhum resultado encontrado

UML Diagrama de Sequencia [Pt Br]

N/A
N/A
Protected

Academic year: 2019

Share "UML Diagrama de Sequencia [Pt Br]"

Copied!
46
0
0

Texto

(1)

Business Informatics Group

Institute of Software Technology and Interactive Systems Vienna University of Technology

Favoritenstraße 9-11/188-3, 1040 Vienna, Austria

phone: +43 (1) 58801-18804 (secretary), fax: +43 (1) 58801-18896 office@big.tuwien.ac.at, www.big.tuwien.ac.at

Modelagem Orientada a Objetos

Diagrama de Sequência

(2)

© BIG / TU Wien

Literature

UML @ Classroom:

An Introduction to Object-Oriented Modeling

Martina Seidl, Marion Scholz, Christian Huemer and Gerti Kappel

Springer Publishing, 2015

ISBN 3319127411

§

The lecture is based on the following book:

§ Use Case Diagram

§ Structure Modeling

§ State Machine Diagram

§ Sequence Diagram § Activity Diagram

(3)

© BIG / TU Wien

Conteúdo

§

Introdução

§

Interações e parceiros de interação

§

Mensagens

§

Fragmentos combinados

§ Branches e loops

§ Concorrência e ordem

§ Filtros e asserções

§

Elementos de linguagem adicionais

§

Tipos adicionais de diagramas de interação

(4)

© BIG / TU Wien

Introdução

§

Modelando comportamentos entre objetos

= interações entre objetos

§

Interação

§ Especifica como mensagens e dados são trocados entre parceiros de interação

§

Parceiros de interação

§ Humano (professor, administrador, …)

§ Não-humano (servidor, impressora, software executável, …)

§

Exemplos de interações

§ Conversa entre pessoas

§ Troca de mensagens entre humanos e o software

§ Protocolos de comunicação

§ Sequência de chamadas de métodos em um programa…

(5)

© BIG / TU Wien

Diagramas de Interação

§

Utilizados para especificar interações

§

Modela cenários concretos

§

Descreve sequências de comunicação em diferentes níveis de detalhe

§

Diagramas de interação mostram o seguinte:

§ Interação de um sistema com seu ambiente

§ Interação entre partes de um sistema com o objetivo de mostrar como um caso de uso específico pode ser implementado

§ Comunicação entre processos na qual os parceiros envolvidos precisam observar certos protocolos

§ Comunicação no nível da classe (chamadas de operações, comportamento entre objetos)

(6)

© BIG / TU Wien

Diagrama de Sequência

§

Diagrama com duas dimensões

§ Eixo horizontal: parceiros de interação envolvidos § Eixo vertical: ordem cronológica da interação

§

Interação = sequência de especificações de eventos

(7)

© BIG / TU Wien

Parceiros de interação

§

Parceiros de interação são mostrados como linhas de vida

§

Cabeça da linha de vida

§ Retângulo que contém a expressão nomePapel:Classe

§ Papéis são um conceito mais geral que objetos

§ Objeto pode realizar diferentes papéis durante seu tempo de vida

§

Corpo da linha de vida

§ Vertical, linha tracejada (em geral)

§ Representa o tempo de vida do objeto associado com ele

Cabeça da linha de vida

Corpo da linha de vida

(8)

© BIG / TU Wien

Trocando Mensagens (1/2)

§

Interação: sequência de eventos

§

Mensagem é definida por um evento de envio e um evento de

recebimento

§

Especificação de execução

§ Barra contínua

§ Utilizada para especificar quando um parceito de interação executa algum comportamento

Evento de envio Evento de recebimento

Especificação de execução

(9)

© BIG / TU Wien

Trocando Mensagens (2/2)

… em diferentes linhas de vida que trocam mensagens

… em diferentes linhas de vida

… em uma linha de vida

»Acontece antes« Ordem das mensagens:

(10)

© BIG / TU Wien

Mensagens (1/3)

§ Mensagem síncrona

§ Remetente aguarda por uma mensagem de resposta antes de continuar

§ Sintaxe do nome da mensagem: msg(par1,par2)

§ msg: o nome da mensagem

§ par: parâmetros separados por vírgulas

§ Mensagem assíncrona

§ Remetente continua, sem aguardar por uma mensagem de resposta

§ Sintaxe do nome da mensagem: msg(par1,par2)

§ Mensagem de resposta

§ Pode ser omitida se o conteúdo e a localização são óbvios

§ Sintaxe: att=msg(par1,par2):val

§ att: o valor de retorno pode ser atribuido a uma variável

§ msg: o nome da mensagem

§ par: parâmetros separados por vírgulas

§ val: valor de retorno

(11)

Mensagens (2/3)

§

Criação de objeto

§ Seta tracejada

§ Cabeça da seta aponta para a cabeça da linha de vida do objeto que será criado

§ Palavra-chave new

§

Destruição do objeto

§ Objeto é apagado

§ Grande “xis” (×) no final da linha de vida

(12)

Mensagens (3/3)

§

Mensagem found

§ Remetente de uma mensagem é desconhecido ou

não importa

§

Mensagem lost

§ Receptor de uma mensagem é desconhecido ou

não importa

§

Mensagem com gasto de tempo

§ "Mensagem com duração"

§ Normalmente mensagens são transmitidas sem qualquer gasto de tempo

§ Expressa que o tempo passa entre o envio e o recebimento de uma

mensagem

(13)

© BIG / TU Wien

Fragmentos combinados

§

Modelam várias estruturas de controle

§

12 tipos predefinidos de operadores

Operando

Operando

Fragmento Combinado

Operador

Operando

(14)

© BIG / TU Wien

Tipos de Fragmentos Combinados

Operador Propósito

alt Interação alternativa

opt Interação opcional

loop Interação repetida

break Interação com exceção

seq Ordem fraca

strict Ordem estrita

par Interação concorrente

critical Interação atômica

ignore Interação irrelevante

consider Interação relevante

assert Interação com afirmação

neg Interação inválida

(15)

© BIG / TU Wien

Fragmento

alt

§ Para modelar sequências alternativas

§ Similar a um comando switch em Java

§ Guardas são utilizadas para selecionar um caminho que será executado

§ Guardas

§ Modeladas entre colchetes

§ default: true

§ predefinido: [else]

§ Múltiplos operandos

§ Guardas precisam ser disjuntas para evitar comportamento não-determinístico

(16)

© BIG / TU Wien

Fragmento

opt

§

Para modelar uma

sequência opcional

§

Execução é dependente da

guarda

§

Exatamente um operando

§

Similar a um comando

if

sem o

else

§

Equivalente ao fragmento

alt

com dois operandos,

em que um deles é vazio

(17)

Fragmento

loop

§

Para expressar que uma sequência deve ser executada repetidamente

§

Exatamente um operando

§

Palavra-chave loop seguida pelo número mínimo/máximo de iterações

(

min..max

)

ou (

min,max

)

§ default: (*) .. sem limite superior

§

Guarda

§ Avaliada assim que o número mínimo de iterações acontecer

§ Verificada para cada iteração dentro dos limites (min,max)

§ Se a guarda for avaliada para falso, a execução do loop termina

Notações alternativas:

loop(3,8) = loop(3..8) loop(8,8) = loop (8)

(18)

© BIG / TU Wien

Fragmento

break

§

Forma simples de tratamento de exceção

§

Exatamente um operando com uma guarda

§

Se a guarda é verdadeira:

§ Interações dentro deste operando são executadas

§ Operações restantes do fragmento circundante são omitidas

§ Interação continua no fragmento mais externo

§ Comportamento diferente do fragmento opt

Não executado se o break é executado

(19)

© BIG / TU Wien

Fragmentos

loop

and

break

- Exemplo

(20)

Fragmento

seq

§

Ordem default dos eventos

§

Sequenciamento fraco:

1. A ordem dos eventos dentro de cada um dos operando é mantida no resultado.

2. Eventos em diferentes linhas de vida em diferentes operandos pode acontecer em qualquer ordem.

3. Eventos de uma mesma linha de vida de diferentes operandos são ordenados de forma que um evento do primeiro operando ocorre antes do evento do segundo operando.

(21)

© BIG / TU Wien

Fragmento

seq

Fragment – Exemplo

(22)

© BIG / TU Wien

Fragmento

strict

§

Interação sequencial com ordem

§

Ordem das ocorrências de eventos em linhas de vida diferentes entre

diferentes operandos é importante

§ Mensagens em um operando que está mais alto no eixo vertical são sempre trocadas antes das mensagens de um operando que está mais baixo no eixo vertical

(23)

© BIG / TU Wien

Fragmento

strict

- Exemplo

(24)

Fragmento

par

24

§

Para anular a ordem cronológica entre mensagens em diferentes

operandos

§

Caminhos de execução de diferentes operandos podem ser

intercalados

§

Restrições de cada operando precisam ser respeitadas

§

Ordem dos diferentes operandos é irrelevante

(25)

© BIG / TU Wien

Fragmento

par - Exemplo

(26)

© BIG / TU Wien

Coregião

§

Para modelar eventos concorrentes de uma única linha de vida

§

Ordem das ocorrências de eventos dentro de uma coregião não é

restrita

§

Área da linha de vida a ser coberta pela coregião é marcada por

colchetes rotacionados a 90 graus

Impacto da coregião

Coregião

(27)

© BIG / TU Wien

Coregião – Exemplo

(28)

© BIG / TU Wien

Fragmento

critical

§

Área atômica na interação (um operando)

§

Para certificar que certas partes de uma interação não são

interrompidas por eventos inesperados

§

Ordem dentro do critical: ordem seq (default)

(29)

© BIG / TU Wien

Fragmento

critical

- Exemplo

(30)

© BIG / TU Wien

Fragmento

ignore

§

Para indicar mensagens irrelevantes

§

Mensagens podem ocorrer em tempo de execução mas não tem mais

significado

§

Exatamente um operando

§

Mensagens irrelevantes entre chaves após a palavra-chave

ignore

(31)

© BIG / TU Wien

Fragmento

consider

§

Para especificar mensagens que são importantes para a interação

atual

§

Exatamente um operando, dual ao fragmento ignore

§

Mensagens consideradas devem vir entre chaves após a

palavra-chave

consider

(32)

© BIG / TU Wien

ignore

vs.

consider

(33)

© BIG / TU Wien

assert

Fragment

§

Para identificar certas sequências de mensagens como obrigatórias

§

Desvios que ocorrem na realidade mas que não estão incluidas no

diagrama não são permitidas

§

Exatamente um operando

(34)

© BIG / TU Wien

Fragmento

neg

§

Para modelar interações inválidas

§

Descreve situações que não podem ocorrer

§

Exatamente um operando

§

Propósito

§ Realçar explicitamente os erros frequentes

§ Representar sequências incorretas e relevantes

(35)

© BIG / TU Wien

Referência de Interação

§

Integra um diagrama de sequência em outro diagrama de sequência

(36)

© BIG / TU Wien

Porta (Gate)

§

Permite o envio e o recebimento de mensagens além das fronteiras do

fragmento de interação

(37)

Marcador de Continuação

§ Modulariza os operandos de um fragmento alt

§ Quebra interações complexas em partes e as conecta umas as outras com marcadores

§ Marcador de início aponta para marcardor alvo

§ Sem retorno para o marcador de início (diferente de uma referência de interação)

Marcador alvo

Marcador de início

(38)

© BIG / TU Wien

Atributos Locais e Parâmetros

§

Cada diagrama de sequência é fechado por um retângulo com um

pequeno pentágonono canto superior esquerdo

§

Palavra-chave

sd

, nome do diagrama de sequência, parâmetros

(opcional)

§

Exemplo:

Opção 1: Opção 2:

void func (int par1, int par2) { int x = 0;

(39)

© BIG / TU Wien

Restrições de Tempo

§

Tipos

§ Ponto no tempo para ocorrência de evento

§ Relativo: ex, after(5sec) § Absoluto: ex., at(12.00)

§ Período de tempo entre dois eventos

§ {lower..upper}

§ Ex., {12.00..13.00}

§

Ações predefinidas

§ now: tempo atual

§ Pode ser atribuído a um atributo e então ser usado numa restrição de tempo

§ Duração: cálculo da duração da transmissão de uma mensagem

(40)

© BIG / TU Wien

Invariante de Estado

§

Afirma que uma certa condição precisa ser atendida em um certo

tempo

§

Sempre associada a uma linha de vida específica

§

Avaliação ocorre antes do evento subsequente

§

Se o invariante de estado não é verdadeira, o modelo ou a

implementação estão incorretos

§

Três notações alternativas:

(41)

© BIG / TU Wien

Quatro Tipos de Diagramas de Interação (1/4)

§

Baseados nos mesmos conceitos

§

Equivalentes para simples interações, mas com foco diferente

§

Diagrama de sequên

cia

§ Eixo vertical:

ordem cronológica

§ Eixo horizontal:

parceiros de interação

(42)

© BIG / TU Wien

Quatro Tipos de Diagramas de Interação (2/4)

§

Diagrama de

comunicação

§ Modela os relacionamentos entre parceiros de interação

§ Foco: Quem comunica com quem

§ Tempo não é uma dimensão separada

§ Ordem de mensagem por classificação decimal

(43)

© BIG / TU Wien

Quatro Tipos de Diagramas de Interação (3/4)

§

Diagrama de tempo

§ Mostra mudanças de estado dos parceiros de interação em resposta às ocorrências de eventos

§ Eixo vertical: parceiros de interação

§ Eixo horizontal: ordem cronológica

(44)

© BIG / TU Wien

Quatro Tipos de Diagramas de Interação (4/4)

§

Diagrama de visão geral de interação

§ Visualiza a ordem de diferentes interações

§ Permite colocar vários diagramas de interação em uma ordem lógica

§ Conceitos básicos de notação do diagrama de atividades

(45)

© BIG / TU Wien

Elementos de Notação (1/2)

Nome Notação Descrição

Linha de vida Parceiros de interação envolvidos na

comunicação

Evento de destruição

Tempo no qual um parceiro de interação deixa de existir

Fragmento

combinado Construções de controle

(46)

© BIG / TU Wien

Elementos de Notação (2/2)

Nome Notação Descrição

Mensagem síncrona

Remetente aguarda por uma mensagem de resposta

Mensagem de resposta

Resposta para uma mensagem síncrona

Comunicação assíncrona

Remetente continua seu próprio

trabalho após o envio da mensagem assíncrona

Mensagem lost Mensagem para um destinatário

desconhecido

Mensagem found

Mensagem de um remetente desconhecido

Referências

Documentos relacionados

A aliltricloroestanana (S)-1 possui preferência pelo ataque a face Si do aldeído, enquanto o aldeído tem preferência por ataque a sua face Re, ou seja, um caso de “par

Despite seeds germinated more rapidly at temperatures of 30 and 35 °C, there were no big variations between treatments in the germination index, due to great germination

The main objectives of this data analysis are divided into two classes: i) General Statistics: give an overview of structured information on Wikipedia as a whole, showing raw numbers

Esta zona é a correspondente às indentações realizadas no perfil 2 da amostra com temper bead apresentando valores de dureza semelhantes ao do metal base mesmo com uma

Às dispu- tas entre estados são suscetíveis de serem solucionadas por acordos que só deveriam ser decididas pela guerra, instituição que HEGEL considerava ao mesmo tempo

O primeiro passo para introduzir o MTT como procedimento para mudança do comportamento alimentar consiste no profissional psicoeducar o paciente a todo o processo,

Como, em summa, essa especie de parentesco, sem depender substancialm ente da consangüinidade, só existia e se m antinha p ela com m unidade do culto pecu liar e exclu sivo

Therefore, the analysis of suitability of the existing transportation network for riding bicycle in Coimbra should address two important aspects: (i) identifying