Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 UML Comportamental - Diagramas de Interação Franklin Ramalho Universidade Federal de Campina Grande - UFCG SI2- UFCG 2 Agenda • Contexto e motivação • Diagramas de Seqüência • Diagramas de comunicação • Diagramas de overview de Interação • Diagramas de Tempo • Meta-modelo • Sintaxe concreta • Exemplos • Exercícios SI2- UFCG 3 Contexto e Motivação • Objetos precisam interagir • Sociedade de objetos – Objetivo comum • Mensagens têm um papel importante neste sentido – Chamadas às operações – Envio de sinais SI2- UFCG 4 Diagramas de Interação • Um diagrama de interação especifica interações entre objetos, permitindo que se comuniquem uns com os outros SI2- UFCG 5 Diagramas de Interação • Uma interação é um comportamento que envolve um conjunto de mensagens entre um conjunto de objetos dentro de um contexto • Uma mensagem é uma especificação de uma comunicação entre objetos que transportam informações SI2- UFCG 6 Diagramas de Interação • Diagramas de interação podem ser usados para modelar o fluxo de controle dentro de: – Uma operação – Uma classe – Um componente – Um caso de uso – Um sistema como um todo • Diferentes ênfases podem ser dadas 2 SI2- UFCG 7 Diagramas de Interação • Tipos de diagramas de interação – Diagrama de Seqüência – Diagrama de comunicação – Diagrama de overview de Interação – Diagrama de tempo SI2- UFCG 8 Diagrama de Seqüência • Diagrama de interação mais comum • Focado na troca de mensagens entre vários objetos, dando ênfase à ordenação temporal destas – Seqüência de mensagens trocadas – Enfatiza a ordem (tempo) em que ocorre a troca de mensagens • Graficamente: – Eixo x: objetos organizados em linhas de vida – Eixo y: ordem em que mensagens são trocadas ao longo do tempo SI2- UFCG 9 Sintaxe Diagrama de sequencia Linha de vida de um objeto Foco de controle ou ativação - execução de uma computação SI2- UFCG 10 Diagrama de Seqüência • Útil também na validação de diagramas de classes • Atores (mesmos de casos de uso) podem aparecer nestes diagramas • Troca de mensagens pode ocorrer entre: – Dois objetos (mais comum) – Um ator e um objeto – Um objeto e um ator – Dois atores – Um único objeto (auto chamada) SI2- UFCG 11 Diagrama de Seqüência • Diagrama de seqüência pode ser quebrado em pedaços chamados fragmentos (ou fragmentos combinados) • Novidade em UML 2.0! • Noções abstratas de unidades de interação – Diversas naturezas • É uma parte de uma interação, embora seja considerado como uma interação independente SI2- UFCG 12 Diagrama de Seqüência • Fragmentos contêm um operador – rótulo no canto esquerdo de um retângulo contendo o fragmento, que indica o tipo de controle do fragmento • Fragmentos contêm operandos – Separados por linhas tracejadas • Fragmentos combinados podem conter outros fragmentos 3 SI2- UFCG 13 Diagrama de Seqüência • Operadores de fragmentos combinados: – Alternative (alt) – representa uma escolha entre dois ou mais comportamentos, onde, no máximo, um dos operandos irá executar • Dois ou mais comportamentos alternativos, onde apenas um será escolhido • [else] pode ocorrer para garantir que pelo menos um comportamento será executado – Option (opt) – representa uma escolha que indica se o comportamento será ou não executado • Apenas um comportamento opcional • Depende da condição ser satisfeita ou não – Parallel (par) – representa uma execução paralela de dois ou mais comportamentos SI2- UFCG 14 Diagrama de Seqüência • Operadores de fragmentos combinados : – Critical region (critical) - operações contidas neste fragmento não podem ser interrompidas por outros eventos até que sejam completamente concluídas – Loop – representa um laço. O operando será repetido n vezes – Break – Indica uma quebra na execução normal do fluxo. É usado principalmente para modelar o tratamento de exceções. • Pode possuir uma condição que deve ser satisfeita para que o break seja executado SI2- UFCG 15 Diagrama de Seqüência • Operadores de fragmentos combinados : – Negative (neg) – representa traces que não são válidos, ou seja, eventos que não devem ocorrer – Assertion (assert) – representa uma assertion das únicas seqüências válidas. É oposto ao operador neg – Ignore/consider – especifica quais mensagens devem ser ignoradas e consideradas, respectivamente, dentro de um fragmento SI2- UFCG 16 Diagrama de Seqüência • Ocorrência de Interação – Diagrama de seqüência detalhado em um outro fragmento – Representa ocorrência de interação em um outro fragmento – Também chamado de referência (Reference) ou (ref) SI2- UFCG 17 Sintaxe Ocorrência de uma interação detalhada em outro fragmento Representa uma escolha onde, no máximo, um dos operandos irá executar Linha de vida encerrada SI2- UFCG 18 Sintaxe Mensagens que definem uma comunicação que ocorre entre linhas de vida de uma interação Valor de retorno (pouco usual) 4 SI2- UFCG 19 Sintaxe Fragmento paralelo Fragmento crítico Diagrama de seqüência SI2- UFCG 20 Diagrama de Seqüência Fragmento alternativo SI2- UFCG 21 Diagrama de Seqüência Fragmento laço SI2- UFCG 22 Diagrama de Seqüência SI2- UFCG 23 Diagrama de Seqüência • Continuações – conexão entre fragmentos alternativos e ocorrências de interação SI2- UFCG 24 Sintaxe - continuação 5 SI2- UFCG 25 Sintaxe - continuação SI2- UFCG 26 Diagrama de Seqüência SI2- UFCG 27 Diagrama de Seqüência SI2- UFCG 28 Diagrama de Comunicação • Enfatiza a organização estrutural dos objetos que enviam e recebem mensagens • Coleção de vértices e arcos – Objetos e links • Interação entre objetos é explicita • Mensagens têm um número de seqüência explícito – Numeração decimal pode indicar aninhamento SI2- UFCG 29 Diagrama de Comunicação • Antigo diagrama de colaboração (UML 1.5) SI2- UFCG 30 Diagrama de Comunicação 6 SI2- UFCG 31 Diagrama de Comunicação • Ao contrário dos diagramas de seqüência, os diagramas de comunicação: – Não mostram a linha de vida do objeto • Mas, podem usar create() e destroy() – Não mostra o foco de controle explicitamente • Mas, podem usar o número de seqüência de cada mensagem que possa indicar aninhamento – Não provê suporte para fragmentos combinados • Mas, expressões podemser usadas para indicar alguns operadores SI2- UFCG 32 Diagrama de overview de interação • Também chamado de Diagrama de Interação Geral • Tipo específico (variante) de diagrama de atividades – Nós são interações ou ocorrências de interação • Oferece uma visão geral do controle do fluxo • Um dos novos diagramas UML 2.0 SI2- UFCG 33 Diagrama de overview de interação SI2- UFCG 34 Diagrama de overview de interação SI2- UFCG 35 Diagrama de tempo • Ilustra mudanças de estado em linhas de vida ao longo de unidades de tempo (eixo x) • Útil para sistemas de tempo real ou para aplicações Mulímídia/hipermídia • Um dos novos diagramas UML 2.0 SI2- UFCG 36 Diagrama de tempo 7 SI2- UFCG 37 Mais exemplos SI2- UFCG 38 Mais exemplos SI2- UFCG 39 Mais exemplos Poderia chamar um método para tratar uma exceção aqui em um objeto do tipo da exceção SI2- UFCG 40 Mais exemplos SI2- UFCG 41 Mais exemplos SI2- UFCG 42 UML 2.0 Superstructure • Dividido em 3 pacotes de alto nível: – Structure – Behavior – Supplement • Sub-dividida em outros sub-pacotes Diagramas estruturais Diagramas comportamentais Conceitos adicionais 8 SI2- UFCG 43 UML 2.0 Superstructure – Part II Behavior Conceitos comuns necessários aos aspectos dinâmicos Conceitos relativos aos diagramas de interação SI2- UFCG 44 Interactions metamodel SI2- UFCG 45 Interactions metamodel SI2- UFCG 46 Interactions metamodel SI2- UFCG 47 Interactions metamodel SI2- UFCG 48 Interactions metamodel 9 SI2- UFCG 49 Exercícios • Construa um diagrama de seqüência para especificar a operação de fechar uma conta corrente, onde tem-se os seguintes objetos: Cliente, banco e conta. Basicamente, o cliente solicita o encerramento da conta bancária, informando sua conta e senha. O banco verifica se tal conta e senha são válidos. Caso não sejam, o banco permite mais duas chances para o cliente especificá-las (no máximo três chances). Caso sejam, deve-se verificar o saldo. Em caso de saldo positivo, o banco saca o dinheiro para o cliente e fecha a conta. Em caso de saldo negativo, o banco solicita pagamento do débito ao cliente, que deve fazê-lo para que a conta seja fechada. Incremente esta especificação e faça uso de fragmentos combinados. SI2- UFCG 50 Exercícios • Especifique um diagrama de seqüência e um diagrama de tempo que contemple toda a interação que ocorre durante a matrícula dos alunos do curso de CC na UFCG. • Transforme os diagramas de seqüência anteriores em diagramas de comunicação. • Substitua os diagramas de atividades feitos anteriormente (ver aula sobre diag. de ativ.) por diagramas de overview de ínteração SI2- UFCG 51 Referências • Especificação de UML da OMG
Compartilhar