4.4. UML Diagramas de interacção



Documentos relacionados
4.1. UML Diagramas de casos de uso

Diagramas de Sequência

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

Prof. Me. Marcos Echevarria

Diagramas de Casos de Uso

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

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

Modelagem Dinâmica com UML

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

O Processo de Engenharia de Requisitos

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

Sistemas de Telecomunicações I

Eduardo Bezerra. Editora Campus/Elsevier

Engenharia Informática

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

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

Capítulo 8. Introdução UML

MOODLE: actividade WiKi

UML - Diagramas de Sequência

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Conteúdo. 1. Introdução. 2. Levantamento de Requisitos. 3. Análise Orientada a Objetos. 4. Projeto Orientado a Objetos 5. UML. 6.

Engenharia Informática Engenharia Electrotécnica e Computadores Programação Orientada por Objectos Projecto PlayCards

Casos de uso Objetivo:

Cotagem de dimensões básicas

Gestor de ligações Manual do Utilizador

Fundamentos de Teste de Software

Modelo Ambiental: Define as fronteiras entre o sistema e o resto do mundo.

Casos de Uso. Professor MSc Wylliams Barbosa Santos wylliams.wordpress.com Laboratório de Programação

Desenvolvimento de uma Etapa

UML: Diagrama de Seqüência

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

DESENVOLVENDO O SISTEMA

Análise e Projeto de Software

Uma visão mais clara da UML Sumário

GUIA RÁPIDO DE UTILIZAÇÃO DO SIGPROJ VERSÃO USUÁRIO

Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 2ª Fase

REQUISITOS DE SISTEMAS

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

Condições Gerais Programa de fidelidade O CLUBE FITNESSBOUTIQUE Junho 2011

UML Itens Estruturais - Interface

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

8. Perguntas e Respostas

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

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

Modelagem de Sistemas

Introdução à Programação B Licenciatura em Engenharia Informática. Enunciado do trabalho prático. Quem quer ser milionário? 20 de Dezembro de 2007

1. Criar uma nova apresentação

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

Mapa Mental de Engenharia de Software - Diagramas UML

Uma visão mais clara da UML Sumário

GBD PROF. ANDREZA S. AREÃO

PROGRAMAÇÃO OO DIAGRAMA DE CLASSES. Engenheiro Anilton S. Fernandes (asfernandes.com) Janeiro 2012

Processos de gerenciamento de projetos em um projeto

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

Engenharia de Software III

B2S SISTEMAS DE INFORMAÇÃO, LDA. RUA ARTILHARIA UM, Nº 67 3º FRT LISBOA TEL: FAX: B2S@B2S.

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Diagrama de Casos de Uso

Instituto Superior Técnico MEEC/MEAR. Programação de Sistemas

Gestão de projectos na Web

UML: Diagrama de Casos de Uso, Diagrama de Classes

Arquimedes e Controle de Obra

UML & Padrões Aula 3. UML e Padrões - Profª Kelly Christine C. Silva

Aplicação de Estatísticas de Ensino Superior

Índice. Como aceder ao serviço de Certificação PME? Como efectuar uma operação de renovação da certificação?

Sistemas de Apoio à Decisão

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Automatismos Industriais

Organização em Enfermagem

Curso SGQ. Formação Elearning. Guia de Acesso ao Curso. * Sensibilização para a Qualidade * 1 - Acesso à Plataforma Studio

UML - Diagramas de Sequência

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Análise e Projeto Orientado a Objetos

Unidade II MODELAGEM DE PROCESSOS

GESTÃO DOS PROCESSOS DE INTERRUPÇÃO E RESTABELECIMENTO DO FORNECIMENTO A CLIENTES FINAIS

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

De Arte a Ciência: Regras para o Desenho de Software

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Curriculum DeGóis Guia de preenchimento do Curriculum Vitae (Informação mínima necessária)

Modos de entrada/saída

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

SERVIÇO DE CORREIO ELETRÔNICO PADRÃO DO HUWC

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

ADMINISTRAÇÃO GERAL GESTÃO DE PROCESSOS

Gestor de Janelas Gnome

O Manual do Konquest. Nicholas Robbins Tradução: José Pires

Manual do Utilizador. Manual do Utilizador Modelo10 no sisgep. Data última versão: Versão : 1.2. Data criação:

O QUE É A CENTRAL DE JOGOS?

GARANTIA LIMITADA DO FABRICANTE NOKIA PARA NOKIA COM WINDOWS PHONE

Transcrição:

Engenharia de Software 4.4. UML Diagramas de interacção Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

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 num determinado âmbito (caso de uso, operação, etc.) Os diagramas de interacção dividem-se em dois subgrupos: Diagramas de comunicação (ou colaboração) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 2

Os diagramas de comunicação (ou colaboração) dão ênfase à estrutura organizacional dos objectos que enviam e recebem mensagens; Os diagramas de sequência dão ênfase à ordem temporal das mensagens; Diagrama de comunicação = diagrama de objectos + diagrama de sequência (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 3

Diagrama de comunicação Mostram as interacções entre objectos, insistindo sobre a estrutura espacial estática que permite que os objectos de um grupo colaborem entre si São grafos com objectos (instâncias de classes) e ligações (instâncias de associações) através das quais flúem mensagens numeradas (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 4

Diagrama de comunicação Nos diagramas de comunicação o tempo não é representado de maneira explícita. Por isso, as sucessivas mensagens têm que ser numeradas para exprimir a ordem de envio Exemplo: representação de uma ordem de envio de mensagens (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 5

Diagrama de comunicação A notação permite fazer figurar actores nos diagramas de colaboração para exprimir o desencadear de interacções provocadas por elementos externos ao sistema (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 6

Diagrama de comunicação Tipos de objectos em diagramas de colaboração Objecto passivo - objecto que contém dados, mas não inicia actividade de controlo; pode enviar mensagens enquanto processa um pedido recebido Notação: rebordo normal Objecto activo - objecto que possui um processo ou fio de controlo (thread) e pode iniciar actividade de controlo Notação: rebordo espesso Podem-se indicar estereótipos «process» e «thread» Actor - objecto externo que normalmente inicia uma interacção Notação: ícone de pessoa Objecto composto - objecto que agrega outros objectos (componentes) por relação de composição Notação: objectos componentes e ligações entre componentes dentro do objecto composto (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 7

Diagrama de comunicação Tipos de ligações em diagramas de colaboração Como todas as mensagens têm de passar por ligações, para além das ligações que representam instâncias de associações, pode ser necessário indicar ligações mais dinâmicas Assim, em qualquer extremo de uma ligação, pode-se indicar o tipo de ligação (do ponto de vista do objecto no outro extremo) através de um estereótipo: «association» - instância de associação (tipo por omissão) «parameter» - parâmetro de operação do objecto que faz a chamada «local» - variável local de operação do objecto que faz a chamada «global» - variável global (usada pelo objecto no outro extremo da ligação) «self» - auto-ligação (para enviar mensagens para o próprio) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 8

Diagrama de comunicação Dinâmica de objectos e ligações Objectos e ligações podem ser criados e/ou destruídos durante a execução duma interacção Notação: junto de um objecto ou ligação indicar {new} - criado durante a interacção {destroyed} - destruído durante a interacção {transient} - criado e destruído durante a interacção Um objecto pode mudar de estado (valores de atributos e ligações) durante a execução duma interacção Notação: replicar o objecto, ligando as réplicas com mensagem «become» (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 9

Diagrama de comunicação Mensagens As mensagens flúem (passam) através de ligações entre objectos Ligações são usadas para transportar ou de alguma forma implementar a distribuição de mensagens Ligações funcionam para as mensagens como canais de comunicação O fluxo (passagem) de uma mensagem é indicado por uma seta, do emissor para o receptor, acompanhada de uma string com: Número de sequência da mensagem seguido do separador : Nome da mensagem e argumentos entre parêntesis Há 3 tipos de fluxos de controlo, correspondentes a diferentes tipos de mensagens e sistemas de numeração: plano, encaixado e assíncrono Valores de retorno e argumentos de uma mensagem também podem ser indicados com fluxos de dados (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 10

Diagrama de comunicação Mensagens Resultado (retorno) O resultado é constituído por uma lista de valores devolvidos pela mensagem Esses valores podem ser utilizados como parâmetros das outras mensagens que compõem a interacção Este campo não existe quando não há valores devolvidos O formato do campo é livre Nome da mensagem O nome corresponde frequentemente a uma operação definida na classe do objecto destinatário da mensagem (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 11

Diagrama de comunicação Mensagens Argumentos Trata-se da lista de parâmetros da mensagem Os argumentos e o nome da mensagem identificam de maneira única a acção que deve ser desencadeada no objecto destinatário Os argumentos podem conter valores devolvidos por mensagens enviadas anteriormente, assim como expressões de navegação construídas a partir do objecto fonte A notação propõe também a representação gráfica dos argumentos sob a forma de setas que originam a partir de pequenos círculos (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 12

Diagrama de comunicação Fluxo de controlo plano (flat) Caso em que há uma sequência simples de mensagens indiferenciadas, numeradas 1, 2, etc. Exemplo: comunicação telefónica (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 13

Diagrama de comunicação Fluxo de controlo encaixado (nested) Caso em que há subsequências de mensagens numeradas de forma hierárquica (com ponto) Pode iniciar uma subsequência de mensagens Aplicada normalmente com chamadas de procedimentos ordinárias Também aplicável entre objectos activos concorrentes, quando um deles envia um sinal e espera que uma subsequência de comportamento se complete no outro (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 14

Diagrama de comunicação Fluxo de controlo encaixado (nested) Exemplo: tratar pedido de stock (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 15

Diagrama de comunicação Fluxo de controlo assíncrono Caso em que há múltiplos fios (threads) de controlo, em múltiplos objectos activos concorrentes que trocam entre si mensagens assíncronas Sequências concorrentes são designadas por letras (A, B, etc.) a sequência principal não leva nenhuma letra (como se tivesse letra dummy) Uma mensagem pode ter uma parte inicial, chamada predecessor, constituída por uma lista de nºs de sequência de mensagens precedentes (de outros fios de controlo) os elementos da lista são separados por vírgula e a lista é terminada com / exemplo: A3, B4/ C3: update() mensagem C3 é a seguir às mensagens A3 e B4 (explicitamente) e a seguir à mensagem C2 (implicitamente) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 16

Diagrama de comunicação Fluxo de controlo assíncrono Exemplo: Executar transacção com sub transacções concorrentes (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 17

Um diagrama de sequência mostra uma interacção, isto é, uma sequência de mensagens trocadas entre vários objectos num determinado contexto (caso de utilização, operação, etc.) Enfatiza a comunicação e passagem de controlo entre objectos ao longo do tempo Úteis para descrever uma sequência particular de funcionamento, mas não muitas sequências alternativas e ciclos nem acções realizadas por um objecto que não envolvem comunicação com outros objectos (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 18

O eixo vertical pode ser graduado para exprimir com precisão as restrições temporais (ex.: modelação de um sistema de tempo real) Há dois tipos de utilização distintas dos diagramas de sequência, consoante a fase do ciclo de desenvolvimento em que nos encontramos Documentação dos casos de uso (Outras) representações de interacções entre objectos (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 19

Documentação dos casos de uso Interacções descritas em termos gerais, sem entrar em pormenores de sincronização As setas limitam-se a indicar eventos, e não mensagens no sentido específico entendido em programação Em geral não se pretende distinguir fluxos de controlo e fluxos de dados (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 20

O utilizador (actor) pode ser ilustrado para mostrar a sua interacção com o sistema (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 21

Objectos e linhas de vida Cada objecto participante é representado por uma caixa em cima duma linha vertical a traço interrompido (linha de vida) Podem aparecer actores (objectos externos ao sistema), normalmente a iniciar interacções O tempo cresce de cima para baixo tempo (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 22

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 acção de um objecto capaz de provocar uma resposta noutro objecto pode ser modelada como uma mensagem do primeiro para o segundo objecto Uma mensagem é representada por uma seta horizontal, do emissor para o receptor, com o nome e possíveis argumentos (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 23

Mensagens Tipos de mensagens síncrona - o emissor fica parado à espera de resposta corresponde tipicamente a chamada de operação/procedimento no receptor retorno de mensagem síncrona desnecessário indicar quando se usam barras de activação (ver adiante) assíncrona - o emissor não fica parado à espera de resposta corresponde tipicamente a envio de sinal entre dois objectos concorrentes simples ou indiferenciada - não se decide se é síncrona, de retorno ou assíncrona usadas normalmente na modelação de interacções na fronteira do sistema (entre actores e o sistema representado por um ou mais objectos) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 24

Mensagens A seta pode ser representada numa posição oblíqua para exprimir atrasos de transmissão que não sejam desprezáveis relativamente à dinâmica do conjunto Um objecto pode também mandar uma mensagem a si próprio. Trata-se de uma mensagem reflexiva ou auto-delegação (pode não ser uma verdadeira mensagem, mas sim o início de uma actividade de mais baixo nível que tem lugar no interior do objecto) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 25

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: ret := msg(args) Nome ret será usado em mensagens e condições a seguir Também se escreve ret na mensagem de retorno Uma mensagem condicional é indicada por uma condição de guarda entre parêntesis rectos [ ] Exemplo: [x<0] invert(x,color) A mensagem só é enviada se a condição se verificar Condições permitem mostrar várias sequências alternativas num único diagrama Uma mensagem iterada é indicada com asterisco *, seguido ou não de uma fórmula de iteração Exemplo: *[i:=1..n] update(i) (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 26

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) Mensagem de criação pode ter estereótipo «create» (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 27

Criação e destruição de objectos 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 (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 28

Barra de activação Uma barra de activação 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 chamado inclui situação em que está á espera de retorno de uma chamada síncrona não inclui situação em que um processo está adormecido à espera de receber uma mensagem assíncrona que o acorde Em termos de processos, significa que o objecto tem um processo ou thread activo associado A sua indicação é opcional (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 29

Barra de activação Retorno de chamada síncrona é implícito no fim da barra de activação, não é necessário representá-lo = No caso dos envios assíncronos, o retorno deve ser representado, quando existe (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 30

Barra de activação Chamadas recursivas provocam barras empilhadas (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 31

Os diagramas de sequência podem ser completados com indicações textuais, em texto livre ou em pseudocódigo O instante do envio de uma mensagem, denominado transição, pode ser descrito no diagrama junto ao ponto de partida da seta que simboliza a mensagem (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 32

A inclusão de pseudo-código na parte esquerda do diagrama permite representar ciclos e saltos, pelo que se pode recorrer aos diagramas de interacção para representar a forma geral de uma interacção, para além da simples descrição de um cenário particular (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 33

Exemplo: Tratar pedido de stock (c) Nuno Miguel Gil Fonseca - Escola Superior de Tecnologia e Gestão de Oliveira do Hospital - Engenharia de Software 34