Comentários

0%

Não pode faltar

MODELAGEM DOS DEMAIS DIAGRAMAS DE INTERAÇÃO

Iolanda Cláudia Sanches Catarino

Diagramas de interação

Os diagramas de interação (sequência, comunicação, visão geral de interação e tempo) mostram a interação de como os objetos do sistema agem internamente para apoiarem a realização das funcionalidades representadas pelos casos de uso.

Fonte: Shutterstock.

Deseja ouvir este material?

Áudio disponível no material digital.

Praticar para aprender

Caro aluno, seja bem-vindo à seção sobre a modelagem dos demais diagramas de interações da Unified Modeling Language (UML).

Nesta seção, serão apresentados outros diagramas da UML 2.5 para a modelagem comportamental do sistema, mostrando a modelagem com outros diagramas de interação. Assim, serão apresentados o objetivo e a notação gráfica dos elementos que compõem o diagrama de comunicação, o diagrama de visão geral de interação e o diagrama de tempo.

O diagrama de comunicação representa o relacionamento entre os objetos que participam da execução de um processo, o qual caracteriza a realização de um caso de uso a partir da troca de mensagens. Até a versão 1.5 da UML, o diagrama de comunicação era conhecido como diagrama de colaboração. Se você modelou as colaborações entre os objetos a partir do diagrama de estrutura composta, que é um diagrama estrutural da UML, é importante que você comece a compreender o comportamento de um ou mais casos de uso, pois isso facilitará a descrição da interação entre os objetos que realizam um caso de uso. Vamos conferir um exemplo. Considere:

O diagrama de visão geral de interação é um novo diagrama da UML 2.0. Ele é uma variação do diagrama de atividades, o qual integra diferentes tipos de diagramas de interação com o objetivo de dar uma visão geral dos diversos cenários que descrevem a realização de um caso de uso. Também pode ser utilizado para demonstrar uma visão geral do sistema ou de processos que interagem entre si a partir de um fluxo, sendo que o principal diagrama de interação que integra os quadros que compõem o diagrama de visão geral de interação é o diagrama de sequência. Assim, aproveitando o mesmo exemplo do caso de uso “Realizar Reserva”, pode-se adotar o diagrama de visão geral de interação e, em um único diagrama, representar todo o processo que envolve a realização de uma reserva, ou seja, desde o hóspede efetuando o seu cadastro e realizando a sua reserva até ele finalizando com a emissão de um comprovante da efetivação da reserva. 

E, para concluir o estudo dos diagramas de interação, vamos fazer uma contextualização sobre o diagrama de tempo, que também é um novo diagrama da UML 2.0. Ele é indicado principalmente para modelar a mudança de estados dos objetos com a indicação exata da unidade de tempo (segundos, minutos, horas e dias) e da duração de cada transição de estado. Por isso, esse diagrama é recomendado para modelar sistemas de automação, sistemas multimídia, sistemas de tempo real, aplicações Web, processos de rede cuja sincronização de eventos é necessário especificar etc. Assim, para modelar os estados de objetos e suas transições de sistemas de informação, recomenda-se utilizar o diagrama de máquina de estados, considerando que a precisão do tempo não é tão relevante para ser especificada.

Para reforçar a sua aprendizagem, vamos avançar com a modelagem comportamental do Sistema de Hotelaria - Módulo Recepção já descrito na Seção 3.1. 

Vamos enfatizar a interação referente ao processo de realização de uma reserva, considerando o caso de uso “Realizar Reserva” e a descrição do relato de como funciona o procedimento de uma reserva no hotel e suas regras de negócio.

Descrição procedimento de uma reserva no hotel

Um hóspede, para se hospedar no hotel, tem de ter um cadastro com seus dados pessoais (dados essenciais) efetuado previamente e uma reserva prévia realizada por ele (por telefone, por aplicativo, pela Web ou pela empresa com a qual o hóspede tem vínculo). Sendo a empresa responsável pela estada do hóspede, ela é a responsável por custear integralmente as despesas referentes às diárias e as referentes às refeições, que ela pode custear ou não. Uma reserva é mantida por: nome da(s) pessoa(s) que irá(ão) se hospedar em um apartamento, data em que efetuou a reserva, data de entrada, hora prevista de entrada, data de saída, quantidade de adultos, quantidade de crianças, idade das crianças e nome da empresa em que trabalha (caso a empresa seja responsável pela estada do hóspede). Um hóspede ou uma empresa podem realizar várias reservas. 

Agora elabore o diagrama de comunicação referente ao caso de uso “Realizar Reserva”, específico para criação/cadastro da reserva. As figuras a seguir correspondem a um recorte do diagrama de casos de uso e do diagrama de classes para sustentar a elaboração do diagrama de comunicação.

Figura 3.16 | Recorte do diagrama de casos de uso
A imagem ilustra um recorte de um diagrama de caso de uso com o usuário hóspede e a recepção Hotelaria, nela estão os casos de uso: manter hóspede, realizar reserva, emitir comprovante da reserva e enviar SMS confirmação da reserva. De emitir Comprovante da Reserva sai uma seta tracejada com ponta aberta, que aponta para Realizar reserva, com o texto Extend {se Web ou App}. De Realizar Reserva sai uma seta tracejada com ponta aberta apontando para Enviar SMS Confirmação da Reserva, com o texto Include.
Fonte: elaborada pela autora.

A próxima figura apresenta um recorte do diagrama de classes, demostrando as classes que colaboram para realização do caso de uso “Realizar Reserva”.

Figura 3.17 | Recorte do diagrama de classes
A imagem ilustra um recorte do diagrama de classes com as classes Tipo Apartamento, Apartamento, Reserva, Pais, Hóspede, Empresa e Ramo Atividade, com seus atributos e métodos.
Fonte: elaborada pela autora.

Agora é com você!

Vamos avançar com a modelagem dinâmica do sistema, conhecendo os demais diagramas de interação da UML.

Além do diagrama de sequência, o diagrama de comunicação, o diagrama de visão geral de interação e o diagrama de tempo são classificados como os diagramas de interação que enfatizam a interação entre os objetos para a realização de um processo, geralmente um caso de uso. 

A seguir são apresentados o objetivo, a notação gráfica dos elementos que compõem os diagramas e os exemplos para ilustrar a aplicabilidade de cada um deles. Você perceberá que não existe uma regra na UML indicando uma obrigatoriedade ou qual é o melhor diagrama de interação a ser utilizado para modelagem das interações entre os objetos; você, como analista de sistemas ou como desenvolvedor, é que deve decidir qual é a melhor opção a ser adotada em consonância com o domínio do sistema ou da aplicação.

Diagrama de comunicação

A partir da UML 2.0, o diagrama de colaboração passou a ser denominado diagrama de comunicação. Esse diagrama está totalmente vinculado ao diagrama de sequência, apresentado na Seção 3.2 desta unidade, sendo considerado uma demonstração do diagrama de sequência em uma outra perspectiva.

Assim, o diagrama de comunicação representa o relacionamento entre os objetos envolvidos na realização de um caso de uso, enfatizando o sentido da troca de mensagens entre os objetos que participam de uma interação.

Diferentemente do diagrama de sequência, que demostra a ordem temporal das mensagens trocadas entre os objetos, representando o diagrama em dois eixos e dispondo a troca das mensagens sequencialmente de cima para baixo, o diagrama de comunicação não demostra a temporalidade da realização de um processo. A leitura do diagrama de comunicação deve ser conduzida pela ordem de envio de mensagens entre os objetos, acompanhando o rótulo das mensagens, que descreve uma expressão de sequência obrigatória, incluindo a numeração da mensagem, as informações enviadas e também um elemento de controle, como uma condição de guarda, se necessário. O sentido da mensagem é indicado por uma seta posicionada próxima ao rótulo da mensagem, apontando para o objeto receptor da mensagem.

De acordo com Booch, Rumbaugh e Jacobson (2006), o diagrama de comunicação enfatiza a organização estrutural dos objetos que participam de uma interação a partir da indicação das mensagens enviadas e recebidas com uma identificação numeral que define a ordem temporal das mensagens. Segundo Guedes (2018), o diagrama de comunicação complementa o diagrama de sequência, concentrando-se na representação de como os elementos do diagrama estão vinculados e na ocorrência das mensagens que esses elementos trocam entre si durante a execução de um processo, normalmente baseado em um caso de uso, não se preocupando com a temporalidade do processo. Para Bezerra (2014), o diagrama de comunicação representa os objetos relevantes, suas ligações e as mensagens trocadas entre os objetos para a realização de um caso de uso.

Elementos do diagrama de comunicação

O diagrama de comunicação apresenta elementos em comum com o diagrama de sequência, contudo não suporta os fragmentos de interação e os fragmentos combinados. A notação gráfica dos principais elementos que podem compor o diagrama de comunicação e uma breve descrição de cada um é apresentada no Quadro 3.4 a seguir.

Quadro 3.4 | Elementos do diagrama de comunicação
Notação
Elemento
Boneco de palito om o texto Actor. Ator: representa os mesmos atores já criados no diagrama de casos de uso e também reutilizados no diagrama de sequência; no entanto, não são apoiados por uma linha de vida. Um ator envia mensagens para os objetos como uma forma de interação para solicitarem a execução de uma operação ou para simplesmente enviarem informações. O diagrama sempre representa o ator primário responsável por enviar a mensagem inicial que começa a interação entre os objetos.
Retângulo horizontal com o texto Lifeline. Linha de vida (Lifeline): representa a existência de um elemento participante (objeto) da interação, geralmente uma instância de uma classe. No diagrama de comunicação, o elemento lifeline não tem uma linha vertical tracejada abaixo do elemento, nem foco de controle, como no diagrama de sequência. É representada graficamente por um retângulo com um nome que descreve o objeto.
Dois retângulos horizontais sobrepostos com o texto Multi-object. Multiobjeto: representa uma coleção de objetos de uma mesma classe, participando da interação. O elemento multiobjeto pode ser utilizado para representar o lado “muitos” de uma associação do tipo “um para muitos” ou para representar uma lista de objetos formada no momento da interação. É representado graficamente por dois retângulos sobrepostos, sendo que o nome do multiobjeto é apresentado no retângulo que fica por cima.
linha contínua Vínculo: ou também denominado ligação, representa uma ligação entre duas lifelines; corresponde a uma instância de relacionamento (associações ou dependência) estabelecido no diagrama de classes. O elemento vínculo também é estabelecido entre os elementos ator e lifelines. É representado graficamente uma linha entre dois objetos ou entre o ator e os objetos.
Linha horizontal, na parte superior da linha há uma seta fechada apontando para direita com o texto 1: message e na parte inferior há uma seta  fechada apontando para a esquerda com o texto 2: message. Mensagem: representa a solicitação que um elemento envia para o outro com o objetivo de executar uma ação entre os elementos do diagrama, em geral, demonstrando a chamada de operações dos objetos. Para indicar as mensagens, deve-se primeiramente estabelecer o vínculo entre as lifelines, sendo que em um único vínculo pode haver várias mensagens. Apresenta o mesmo sentido das mensagens no diagrama de sequência. É representada por uma pequena linha horizontal com uma seta fechada na extremidade da direção do elemento receptor da mensagem. Para indicar uma mensagem de retorno, representa-se uma seta aberta, porém não tracejada.
Linha que faz uma volta quase completa em forma de quadrado. Mensagem reflexiva ou automensagem: também pode ser denominada autochamada. É uma mensagem que indica que a lifeline dispara uma mensagem para si própria, de forma que ela é o remetente e o receptor da mensagem. A mensagem reflexiva é representada por uma linha que sai da lifeline e retorna para ela mesma.
Retângulo com contorno preto e preenchimento cinza, com uma dobra no canto superior direito. Nota ou comentário: é utilizado para descrever observações aos elementos que compõe o diagrama de sequência, contendo informações úteis para os desenvolvedores, porém não expressa força semântica específica aos elementos do diagrama.
Fonte: elaborado pela autora.

A ênfase do diagrama de comunicação está em demonstrar exatamente a ligação entre os objetos representados pela lifeline que participam da realização de um caso de uso. Na especificação da modelagem de um software em uma ferramenta CASE compatível com a UML, é importante já ter elaborado o diagrama de casos de uso e o diagrama de classes para facilitar a elaboração do diagrama de comunicação a partir da reutilização dos elementos comuns. Lembrando também que, uma vez que se fez a opção em ter especificadas as interações, primeiramente com o diagrama de sequência, a maioria das ferramentas CASE gera automaticamente o diagrama de comunicação.

A Figura 3.18 ilustra a ligação entre os elementos básicos do diagrama de comunicação. Observe que a mensagem identificada com o número 3 refere-se a uma mensagem de retorno representada graficamente por uma seta aberta, no entanto não é tracejada como é no diagrama de sequência.

Figura 3.18 | Elementos do diagrama de comunicação
A imagem ilustra os elementos do diagrama de comunicação. Nela há o ator, a lifeline1 e a lifeline2. Entre o ator e a lifeline1 há mensagem 1: mensagem síncrona com a seta fechada apontando para a lifeline1. Entre a lifeline1 e a lifeline2 há a mensagem 2: mensagem síncrona com a seta fechada apontando para a lifeline2, e também há a mensagem 3: mensagem de retorno com seta aberta apontando para a lifeline1. Ainda na lifeline1 há a mensagem 4: mensagem reflexiva com a seta fechada apontando para a direita e com a linha que sai e volta para ela mesma em lifeline1. De volta entre a lifeline1 e o ator há uma nota com o texto: Não se exibe rótulo no elemento vínculo e a mensagem 5: mensagem síncrona.
Fonte: elaborada pela autora.

A Figura 3.19 ilustra um diagrama de sequência correspondente ao cenário principal do caso de uso “Manter Hóspede”, que contempla o cadastro de um novo hóspede a partir da participação dos seguintes elementos, que realizam o caso de uso: ator “Hóspede”, ator primário responsável por fornecer os dados para que ocorra o cadastramento de um novo hóspede e que inicia a interação do caso de uso; lifeline “FormHospede”, representa a interface gráfica do caso de uso, sendo o elemento principal de interação entre o ator e os objetos das classes para que ocorra a troca de mensagens até concretizar o cadastro de um novo hóspede; e os objetos das classes “pais:Pais”, “profissao:Profissao”; “empresa:Empresa”; e “hospede:Hospede”.

Agora confira a Figura 3.20, que apresenta o diagrama de comunicação correspondente ao diagrama de sequência da Figura 3.19 com os mesmos elementos que participam da realização do caso de uso. O diagrama de comunicação foi gerado automaticamente pela ferramenta CASE Visual Paradigm Community Edition. Na ferramenta, a partir do diagrama de sequência aberto na área de trabalho, seleciona-se a opção “Synchronize to Communication Diagram”, com o botão direito do mouse entre os elementos do diagrama de sequência, e, assim, o diagrama de comunicação é gerado com o nome idêntico ao do diagrama de sequência.

Figura 3.19 | Exemplo de diagrama de sequência
Fonte: elaborada pela autora.

Na Figura 3.20, observe que a numeração definida no rótulo das mensagens indica a ordem de envio das mensagens envolvidas na interação do caso de uso, sendo que, em algumas delas, a numeração está no formato simples, representado por números inteiros, por exemplo, 1, 2, 3 etc. e, em outras, está no formato composta, representada por valores em casas decimais, por exemplo, 2.1, 2.2, 5.1 etc., exatamente conforme consta no diagrama de sequência. Caso o diagrama de comunicação não seja elaborado automaticamente pela ferramenta CASE, a partir do diagrama de sequência, geralmente adota-se a numeração no formato simples entre todas as mensagens.

Assimile

A ênfase do diagrama de comunicação está em demonstrar exatamente a ligação entre os objetos representados pela lifeline, que participam da realização de um caso de uso. No diagrama de comunicação, o relacionamento entre o ator e as lifelines é estabelecido pelo elemento denominado vínculo, sendo que, para indicar as mensagens, deve-se primeiramente estabelecer o vínculo entre as lifelines. Em um único vínculo pode-se representar várias mensagens; cada uma delas é identificada por uma numeração que indica a ordem em que foram disparadas.

Observe novamente a troca de mensagens “2 e 2.2” entre a lifeline “FormHospede” e a lifeline do objeto “hospede:Hospede”; e a troca de mensagens “5.1, 6.1 e 7.1” entre a lifeline do objeto “hospede:Hospede” e as demais lifelines de objetos, que são todas indicativas de mensagens de retorno, representadas pela seta aberta.

Figura 3.20 | Exemplo de diagrama de comunicação
A imagem ilustra um exemplo de diagrama de comunicação com ênfase na numeração nos rótulos das mensagens, que indicam a ordem de envio das mensagens envolvidas na interação do caso de uso. Troca de mensagens: Entre o ator Hospede e a lifeline FormHospede: 1: informa dados pessoais com seta fechada e 10. confirma cadastro com seta fechada. Entre a lifeline FormHospede e a lifeline do objeto hospede:Hospede: 1.1 <<create>. 2: novo hospede. 2.1: cadastrarHospede() com seta fechada e 2.2: hospede cadastrado com a seta aberta. Na lifeline do objeto hospede:Hospede: 3: validarcpf, 4:validarDataNascimento(), 8. validarEnderecoEletronico com seta fechada e 9:alterarSituação. Há uma linha  que sai da lifeline e retorna para ela mesma. Entre as lifelines dos objetos hospede:Hospede e pais:Pais: 5: recuperarPais() com seta fechada e 5.1: dados pais com seta aberta. Entre as lifelines hospede:Hospede e profissao:Profissao: 6: recuperarProfissao() com seta fechada e 6.1: dados profissão com seta aberta. Entre as lifelines dos objetos empresa:Empresa: 7: recuperarEmpresa() com seta fechada e  7.1: dados empresa com seta aberta.
Fonte: elaborada pela autora.

Dos elementos da notação gráfica do diagrama de comunicação, o multiobjeto é um elemento exclusivo dos diagramas de interação, sendo utilizado no diagrama de comunicação com mais frequência. A Figura 3.21 ilustra uma parte de um diagrama de comunicação que exemplifica o uso do elemento multiobjeto “item:item Pedido”, considerando que um pedido é composto por, no mínimo, um item obrigatoriamente.

Figura 3.21 | Exemplo de diagrama de comunicação com multiobjeto
A imagem ilustra um exemplo de diagrama de comunicação com multiobjeto, as trocas de mensagens são: Entre  as lifelines FormPedido e pedido:Pedido: 2: create com seta fechada e 3.verdadeiro com seta aberta. Entre a lifeline FormPedido e o elemento multiobjeto item:itemPedido: 4: <<create>> com seta fechada e 5: verdadeiro com seta aberta. Entre a lifeline e o elemento multiobjeto item:itemPedido: 6: [para cada produto] adicionarItem() com seta fechada e 10: item cadastrado com seta aberta. Entre o elemento multiobjeto e a lifeline produto:Produto: 7: verificarQuantidade() coms eta fechada e 8: quantidade disponível com seta aberta e 9. CadastrarItem() com seta fechada. Há uma linha  que sai do multiobjeto e retorna para ele mesmo.
Fonte: elaborado pela autora.

Além disso, os mesmos estereótipos <<boundary>>, <<control>> e <<entity>> aplicados no diagrama de sequência podem ser igualmente utilizados nas lifelines do diagrama de comunicação, representando da mesma forma as mensagens trocadas entre os objetos vinculados à realização do caso de uso. A Figura 3.22 demostra uma parte de um diagrama de comunicação com a indicação dos estereótipos.

Figura 3.22 | Exemplo de diagrama de comunicação com estereótipos
Fonte: elaborada pela autora.

No exemplo, o ator “Hóspede” inicia a realização do caso de uso “Realizar Reserva”, interagindo com a página correspondente à funcionalidade de realização de uma reserva. O elemento “PaginaReserva” indica uma lifeline do tipo fronteira (<<boundary>>); o elemento “ControladorReseva” indica uma lifeline do tipo controladora (<<control>>) e o elemento “reserva:Reserva” indica um objeto lifeline do tipo entidade (<<entity>>).

É importante atentar-se para o fato de que, durante a modelagem das interações, a indicação de cada mensagem trocada entre os objetos envolvidos na realização de um processo, geralmente os casos de uso, implicará a existência de uma operação no objeto receptor, o qual deve ser consistentes com as operações listadas nas classes do diagrama de classes. 

Exemplificando

A figura a seguir ilustra um exemplo do diagrama de comunicação com as lifelines representadas pelos estereótipos de classes <<boundary>>, <<control>> e <<entity>> correspondentes ao caso de uso “Emitir Saldo”, referente ao exemplo clássico do domínio de movimentação bancária em caixas eletrônicos denominado Automatic Teller Machine (ATM). No exemplo, o ator “Cliente” interage com a lifeline “VisaoEmitirSaldo” e esta com a lifeline que representa a classe controladora da interação “ControleEmitirSaldo”, que por sua vez se comunica com a lifeline da classe “ContaComum” a partir da troca de mensagens síncronas e de retorno. Observe que o diagrama foi modelado em uma ferramenta CASE, a qual indica as mensagens de retorno com a seta aberta, conforme o padrão da notação, e com a linha tracejada idêntica à representação do diagrama de sequência.

Figura 3.23 | Exemplo de diagrama de comunicação
Fonte: Guedes (2018, p. 35).

A seguir vamos conhecer o objetivo e a aplicabilidade de outro diagrama de interação, o diagrama de visão geral de interação.

Diagrama de visão geral de interação

O diagrama de visão geral de interação é um novo diagrama da UML 2.0. É uma variação do diagrama de atividades, que integra os diagramas de interação, principalmente o diagrama de sequência, demonstrando um processo geral. 

De acordo com Guedes (2018), o diagrama de visão geral de interação demostra uma visão geral de um sistema ou processo, envolvendo vários subprocessos que interagem entre si a partir de um fluxo similar ao do diagrama de atividades, o qual utiliza quadros no lugar dos nós de ação. Segundo Bezerra (2014), o diagrama de visão geral de interação consiste em uma abordagem para modularizar a construção de diagramas de interação com o objetivo de dar uma visão geral dos diversos cenários de um caso de uso.

Com o diagrama de visão geral de interação é possível ter uma visão de alto nível das interações de vários processos ou de um único processo correspondente à realização de um caso de uso.

Assim, quem orienta a melhor forma de adotar o diagrama não é a definição da UML e sim a metodologia de uma equipe e/ou empresa de desenvolvimento de sistemas. Por exemplo, considere o domínio de um sistema de hotelaria referente ao módulo reserva, o qual mantém as funcionalidades do cadastro de hóspede, realização de reserva e demais funcionalidades. Ao adotar o diagrama de visão geral de interação, em um único diagrama, seria possível unir a representação das interações do cadastro do hóspede, especificando as operações de inclusão, alteração ou consulta, e, na sequência, integrar a representação da interação correspondente à realização da reserva; ou representar dois diagramas separados. Essa decisão, depende da complexidade do domínio e funcionalidades do sistema.

Notação gráfica

A notação gráfica do diagrama de visão geral de interação consiste na representação de dois tipos de quadros, conforme ilustra a Figura 3.24, sendo:

Assimile

O diagrama de visão geral de interação é uma variação do diagrama de atividades, no entanto utiliza quadros no lugar dos nós de ação, demostrando uma visão de alto nível das interações de um sistema ou processo a partir da integração de vários diagramas de interação, principalmente os do diagrama de sequência.

Figura 3.24 | Notação gráfica de quadros de interação e de quadros de ocorrência de interação
Quadro de interação
A imagem ilustra dois quadros: 1. o quadro de interação, que consiste em um único retângulo (quadro) com a indicação do nome em um rótulo, no canto superior à esquerda do quadro, nela há o texto sd Nome Diagrama Interação. Dentro do quadro há uma diagrama de sequência. 2. o quadro de ocorrência de interação, que consiste em um retângulo (quadro) com o rótulo reg no canto superior à esquerda do quadro, no interior do quadro há o texto sd Nome Diagrama Interação.
Quadro de ocorrência de interação
Fonte: elaborada pela autora.

Na elaboração do diagrama de visão geral de interação, além da representação dos quadros de interação e/ou quadros de ocorrência de interação, há a união dos quadros com os mesmos elementos do diagrama de atividades (nó inicial, nó final, nó de decisão, nó de bifurcação e nó de união), que você conheceu na Seção 2.3 deste livro. 

A Figura 3.25 ilustra um diagrama de visão geral de interação integrando quadros de ocorrência de interação dos seguintes diagramas de sequência: Realizar Login, Manter Hóspede, Realizar Reserva e Emitir Comprovante de Reserva.

Na Figura 3.25 é possível observar o controle do fluxo de várias atividades para concretizar o processo geral de reservar um apartamento, o qual utilizou-se de quadros de ocorrência de interação no lugar dos nós de ação de um diagrama de atividades.

Figura 3.25 | Exemplo de diagrama de visão geral de interação
A imagem ilustra um exemplo de diagrama de visão geral de interação mostrando a integração dos quadros de ocorrência  para concretizar um processo geral sd Reservar Apartamento: Estado inicial, transição, quadro referência diagrama de sequência ref sd Realizarlogin, transição, escolha login inválido, transição, estado final, ou login válido, transição, quadro referência diagrama ref sd manter hospede, transição, escolha hóspede inadimplente, transição, estado final, ou hóspede ativo, transição, quadro referência diagrama de sequência ref sd Realizar Reserva, transição, quadro referência diagrama de sequência ref sd emitir Comprovante de reserva, transição, estado final.
Fonte: elaborado pela autora.

E, para finalizar os diagramas de interação da UML, vamos conhecer o diagrama de tempo.

Diagrama de tempo

O diagrama de tempo foi introduzido a partir da UML 2.0. Ele representa, de forma concisa e simples, a mudança pontual nos estados de um objeto, relevante para o contexto da execução de um processo que envolve várias atividades ou especificamente de um caso de uso em resposta aos eventos disparados durante uma interação. Pode-se indicar diferentes unidades de medida de tempo no mesmo diagrama ou apenas uma.

O diagrama de tempo é útil para documentar a modelagem principalmente de sistemas de tempo real, bem como de aplicações que utilizam recursos de multimídia e sincronização de eventos.

De acordo com Guedes (2018), o diagrama de tempo, ou de temporização, demostra a mudança no estado de um objeto, uma condição de uma instância de uma classe ou o papel que ela assume em um período exato e importante de tempo, em resposta aos eventos externos.

O diagrama de tempo concentra-se nas condições que mudam dentro e entre linhas de vida ao longo de um eixo de tempo linear. O diagrama descreve o comportamento dos classificadores individuais e as interações dos classificadores, concentrando a atenção no tempo dos eventos, que causam mudanças nas condições modeladas das linhas de vida.

A notação gráfica do diagrama de tempo consiste em um único retângulo (quadro) com a indicação do nome em um rótulo, indicado no canto superior à esquerda do quadro, contendo os seguintes elementos, conforme ilustra a Figura 3.26:

Figura 3.26 | Notação gráfica do diagrama de tempo
A imagem ilustra a notação gráfica do diagrama de tempo que consiste em um único retângulo (quadro) com a indicação do nome em um rótulo, indicado no canto superior à esquerda do quadro com o texto identificação do diagrama, contém os seguintes elementos: À esquerda do quadro está a Lifeline 1 em uma raia. A sua frente estão: Estado 1, Estado 2, Estado 3 e Estado 4 vinculados a Lifeline 1, um abaixo do outro. Na parte superior do quadro há 4 indicações de intervalo de tempo: {duração inicial..final} associado a uma pequena linha que indica graficamente a ocorrência do intervalo de tempo. Na parte inferior, indicada como um eixo, está a unidade de tempo indicada pelos números, 1, 2, 3, 4 e 5 relacionada ao início e término de cada intervalo de tempo.
Fonte: elaborada pela autora.

A Figura 3.27 ilustra um exemplo de diagrama de tempo correspondente à classe de objetos “Concurso”, que apresenta as etapas que identificam os estados “ElaborandoEdital, AbrindoInscrições, AplicandoProvaSeleção, AnalisandoProvas e PublicandoResultados”, definindo o período das datas em função da unidade de tempo dia.

Figura 3.27 | Exemplo de diagrama de tempo
Fonte: Guedes (2018, p. 353).

Dependendo do domínio e da complexidade de um projeto de software, é importante fornecer múltiplas visões da modelagem do sistema sob diferentes aspectos de análise e detalhamento. Como vimos, a UML privilegia a descrição de um sistema em três perspectivas principais de visões, sendo que a perspectiva da visão estrutural enfatiza a visão estática do sistema; a funcional prioriza a modelagem das funcionalidades do sistema correspondente aos requisitos funcionais; e a perspectiva dinâmica representa a visão do comportamento dos objetos em tempo de execução.

Agora você já conhece todas as técnicas de modelagem da UML, sabe o objetivo e a aplicabilidade de cada modelo, sendo que a UML abrange as técnicas de modelagem classificadas em estruturais e comportamentais. Contudo, a UML não define quais de suas técnicas de modelagem devem ser adotadas para documentar exatamente uma fase ou atividade de um processo de desenvolvimento. 

Reflita

Considerando que você tem que definir uma metodologia de desenvolvimento de software orientado a objetos, integrando um modelo de processo de engenharia com a Unified Modeling Language (UML) para documentar os artefatos de software, quais técnicas de modelagem comportamental da UML você acredita que são essenciais e recomendadas para especificar as interações entre os objetos que realizam os casos de uso?

A Modelagem 

Como modelagem essencial da atividade de análise de um processo de desenvolvimento de software, recomenda-se iniciar a modelagem a partir da delimitação do escopo do projeto de software e, com isso, dimensionar as partes que integram o sistema e, se necessário, adotar o diagrama de pacotes para agrupar e organizar, em pacotes lógicos ou físicos, os componentes ou módulos que integram um sistema e suas dependências. Diante dessa definição, inicia-se a modelagem comportamental do sistema com o diagrama de casos de uso (Use Cases), representando um refinamento da especificação dos requisitos funcionais do sistema com o objetivo de definir os serviços, tarefas ou funcionalidades do software. Na sequência, enfatiza-se a modelagem estrutural das classes de objetos a partir da especificação do diagrama de classes, sendo que, à medida que o sistema é desenvolvido, o modelo de classes é incrementado com novos detalhes de notação, sendo refinado em vários níveis de abstração ou versões. Por fim, enfatiza-se ainda a modelagem comportamental dos estados dos objetos das classes, elaborando um diagrama de máquina de estados para cada classe que possui estados relevantes para o contexto do domínio do sistema; e geralmente se faz a opção em demonstrar a realização de cada caso de uso com o diagrama de atividades ou com os diagramas de interação.

Assim, a consistência entre os modelos que integram a documentação da modelagem de análise e de projeto de um sistema de software deve ser assegurada a partir do desenvolvimento incremental e iterativo dos artefatos de software. Na própria atividade de análise, os modelos podem ser refinados com mais detalhes, apresentando várias perspectivas de visões de um mesmo diagrama e, posteriormente, a modelagem da atividade de projeto é considerada uma extensão refinada dos diagramas de análise com um olhar para a implementação de acordo com as tecnologias que serão adotadas para o desenvolvimento do sistema.

Nesta seção finalizamos o estudo das técnicas de modelagem comportamentais da UML, que visam demonstrar o comportamento e a interação entre os elementos do sistema, colaborando para a perspectiva da visão dinâmica do sistema. Os diagramas de interação representam um subgrupo dos diagramas comportamentais, que mostram a interação de como os objetos do sistema agem internamente para apoiarem a realização dos casos de uso definidos no diagrama de casos de uso.

Referências

BEZERRA, E. Princípios de análise e projeto de sistemas com UML. 3. ed. Rio de Janeiro: Elsevier, 2014.

BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML: guia do usuário. 2. ed. Rio de Janeiro: Campus, 2006.

GUEDES, G. T. A. UML: uma abordagem prática. 3. ed. São Paulo: Novatec, 2018.

SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson Education do Brasil, 2018.

Bons estudos!

AVALIE ESTE MATERIAL

OBRIGADO PELO SEU FEEDBACK!