Olá, aluno(a), seja muito bem-vindo(a) a mais uma lição. Hoje, vamos aprender a construir o Diagrama de Visão Geral de Interação. O Diagrama de Visão Geral de Interação (DVGI), assim como o diagrama de máquina de estado, complementa o diagrama de atividade, mas, como o próprio nome diz, fornecendo uma visão geral na forma como os CASOS DE USO interagem, e não mais sobre as atividades (RUMBAUGH; JACOBSON; BOOCH, 1999).
Você utilizará o diagrama de visão geral de interação para fornecer ao desenvolvedor uma ótica geral na forma como os casos de uso interagem mutuamente. Ademais, você poderá fazer uso de elementos do diagrama de atividade e até de partes do diagrama de sequência para melhor demonstrar a interação entre as funcionalidades do software. Bacana, hein!
O DVGI é um diagrama novo da UML 2 que permite ao projetista do sistema fornecer uma ótica das funcionalidades do software que até então não era possível na UML em suas versões anteriores. O DVGI foi criado para minimizar uma fragilidade de versões anteriores da UML que não permitiam ter uma visão geral das interações entre as funcionalidades centrais do software. Contudo, acredito que os idealizadores da UML foram além da simples viabilização de uma visão geral da interação entre as funcionalidades. O DVGI se tornou um importante diagrama para o projetista do software, porque ainda permite modelar especificidades num nível micro (ex. inserir um diagrama de sequência dentro do DVGI).
Bom! Temos muito o que discutir e aprender sobre o diagrama de visão geral de interação da UML. Então, vamos lá!
Nota importante: devido ao fato do DVGI ser um diagrama novo, a versão on-line do Visual Paradigm (https://online.visua l-paradigm.com/) não possui esse diagrama nas suas opções (Interaction Overview Diagram - nome em inglês do DVGI). Contudo, você consegue desenvolver esse diagrama na versão Community (não comercial) do Visual Paradigm (https://www.visual-paradigm.com/download/com munity.jsp), mas essa versão precisa ser instalada na máquina.
Conforme já mencionei no início da nossa lição, o Diagrama de Visão Geral de Interação (DVGI) foi criado para minimizar fragilidades de versões anteriores da UML onde ele não existia. A inexistência de um diagrama que permitisse ter uma visão geral na forma como os casos de uso interagissem entre si e, em alguns momentos, detalhes de casos de uso mais influentes naquelas interações, dificultava a “vida” do desenvolvedor, porque ele precisava, por si só, basear-se nos diagramas de caso de uso, diagrama de sequência e de atividades para tentar compreender esse “link” entre os casos de uso.
Para softwares grandes com muitos casos de uso, essa tarefa se tornava bastante penosa e difícil de ser realizada com sucesso. Ademais, esse tipo de atividade não deveria ser do desenvolvedor, mas sim do projetista do software. Neste momento, tinha-se um dilema: por um lado, o desenvolvedor não tem informações suficientes para o desenvolvimento do software e, por outro lado, o projetista não possui recursos suficientes para modelar aquilo que o desenvolvedor precisa.
Geralmente esse tipo de impasse era resolvido com soluções paliativas e realizadas pelos profissionais envolvidos para dar continuidade no projeto. Contudo, essa não é uma solução ideal porque a documentação do projeto do software perdia a padronização inerente à UML, uma vez que cada equipe poderia ter a sua própria solução paliativa.
Assim, a solução foi criar o diagrama de visão geral de interação para permitir uma modelagem do software de forma integrada aos diagramas já existentes na UML. O DVGI permite que se faça referências (ref) a outros casos de uso e mesmo a outros diagramas já modelados no projeto, integrando esses diagramas de forma simples e mais compreensível do ponto de vista do desenvolvedor.
Imagine que você está projetando um software e já criou os diagramas de caso de uso, classe, sequência, atividade e máquina de estado. Você repassa todos esses diagramas à equipe de desenvolvimento, mas como o sistema é grande e possui muitos casos de uso, há um elevado número de diagramas a serem analisados. Assim, a equipe de desenvolvimento fica constantemente consultando você para compreender como os casos de uso estão relacionados numa ótica mais geral, uma vez que a compreensão micro de cada caso de uso pode ser observada pelos diagramas de sequência, atividade e máquina de estado; e, por outro lado, o diagrama de caso de uso fornece uma visão muito genérica da interação entre os casos de uso, gerando dúvidas na codificação do software.
Nesse momento, você se lembra das aulas de análise e projeto de sistemas e decide desenvolver um diagrama de visão geral de interação para os casos de uso, de forma que fique mais simples a compreensão das interações entre os casos de uso para a equipe de desenvolvimento. Você faz um diagrama de visão geral de interação para cada caso de uso existente e, com essas informações, as dúvidas da equipe de desenvolvimento são sanadas, evitando-se que haja uma consulta constante ao projetista do software.
A situação relatada é comum em ambientes de desenvolvimento onde há uma divisão clara das responsabilidades no ciclo de vida do software. A utilização dos diagramas da UML na sua totalidade sempre será um caminho para “munir” a equipe de desenvolvimento com informações valiosas para o desenvolvimento de softwares coesos, com pouco retrabalho, maior manutenibilidade e documentação abrangente.
O diagrama de visão geral de interação (DVGI) é uma novidade na UML 2 e tem como objetivo fornecer mais recursos aos projetistas de software no momento que precisam apresentar as interações entre os casos de uso. Apesar da UML ser uma linguagem de modelagem de sistemas computacionais robusta, havia uma ênfase muito grande nos casos de uso de forma separada e faltava uma abordagem que permitisse sair de um nível micro (funcionamento internos dos casos de uso) para uma ótica mais macro (interações entre os casos de uso).
O diagrama de visão geral de interação possibilita que se aloque, em um único diagrama, casos de uso, diagramas de sequência, diagramas de máquinas de estado, além de permitir que sejam utilizados componentes de decisão.
Assim como os demais diagramas da UML, o DVGI tem as suas representações gráficas específicas e outras que são semelhantes aos demais diagramas. O nó de início do DVGI é o mesmo utilizado no diagrama de atividade, conforme Figura 1.
Da mesma forma que o diagrama de atividade, o DVGI também possui um “nó final” e com a mesma representação gráfica (Figura 2).
Também pode ser utilizado no diagrama de visão geral de interação a estrutura condicional ou nó de decisão, ele tem a mesma representação gráfica do diagrama de atividade, conforme Figura 3.
O próximo elemento gráfico do DVGI é a “interação”, ou seja, modela-se um dos diagramas da UML dentro do DVGI. A representação gráfica é apresentada na Figura 4, a seguir.
A representação gráfica a seguir (Figura 5) é bastante semelhante à anterior, mas possui diferenças com relação ao seu objetivo no DVGI. Na Figura 4, modela-se a interação de um caso de uso, onde internamente na figura deverão ser apresentados os elementos que compõem aquele caso de uso. Já na Figura 5, modela-se apenas a referência ao caso de uso que é utilizado, por isso o nome do caso de uso deve ficar no centro da figura e a palavra “ref” no topo superior esquerdo.
Conhecidas as principais representações gráficas do diagrama de visão geral de interação, você vai conhecer agora um diagrama completo (Figura 6).
A Figura 6 apresenta o diagrama de visão geral de interação do caso de uso “Encerrar conta bancária”. O caso de uso modelado pertence a um sistema de informação bancário e que, para o encerramento de uma conta, é necessário, primeiro, emitir o saldo da conta. O valor do saldo da conta é verificado se está positivo ou negativo. Caso esteja positivo, o caso de uso “Realizar saque” é executado, caso o saldo esteja negativo, o caso de uso “Realizar depósito” é executado. Independentemente de qual caso de uso seja executado, o caso de uso “Registrar movimento” será executado para ambas as situações, encerrando-se, assim, o diagrama.
Destaco para você que o DVGI é um diagrama poderoso em que o projetista pode usar todos os casos de uso envolvidos na finalização de um determinado caso de uso, no exemplo apresentado, o caso de uso Encerrar conta. O encerramento de uma conta não é simplesmente a execução de um único caso de uso, mas pelo menos outros quatro casos de uso estão envolvidos nessa funcionalidade.
Pode-se perceber que a criação do DVGI não é difícil e a sua leitura é bastante simples. Contudo, necessita-se ter previamente a organização dos casos de uso e os diagramas associados a cada um desses casos de uso, porque pode ser necessário que o desenvolvedor queira informações detalhadas de um caso de uso que está dentro de um DVGI. Ademais, pode-se apresentar casos de uso detalhados dentro de um DVGI, conforme Figura 7, a seguir.
A Figura 7 demonstra como é possível associar um diagrama de sequência da UML num DVGI. O caso de uso da Figura 6 foi substituído pelo diagrama de sequência do caso de uso já desenvolvido pelo projetista. Softwares como o Visual Paradigm na sua versão Desktop Community permitem que você crie links entre os diagramas facilmente, sem que seja necessário refazê-los no novo diagrama.
Ao longo desta lição, você teve a oportunidade de conhecer uma das novidades da UML 2, o Diagrama de Visão Geral de Interação. Trata-se de um diagrama que fornece uma outra ótica sobre as funcionalidades do software. Até então, a UML possuía uma ênfase muito direcionada para o funcionamento interno e individual dos casos de uso, enquanto que a interação entre esses casos de uso acontecia de forma superficial, no Diagrama de Caso de Uso. Com o diagrama de visão geral de interação, você tem a possibilidade de ampliar a ótica relacional entre os casos de uso que envolvem um processo organizacional, desde o seu início até a sua finalização.
Apesar de não ser uma obrigatoriedade você criar o diagrama de visão geral de interação, a sua criação será sempre uma boa opção quando o projeto possuir muitos casos de uso e a complexidade para compreender a interação entre eles é grande. Por outro lado, para pequenos projetos, esse tipo de diagrama pode não ter tanta contribuição, porque por meio dos diagramas iniciais (caso de uso, classe, sequência e atividade) já será possível ter uma boa compreensão da interação entre os casos de uso.
Independentemente da criação ou não do diagrama de visão geral de interação, você como responsável pelo projeto de um software precisa conhecer a fundo os diagramas da UML, porque poderá atuar, em alguns momentos, tanto como projetista, como desenvolvedor. Assim, a análise e a compreensão dos diagramas da UML deverão ser parte das suas habilidades como profissional nessa área.
GUEDES, G. T. A. UML 2: Uma Abordagem Prática. 2. ed. Rio de Janeiro: Novatec, 2011.
RUMBAUGH, J.; JACOBSON, I.; BOOCH, G. The Unified Modeling Language Reference Manual. Reading: Addison Wesley Longman, 1999.