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

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

PESC/COPPE/UFRJ - Toacy C. Oliveira Modelagem Dinâmica – Diagrama de Sequência Toacy. Oliveira - PESC/COPPE/UFRJ.

Apresentações semelhantes


Apresentação em tema: "PESC/COPPE/UFRJ - Toacy C. Oliveira Modelagem Dinâmica – Diagrama de Sequência Toacy. Oliveira - PESC/COPPE/UFRJ."— Transcrição da apresentação:

1

2 PESC/COPPE/UFRJ - Toacy C. Oliveira Modelagem Dinâmica – Diagrama de Sequência Toacy. Oliveira - PESC/COPPE/UFRJ

3 PESC/COPPE/UFRJ - Toacy C. Oliveira Modelagem Dinâmica  Todo sistema tem uma estrutura estática e um comportamento dinâmico  A UML provê diagramas para capturar e descrever os aspectos estáticos e dinâmicos  A modelagem dinâmica serve para demonstrar como os objetos se interagem dinamicamente em diferentes momentos da execução de um sistema Toacy. Oliveira - PESC/COPPE/UFRJ

4 PESC/COPPE/UFRJ - Toacy C. Oliveira Diagramas  Diagramas de Interação Seqüência Colaboração  Diagrama de Estados  Diagrama de Atividades Toacy. Oliveira - PESC/COPPE/UFRJ

5 PESC/COPPE/UFRJ - Toacy C. Oliveira Diagramas de Interação  Usados quando se deseja representar o comportamento de vários objetos dentro de um único caso de uso, a partir das mensagens que são passadas entre eles.  Objetivo: definir um contexto de caso de uso, estabelecer os objetos que interagem e seus relacionamentos.  É um termo genérico que se aplica a dois tipos de diagramas que enfatizam interações entre objetos: seqüência e colaboração. Seqüência: foco no na seqüência temporal das mensagens Colaboração: foco no relacionamento entre os objetos que trocam mensagens

6 PESC/COPPE/UFRJ - Toacy C. Oliveira DIAGRAMAS DE INTERAÇÃO  Cenários são utilizados para descrever como os casos de uso são realizados como interações entre objetos.  São desenvolvidos para auxiliar a identificar os objetos e as interações necessárias entre os mesmos para a ocorrência das funcionalidades especificadas em um caso de uso.  Documentam decisões sobre como as responsabilidades especificadas em um caso de uso são distribuídas entre os objetos/classes no sistema.  Servem de meio de comunicação entre os desenvolvedores e os usuários para a definição do comportamento desejado do sistema.  Cada caso de uso é representado por uma rede de cenários - cenário primário (Seqüência Típica de Eventos do caso de uso) e cenários secundários (Seqüências Alternativas do caso de uso). Toacy. Oliveira - PESC/COPPE/UFRJ

7 PESC/COPPE/UFRJ - Toacy C. Oliveira Duas formas de representação  Expressam informações bastante similares mas de maneira diferente Diagrama de seqüência:  Interação enfatizando o tempo de seqüência  Mostra os objetos participando em interações de acordo com suas linhas de vida e as mensagens que trocam Diagrama de colaboração:  Interação enfatizando o relacionamento entre os objetos Toacy. Oliveira - PESC/COPPE/UFRJ

8 PESC/COPPE/UFRJ - Toacy C. Oliveira Diagramas de Sequência

9 PESC/COPPE/UFRJ - Toacy C. Oliveira Diagrama de sequência Tempo (top-down) ObjetoA ObjetoB [se novo] > mensagem mensagem (auto delegação) valor de retorno > (caixa de)ativação condição de guarda mensagem síncrona objeto símbolo de destruição linha de vida

10 PESC/COPPE/UFRJ - Toacy C. Oliveira Termos e conceitos  Objetos  Linhas de vida  Mensagens  Focos de controle

11 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Objetos  Apresentados na dimensão horizontal do diagrama  A ordem dos objetos não é considerada. Pode dispô-los de forma a tornar o diagrama “mais legível”.  Objetos tem nomes - obj:Classe Ex.: joão:Dentista :Floricultor (um objeto floricultor não identificado)

12 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Objetos

13 PESC/COPPE/UFRJ - Toacy C. Oliveira Linhas de Vida  Dimensão vertical do diagrama  Apresentam o tempo de vida dos objetos  Pode apresentar a ativação ou a desativação dos objetos Indicam que os objetos estão executando algo (foco de controle) Caixas de ativação podem ser empilhadas indicando chamadas recursivas (ver objeto jose no slide anterior)  Podem representar a criação... ...e a destruição de objetos

14 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Linhas de Vida Linhas de vida new() (Caixas de) Ativação kill() Criação Destruição

15 PESC/COPPE/UFRJ - Toacy C. Oliveira Mensagens  Objetos interagem através da troca de mensagens Setas sólidas que vão do objeto solicitante para o solicitado (ou para o próprio objeto: auto-delegação) São rotulados com os nomes dos estímulos mais os argumentos (ou valores dos argumentos) do estímulo

16 PESC/COPPE/UFRJ - Toacy C. Oliveira Mensagens - Tipos  Tipos de ação que uma mensagem pode representar: Chamada  Invocação a uma operação em um objeto Um objeto pode mandar uma chamada para si próprio  Resultando na execução local de uma operação Retorno  Representa o retorno de um valor para o objeto que chamou a operação. Pode ou não ser representada. Criação Destruição new() > kill() >

17 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Mensagens - Representações SímboloSignificado Mensagem simples que pode ser síncrona ou assíncrona Mensagem de retorno (opcional) Mensagem síncrona Mensagem assíncrona ou

18 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Mensagens mensagens Auto-delegação

19 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Mensagens – Condições de Guarda  Podem apresentar condições de guarda:condições em que a mensagem é enviada [condição de guarda] :Aluno:Sistema :Impressora login() sistemaOk matricula() turmaCheia [sem vaga] matriculado imprimirRelatório() [com vaga] Matrícula

20 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Mensagens - Iteração  Uma mensagem pode ser enviada repetidas vezes * mensagem(...)

21 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Diagrama de Colaboração

22 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Diagrama de Colaboração  Descreve como os objetos se interagem, da mesma forma que o diagrama de sequência  O foco deste diagrama é um conjunto específico de objetos (espaço de objetos)  O diagrama de seqüência foca o tempo  Apresenta os objetos e suas ligações, como também a forma como as mensagens são enviadas entre os objetos ligados

23 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ objeto 1: nome da classe objeto 2 objeto 3: nome da classe :nome da classe 1: evento 2: operação 3: operação (lista de parâmetros) 4: operação (lista de parâmetros) 5: operação (lista de parâmetros) Diagrama de Colaboração Objetos Ligações Mensagens 2: operação

24 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Fluxo de mensagem  uma ligação pode ter uma mensagem associada  a sintaxe da mensagem é: predecessor condição-guarda expressão- sequência valor_retornado := assinatura exemplo: 1.1 *[x=1..10]: façaAlgo( )

25 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Fluxo de mensagem predecessor  É uma expressão para sincronização de threads e caminhos, indicando que mensagens devem ser executadas antes do envio da mensagem corrente  sintax: numero_sequencial ‘,’ … ‘/’  exemplo: 1.1a, 1.1b / 1.2: continue()

26 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ  É uma expressão inteira ou caracter que representa a ordem de execução das mensagens  sintax: [inteiro | nome] [recorrencia] ‘:’  exemplo: 1: mostraJanela() 1.1: criarLista() 1.2: selecionarItem() Fluxo de mensagem expressão- sequencial

27 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ  recorrência representa uma execução condicional ou interativa  sintaxe recorrência: ‘*’ ‘[‘ cláusula-iteração ‘]’ ‘[‘ cláusula-condição ‘]’  exemplo com cláusula-iteração: 1.1 *[x= 1..n]: primo = nextPrimo(primo) Fluxo de mensagem expressão- sequencial

28 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ  exemplo com cláusula-condição: 1.1 [saldo < 0]: bloquearSaque() 1.2 [saldo > 0]: efetuarSaque() esta cláusula deve ser usada para especificar desvios  Tanto a cláusula-iteração como a cláusula-condição podem ser expressas como pseudo-códigos ou com a sintaxe da linguagem de programação usada Fluxo de mensagem expressão- sequencial

29 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Equivalência  Diagramas de Interação são semanticamente equivalentes, ou seja, indicam a “mesma” interação.

30 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ DIAGRAMA DE SEQUÊNCIA Ob1 : Cl1Ob2 : Cl2Ob3 : Cl3Ob4 : Cl4 metodo21( ) metodo31( ) metodo32( ) metodo41( ) metodo22( )

31 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ DIAGRAMA DE COLABORAÇÃO Ob1 : Cl1 Ob2 : Cl2 Ob3 : Cl3 Ob4 : Cl4 1.1.1. metodo32( ) 1. metodo21( ) 2. metodo22( )1.1. metodo31( ) 1.1.2. metodo41( )

32 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Exemplo  Um Sistema de Blog

33 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Blog: Casos de uso

34 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Blog: Diagrama de Classes

35 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Diagramas de Seqüência  Criar blog  Criar Nota  Ler conteúdo e Criar comentário  Remover Nota  Remover Comentário

36 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Criar blog

37 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Criar Nota

38 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Ler conteúdo e Criar comentário

39 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Remover Nota

40 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Remover Comentário

41 PESC/COPPE/UFRJ - Toacy C. Oliveira Toacy. Oliveira - PESC/COPPE/UFRJ Diagrama de Estados

42 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Introdução  É um diagrama que representa uma máquina de estados, enfatizando o fluxo de controle de estado para estado.  Uma máquina de estados é um gráfico de estados e transições que descrevem a resposta de um objeto ao receber um estímulo externo.  Enfatiza o comportamento interno de um objeto, de acordo com um conjunto de eventos: estados possíveis de um objeto, seu relacionamento com eventos.  Um Diagrama de Estados é composto por: estados simples e/ou estados compostos transições, incluindo eventos e ações

43 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Diagrama de Estados Exemplo para um objeto Venda início transição estado fim Em andamento Encerrada Paga Cancelada venda aberta / criarVenda fim produtos venda / tornarseCompleta pagamento recebido / registrarPagamento desistência cliente / cancelarVenda inclusão novo produto / adicionarLinhaItemVenda

44 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Diagrama de Estados  Em princípio, cada classe de um diagrama de classes possui um diagrama de estados correspondente.  Na prática, escolhe-se as classes com comportamento complexo ou importante no sistema e deriva-se os diagramas de estados correspondentes.  Finalidade do diagrama de estados: extrair operações na classe correspondente.

45 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Eventos  Um evento é a ocorrência de algum fenômeno que é reconhecido pelo objeto. Exemplos: clique de mouse, botão do teclado pressionado, mudança de ano, chamada de uma operação, etc. envolve a ocorrência de um estímulo que pode disparar uma transição de estado. é considerado instantâneo.  Eventos externos: são aqueles trocados entre o sistema e seus atores.  Eventos internos: são aqueles trocados entre os objetos do sistema.

46 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Tipos de Eventos Sinal  Especificação de uma comunicação assíncrona entre objetos o objeto emissor não depende de retorno do objeto destino para continuar o seu fluxo de controle.  Um sinal pode ser enviado: a partir de uma ação em um transição de estado, a partir da execução de uma operação.  Usa-se a assinatura do evento para rotular a transição.

47 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Tipos de Eventos Chamadas  Especificação de uma comunicação geralmente síncrona, representando a requisição de uma operação.  Quando um objeto invoca uma operação em outro objeto, o controle passa para o receptor, onde: a transição é disparada em função do evento, a operação requisitada é completada, o objeto assume um novo estado, ao término da execução da operação, o controle é devolvido ao gerador do evento.  Usa-se a assinatura da operação para rotular o evento

48 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Tipos de Eventos Tempo  Um evento de tempo é um evento que representa a passagem de tempo. Mudança  Um evento mudança é um evento que representa uma mudança no estado ou a satisfação de uma condição. Ativo Inativo quando(12:00pm) / autoTeste() após(10 segundos) / desconectar() Evento de Tempo Evento de Mudança

49 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Estado  Um estado é uma condição ou situação na vida de um objeto durante a qual ele esta satisfazendo alguma condição, realizando alguma ação ou esperando por algum evento.  O estado de um objeto é verificado pelo valor de seus atributos e relacionamentos.

50 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Nome entry / ação exit / ação do / atividade nome_evento / ação nome_evento / defer Realizada na entrada do estado Realizada na saída do estado Realizada enquanto estiver no estado Auto-transição: realizada na chegada do evento, sem sair, nem entrar novamente no estado Evento adiado: caso o evento chegue durante uma ação, ele é “enfileirado” e tratado mais tarde. Opcionais Estado  Representação gráfica: Nome do estado

51 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Estado  Exemplo de um Estado: Inicializando entry / inicializar_atributos exit / iniciar_cronômetro do / verificar_entrada tecla_pressionada / atualizar_tela clique_de_mouse / defer Ao chegar a este estado a ação (operação) inicializar_atributos é executada. Ao sair a este estado a ação (operação) iniciar_cronômetro é executada. Enquanto estiver no estado a atividade (operação) verificar_entrada é executada. Caso o evento tecla_pressionada ocorra, a ação (operação) atualizar_tela é imediatamente executada. Caso o evento clique_de_mouse chegue, enquanto alguma ação estiver sendo executada, ele é guardado para ser tratado após a execução da ação.

52 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Componentes de um Estado Componentes de um Estado  Ações de Entrada/Saída : ações a serem executadas ao entrar e sair do estado Ação: execução de um processamento atômico que resulta em uma mudança de estado ou o retorno de um valor. Uma ação é atômica por não poder ser interrompida por um evento, devendo ser executado até a sua conclusão.  Atividade : execução de um processamento não atômico que consome tempo para ser completado, podendo ser interrompido pela ocorrência de um evento. Uma atividade pode envolver a execução de um conjunto de ações. Uma atividade (ou ação) é representada por uma operação na classe correspondente.

53 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Componentes de um Estado  Transição interna : lista de ações ou atividades internas ao estado a serem executadas em resposta a eventos recebidos enquanto o objeto encontra-se no estado. Quando da ocorrência de transições internas, as ações de entrada/saída não são executadas, não havendo portanto mudança de estado.

54 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I  Estado inicial : identifica o local padrão de início do diagrama de estados. Representação gráfica :  Estado final (opcional): indica o último estado do objeto. Um diagrama de estados pode possuir mais de um estado final. Representação gráfica : Estado

55 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Transição  Uma transição é uma relação entre dois estados, indicando que um objeto no primeiro estado irá executar certas ações e entrará no segundo estado quando houver a ocorrência de um evento específico e condições particulares sejam satisfeitas. Indicam a mudança/alteração de estado do objeto. É a passagem de um estado para outro dependendo de alguma condição. Uma transição deve conectar apenas um estado com outro estado.

56 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Transição  Representação Gráfica: Nome_do_evento ( parâmetro ) [ condição ] / ação Informação trazidas pelo evento Condição a ser satisfeita para mudar de estado Ação a ser realizada na mudança de estado Mudança de estado devido a chegada de um evento Opcionais

57 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Transição clique_de_mouse (botão) [botão = esquerdo] / apresentarMenu Mudança de estado caso o evento clique_de_mouse ocorra. A informação trazida pelo evento é qual o botão foi pressionado. A condição para mudança de estado é se o botão do mouse pressionado for o esquerdo. Caso a transição ocorra a operação apresentarMenu é executada. Exemplo de uma transição:

58 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Componentes de uma Transição  Estado fonte: o estado afetado pela transição.  Evento gatilho: evento cuja recepção pelo objeto quando no estado fonte pode determinar a sua mudança de estado, desde que a sua condição de guarda seja satisfeita.  Condição de Guarda: expressão a ser avaliada quando da recepção pelo objeto de um evento gatilho. Se for verdadeira, a transição deve ocorrer.  É possível ter-se diversas transições de estado a partir de um mesmo estado fonte para um mesmo evento gatilho.  Portanto, caso nenhuma das transições que possam ser disparadas a partir da recepção de um mesmo evento gatilho tenham suas condições de guarda satisfeitas, este evento é perdido.

59 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Componentes de uma Transição  Ação: execução de um processamento atômico. Uma ação pode ser: uma chamada de uma operação do objeto ou de outro objeto visível; a criação ou destruição de um outro objeto; o envio de um sinal para um objeto.  Estado Alvo: o estado que é ativado quando a transição é completada.

60 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Transição de Estados Estado Fonte Evento gatilho Ação Estado Alvo Condição de Guarda Exemplo para um objeto Conta Corrente

61 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Aplicação  Tipicamente, o uso de Diagramas de Estado aplica-se para a modelagem dos aspectos dinâmicos: modelagem de objetos individuais, em particular, que tenham comportamento reativo  modelagem da evolução de um objeto através de seus vários casos de uso  não se obrigue a encontrar um diagrama de estados por objeto, use apenas quando for interessante do sistema como um todo; de um subsistema; de um cenário associado a um caso de uso.

62 PESC/COPPE/UFRJ - Toacy C. Oliveira Engenharia de Software A / Engenharia de Software I Modelagem  A modelagem do comportamento de (um objeto de) uma classe pode ser realizada de dois modos: estabelecer todos os estados possíveis de um objeto durante seu ciclo de vida, e depois conectá-los através de transições (abordagem usada quando não há muitos estados possíveis)  OU modelar o ciclo de vida “normal” de um objeto (desde a sua criação até a sua destruição) e depois derivar todos os estados extraordinários, secundários ou de exceção (abordagem usada quando há diversos estados possíveis).

63 PESC/COPPE/UFRJ - Toacy C. Oliveira Elaborando um Diagrama de Estados  Dicas: Identifique todos os estados do objeto, representados-os graficamente, e continuamente identifique as mudanças de estado (transições) conectando os estados envolvidos. Comece pelo estado inicial do objeto, modelando todos os estados intermediários considerando um funcionamento normal até o estado final. Posteriormente identifique os estados excepcionais (suas condições e tratamentos), conectando-os ao caminho de funcionamento normal.


Carregar ppt "PESC/COPPE/UFRJ - Toacy C. Oliveira Modelagem Dinâmica – Diagrama de Sequência Toacy. Oliveira - PESC/COPPE/UFRJ."

Apresentações semelhantes


Anúncios Google