Diagramas de Sequência



Documentos relacionados
4.4. UML Diagramas de interacção

Diagramas de Casos de Uso

Diagramasde Interação. Prof. Anderson Cavalcanti UFRN-CT-DCA

UML - Diagramas de Sequência

Engenharia Informática

Unified Modeling Language. Diagramas de Implementação

Uma visão mais clara da UML Sumário

UML. Diagrama de Seqüência

Diagramas de Interação da UML (Diagrama de Sequência e Diagrama de

Princípios de Análise e Projeto de Sistemas com UML

Rock In Rio - Lisboa

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação

Diagrama de transição de Estados (DTE)

Java Mail Server. Manual do Utilizador

2 Diagrama de Caso de Uso

a) Desenhe os respetivos diagramas de sequência e de colaboração associado a este caso de uso..

UML Diagramas de Interação

Questões de Concursos Públicos sobre Orientação a Objetos e UML

4.1. UML Diagramas de casos de uso

CASO DE USO. Isac Aguiar isacaguiar.com.br

Engenharia de Requisitos Estudo de Caso

UML Aula I Diagramas de Sequência e Colaboração. Ricardo Argenton Ramos

Engenharia de Software I

UML Diagramas. UML Diagramas. UML Diagrama Diagrama de Classes. UML Diagrama Diagrama de Classes

Capítulo 6. Criando um Diagrama de Caso de Uso Inicial

Programa do Curso de ESW

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)

Manual de Convenções. BPMN Business Process Modelling Notation GFI Portugal

Unified Software Development Process

UML Aula I Diagramas de Caso de Uso, Sequência e Colaboração

Wilson Moraes Góes. Novatec

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

Guia de Utilização. Acesso Universal

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Analisar através de Casos de Uso,

Análise e Projeto Orientados por Objetos

Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 1ª Fase

Unified Modeling Language. Diagramas de Colaboração

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Desenvolvimento de Sistema de Software

Guia de utilização da notação BPMN

Resolução da lista de exercícios de casos de uso

Casos de uso Objetivo:

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Sistema dinâmico de impressão da tabela de detalhes das facturas

Diagrama de entidades relacionamentos (abordado anteriormente) Diagrama de Fluxo de Dados (DFD)

Guia de Especificação de Caso de Uso Metodologia CELEPAR

BPMN. Business Process Modeling Notation. Leandro C. López Agosto

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

MANUAL DE CONSULTA RÁPIDA DO MODEM OPTIONS FOR NOKIA Copyright 2002 Nokia. Todos os direitos reservados Issue 2

Universidade do Minho Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

1 UML (UNIFIED MODELING LANGUAGE)

PHC Letras. Execute todos os movimentos com letras a receber ou a pagar e controle totalmente a situação por cliente ou fornecedor

O que representam? Diagrama de Estados. Como construir. Estado: Identificação dos Estados. Notação para estados

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

Notas de Aula 04: Casos de uso de um sistema

Generated by Foxit PDF Creator Foxit Software For evaluation only. Capitulo 1

UML Visão Geral. Índice. Introdução. Diagramas. Modelos e diagramas. Elementos de modelação. Referências

Fórmulas e Funções 7

Redes e Telecomunicações

UML 2. Gilleanes T. A. Guedes. Novatec

Modelagem de Casos de Uso (Parte 1)

Sumário. Uma visão mais clara da UML

Business Process Integration Architecture

4 O Workflow e a Máquina de Regras

Programação de Sistemas

Programação de Sistemas

EDUTec Learning. José Paulo Ferreira Lousado

Engenharia de Software III

Casos de Uso. Viviane Torres da Silva

Guia de instalação do Player Displr Windows 7, 8.1 e 10

Alteração da taxa de IVA

Microsoft Office 2010

4.2. UML Diagramas de classes

Solução de Telecontagem. Gestão de Contratos. Esta solução é indicada para sistemas de contagem de caudal usando um mínimo de recursos.

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Forms Composer. Document Producer 1. Document Producer

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

3.1 Definições Uma classe é a descrição de um tipo de objeto.

exercícios - cap. 4 1

Guia de Estudo Folha de Cálculo Microsoft Excel

Processos de gerenciamento de projetos em um projeto

Visão Artificial Para a Indústria. Manual do Utilizador

Introdução ao Microsoft Windows

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Casos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso

2. Sistemas Multi-Agentes (Multi-Agent System - MAS)

Criar um formulário do tipo Diálogo modal ; Alterar a cor de fundo de um formulário; Inserir botões de comando e caixas de texto;

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

Transcrição:

Unified Modeling Language Diagramas de Sequência José Correia, Abril 2006 (http://paginas.ispgaya.pt/~jcorreia/) UML: modelação do comportamento A modelação do comportamento de um sistema de software consiste, segundo a abordagem orientada por objectos, em dois tipos distintos de especificações: namodelação do comportamento inter-objectos - identificação dos seus padrões de trocas de mensagens - diagramas de interacção namodelação do comportamento intra-objecto - identificação dos estados em que um objecto se pode encontrar ao longo do seu ciclo de vida, dos eventos envolvidos, bem como dos seus algoritmos de implementação - diagramas de estados e de actividades A modelação de um sistema de software com base em diagramas de classes e de objectos traduz apenas as suas relações estruturais e estáticas José Correia UML - Diagramas de Sequência 2

Diagramas de interacção Um diagrama de interacção mostra um padrão de interacção entre vários objectos, com objectos e mensagens trocadas entre esses objectos por uma certa ordem diagramas de sequência dão ênfase à ordem temporal de transmissão das mensagens - ou seja, realçam a ordem pela qual as coisas acontecem diagramas de colaboração dão ênfase ao relacionamento entre os objectos os diagramas de sequência e diagramas de colaboração são colectivamente designados diagramas de interacção - os diagramas de interacção são usados para modelar casos de uso, operações, etc. A seguir é apresentado um exemplo de um diagrama de sequência, correspondente à execução de uma reserva num hotel exemplo extraído de Practical UML: A Hands-On Introduction for Developers José Correia UML - Diagramas de Sequência 3 José Correia UML - Diagramas de Sequência 4

Objectos e Linhas de Vida Cada objecto participante é representado por uma caixa em cima duma linha vertical a traço interrompido (linha de vida) no exemplo apresentado, os objectos participantes são instâncias de janela de reservas (Reservation window), cadeia de hotéis (HotelChain) e hotel Podem aparecer actores (objectos externos ao sistema), a iniciar interacções no exemplo, o objecto que inicia a sequência de mensagens é uma janela de reservas Cada linha tracejada vertical é uma linha de vida (lifeline), representando o tempo em que um objecto existe O tempo cresce de cima para baixo José Correia UML - Diagramas de Sequência 5 Mensagens Uma mensagem é uma comunicação entre objectos (emissor e receptor) que veicula informação na expectativa de provocar uma resposta (acção ou actividade) Uma mensagem é representada por uma seta horizontal do emissor para o receptor, com um nome e possíveis argumentos uma janela de reservas envia uma mensagem makereservation() para uma cadeia de hotéis (HotelChain) de seguida, a cadeia de hotéis envia uma mensagem makereservation() para um Hotel. Se o Hotel tiver quartos livres, então faz uma reserva e uma confirmação objecto1:classe1 objecto2: :Classe3 mensagem José Correia UML - Diagramas de Sequência 6

Mensagens condicionais, iteradas e com retorno O valor de retorno de uma mensagem síncrona pode ser indicado na chamada, com atribuição :=, ou na mensagem de retorno exemplo: isroom := available() isroom poderá (e, neste caso é) ser usado em mensagens e condições a seguir Também se pode escrever isroom na mensagem de retorno Uma mensagem condicional é indicada por uma condição de guarda entre parêntesis rectos [ ] exemplo: [isroom] new a mensagem só é enviada se a condição se verificar condições permitem mostrar várias sequências num único diagrama, possivelmente com bifurcações de controlo Uma mensagem iterada é indicada com asterisco *, seguido ou não de uma fórmula de iteração exemplo: *[i:=1..n] update(i) José Correia UML - Diagramas de Sequência 7 Activação ou Foco de controlo Uma activação (ou foco de controlo) mostra o período de tempo durante o qual um objecto está a executar uma acção, quer directamente quer indirectamente (através de um procedimento subordinado) Notação: barra rectangular fina sobre a linha de vida do objecto (barra de activação) a sua indicação é opcional Uma seta vai de um emissor para o topo da barra de activação da mensagem na linha de vida do receptor a barra de activação representa a duração da execução da mensagem o retorno de chamada é implícito quando o objecto perde o foco de controlo José Correia UML - Diagramas de Sequência 8

Criação e destruição de objectos Criação de objecto é representada por mensagem dirigida à própria caixa que representa o objecto (em vez de ser dirigida à linha de vida) a mensagem de criação pode ter estereótipo «create» ob1:c1 Destruição de objecto é representada por um X no fim da linha de vida do objecto mensagem de destruição pode ter estereótipo «destroy» pode ocorrer na recepção de mensagem ou no retorno de chamada objecto pode auto destruir-se ob1:c1 José Correia UML - Diagramas de Sequência 9 Mensagens Mensagens (chamadas) recursivas ou auto-chamadas no exemplo apresentado, o Hotel lança uma chamada a si próprio, para determinar se há algum quarto livre. Se houver, então o Hotel cria uma reserva e uma confirmação o asterisco na auto-chamada significa iteração (para ter a certeza que existe um quarto livre em cada um dos dias da estadia no hotel) as chamadas recursivas provocam barras empilhadas Em geral, uma acção de um objecto capaz de provocar uma resposta noutro objecto pode ser modelada como uma mensagem do primeiro objecto para o segundo objecto As mensagens podem ser síncronas, assíncronas ou indiferenciadas José Correia UML - Diagramas de Sequência 10

Mensagens síncronas Mensagem síncrona: o emissor fica parado à espera de resposta Corresponde normalmente a chamada de operação do receptor o Receptor pode ser o mesmo objecto que o Emissor Origina fluxo de controlo encaixado, com sub-sequências de mensagens a execução da operação chamada pode envolver a emissão de uma subsequência de mensagens Notação: seta cheia Opcionalmente, pode-se indicar o retorno de uma mensagem síncrona com linha a traço interrompido José Correia UML - Diagramas de Sequência 11 Exemplo: Tratar Pedido de Stock :Janela de Selecção de Pedidos Objecto tratar() :Pedido * tratar() :Linha de Pedido e:=existe?(q) :Item de Stock Quantidade pedida Mensagem Para cada linha do pedido [e= sim"]retirar(q) b:=baixo?() Para repor stock Bifurcação de controlo [b= sim ] criar() e2:encomenda [e= não ] criar() e1:encomenda Sincronização de controlo Para poder satisfazer pedido José Correia UML - Diagramas de Sequência 12

Mensagens assíncronas Mensagem assíncrona: o emissor não fica parado à espera de resposta. Uma mensagem é assíncrona se permitir que o seu emissor envie mensagens adicionais enquanto a mensagem original estiver a ser processada. Corresponde normalmente a envio de sinal entre dois objectos concorrentes (em processos ou threads separados). Originam fluxo de controlo concorrente, com sequências de mensagens concorrentes. Notação: O timing de uma mensagem assíncrona é independente do timing das mensagens intervenientes. José Correia UML - Diagramas de Sequência 13 Exemplo: Executar transacção com subtransacções concorrentes criar Adormecida à espera de sinal de subtransacção e executar t: Transacção criar criar ok restam subtransacções? s1: Sub-transacção s2: Sub-transacção ok restam subtransacções? auto-destruição do objecto José Correia UML - Diagramas de Sequência 14

Mensagens indiferenciadas Mensagem indiferenciada (ou mensagens simples): não se decide se é síncrona ou assíncrona Normalmente são usadas na modelação de interacções na fronteira do sistema entre actores e o sistema representado por um ou mais objectos Originam fluxo de controlo plano (flat), com sequência simples de mensagens Notação: José Correia UML - Diagramas de Sequência 15 Exemplo: Fazer chamada telefónica quem chama: Pessoa :Rede telefónica quem é chamado: Pessoa a {b-a < 10 seg.} b restrição temporal marca temporal nesta altura decorre a conversação levanta auscultador dá sinal de marcar marca (1) termina sinal de marcar marca (1) marca (2) dá sinal de chamada pára sinal de chamada conexão terminada poisa auscultador toca o telefone levanta auscultador pára de tocar poisa auscultador conexão terminada José Correia UML - Diagramas de Sequência 16

Exemplo: Requisição de teste-diagnóstico Nota: Exemplo extraído de Practical UML: A Hands-On Introduction for Developers O diagrama de sequência seguinte, ilustra a acção de uma enfermeira (nurse), requisitando um teste-diagnóstico num laboratório médico (medical lab), o qual depende da aprovação de uma companhia de seguros (insurance company) Existem duas mensagens assíncronas a partir da Enfermeira: pedir ao Laboratório Médico para reservar uma data para o teste pedir à Companhia de Seguros para aprovar o teste a ordem pela qual estas mensagens são enviadas, ou completadas, é irrelevante Se a Companhia de Seguros aprovar o teste (valor de retorno OK=True), então a Enfermeira marcará o teste ( schedule(t,d) ) para a data (d) fornecida pelo Laboratório Médico José Correia UML - Diagramas de Sequência 17 Requisição de teste-diagnóstico: uma possível solução... José Correia UML - Diagramas de Sequência 18

Exemplo: Falha de sub-transacção criar t: Transacção criar criar s1: Sub-transacção s2: Sub-transacção falhou matar subtransacções matar desfazer alterações José Correia UML - Diagramas de Sequência 19 Relação com diagramas de casos de uso Tipicamente, um diagrama de interacção captura um comportamento possível de um único caso de uso mostra exemplos de objectos participantes e mensagens que são trocadas entre esses objectos no âmbito do caso de uso A um caso de uso podem-se associar vários diagramas de sequência para sequências normais e sequências excepcionais de funcionamento Actores podem aparecer em diagramas de sequência, como objectos externos ao sistema normalmente iniciam as interacções José Correia UML - Diagramas de Sequência 20

Repor Bebidas de acordo com Vendas Comprar Bebida Cliente <<extend>> <<include>> Abrir a Máquina <<include>> Agente do Fornecedor Repor Bebidas Extension Point encher prateleiras <<include>> <<include>> Retirar Dinheiro Dono Fechar a Máquina Desenhe o diagrama de sequência (representando as barras de activação) correspondente ao caso de uso Comprar Bebida. Considere que a máquina de bebidas é composta por três objectos principais: Interface (painel de interface com o utilizador), Registadora (caixa registadora que guarda o dinheiro) e Dispensa (armário onde são guardadas as bebidas) e o seguinte cenário ideal (em que tudo corre bem, i.e., existe a bebida pretendida, há troco, etc): «O cliente insere o dinheiro na ranhura existente no painel de interface da máquina e, de seguida, selecciona o tipo de bebida. O dinheiro cai na caixa registadora e o painel de interface pede a bebida à dispensa. A dispensa envia a bebida seleccionada para o painel de interface, o qual a entrega ao cliente juntamente com o troco.» José Correia UML - Diagramas de Sequência 21 Exemplo: Comprar bebida (cenário ideal) : Cliente : Interface : Registradora : Dispensa Inserir(dinheiro) Selecionar(tipoBebida) Guardar(dinheiro) Pedir(tipoBebida) Entregar(bebida) DevolveTroco(dinheiro) Troco(dinheiro) Entregar(bebida) José Correia UML - Diagramas de Sequência 22

Diagramas de classes vs. Interacções: Operações O comportamento de uma classe é representado pelas suas operações...... mas as operações podem ser encontradas a partir dos diagramas de interacção :Registration form :Registration manager RegistrationManager add course(joe, math 01) addcourse(student,course) José Correia UML - Diagramas de Sequência 23 Diagramas de classes vs. Interacções: Relações Existem 3 tipos de relações entre objectos: associações agregações dependências As relações fornecem um caminho para a comunicação entre objectos as relações podem ser encontradas a partir dos diagramas de interacção... mas para dois objectos falarem tem de haver uma ligação entre eles : Registration manager Math 101: Course RegistrationManager add student(joe) Course José Correia UML - Diagramas de Sequência 24

Exemplo: Envio/Recepção de faxes Num contexto de envio/recepção de faxes, considere um sistema composto pelos seguintes objectos: Emissor (máquina de onde o fax é enviado) Receptor (máquina onde o fax é recebido) Central (central que encaminha faxes e chamadas telefónicas) Desenhe o diagrama de sequência (representando as barras de activação) correspondente ao cenário em que tudo corre bem (envio do número, estabelecimento da ligação, envio do fax, desligar, etc) José Correia UML - Diagramas de Sequência 25 Emissor : Maq Fax : Central Receptor : Maq Fax enviar(numero) LigacaoEstabelecida() estabelecerligacao() LigacaoEstabelecida() enviar(fax) desligar ConexaoTerminada() ConexaoTerminada() ImprimirReportConfirmacao() José Correia UML - Diagramas de Sequência 26

Diagramas de Sequência: Resumo da notação José Correia UML - Diagramas de Sequência 27 Diagramas de Sequência: Resumo Um diagrama de sequência é um diagrama de interacção que detalha como as operações são levadas a cabo que mensagens são enviadas (entre objectos) e quando Os diagramas de sequência são organizados de acordo com o tempo mostram interacções de objectos ordenados numa sequência de tempo o tempo progride à medida que descemos na página os objectos envolvidos na operação são listados da esquerda para a direita, de acordo com a altura em que tomam parte na sequência de mensagens captura o comportamento dinâmico (time-oriented) Objectivo dos diagramas de sequência: modelizar o fluxo de controlo ilustrar cenários típicos José Correia UML - Diagramas de Sequência 28

Referências Estes apontamentos foram baseados em: UML Unified Modeling Language, Curso em Tecnologia de Objectos, FEUP, Novembro 2000 Ademar Aguiar, Gabriel David, João Pascoal Faria UML Diagramas de Interacção, ISPGaya, Novembro 1998 César Toscano Practical UML: A Hands-On Introduction for Developers, TogetherSoft Corporation UML, Metodologias e Ferramentas CASE, Alberto Rodrigues da Silva, Carlos Videira, Maio 2001 José Correia UML - Diagramas de Sequência 29