Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAna do Carmo Lombardi Teves Alterado mais de 7 anos atrás
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.