Projeto
UML – Diagrama de Sequências
Descobrindo como modelar um diagrama de sequências
De que se trata o artigo:
Este artigo tem por objetivo apresentar as regras para se modelar um diagrama de sequência, partindo da integração com os casos de uso e modelo de classes.
Para que serve:
Fornecer aos desenvolvedores ou estudantes da área de sistemas uma linha de entendimento com o intuito de orientá-los a modelar seus diagramas de sequência.
Em que situação o tema é útil:
Para quem ainda não modelou diagramas de interação, ou para quem tem experiência e quer revisar a sintaxe permitida nesse tipo de diagrama.
A UML, na sua versão atual, nos oferece treze diagramas que tratam de aspectos diferentes de todas as fases de desenvolvimento de um sistema. Todos têm suas utilidades, mas, na prática, sabemos que é possível desenvolver a maioria dos sistemas orientados a objetos utilizando apenas três deles. Desses, já apresentei aqui os Casos de Uso e o Diagrama de Classes. E hoje, trabalhando em como modelar um Diagrama de Sequências, podemos dizer que vocês terão o conhecimento básico para desenvolver cerca de 70% dos sistemas orientados a objeto.
Veremos o que significa esse diagrama e como o mesmo se integra com os outros modelos.
O Diagrama de Sequências é um Diagrama de Interação
O Diagrama de Sequências é o principal dos quatro diagramas de interação. Os outros são: Diagrama de Comunicação, Diagrama de Visão Geral e Diagrama Temporal.
Um diagrama de interação tem por responsabilidade mostrar a interação entre os objetos de um sistema por meio de uma visão dinâmica. Essa interação entre objetos é representada por meio de mensagens. Ao se identificar as mensagens, estamos identificando os serviços oferecidos pelas classes. E, por sua vez, identificar os serviços significa que estamos descobrindo quais os métodos necessários a cada classe. Por isso, normalmente só chegamos a uma versão final do modelo de classes depois que passamos pelo diagrama de sequências, pois só com ele conseguimos enxergar claramente todos os métodos que serão necessários para atender aos casos de uso.
Apesar de todos os diagramas terem um objetivo final comum, cada um atende a uma característica particular.
O Diagrama de Sequências enfatiza a troca de mensagens dentro de uma linha de tempo sequencial.
O Diagrama de Comunicação enfatiza o relacionamento estrutural entre os objetos, sem se preocupar com o tempo determinado para cada interação.
O Diagrama de Visão Geral é uma variação do diagrama de atividades que mostra de uma forma geral o fluxo de controle dentro de um sistema ou processo de negócios. Cada nó ou atividade dentro do diagrama pode representar outro diagrama de interação.
O Diagrama Temporal mostra a mudança de estado de um objeto numa passagem de tempo, em resposta a eventos externos. Este último é mais utilizado quando o objetivo principal do diagrama é a determinação do tempo exato, o que é indicado para sistemas de tempo real.
Integrando os modelos
O Diagrama de Sequências não surge do nada e sim de uma modelagem feita a partir dos casos de uso, com o auxílio das classes já identificadas num modelo de classes. No caso de uso, estabelecemos a ordem das funcionalidades, sem nos preocuparmos com a implementação. Ao modelarmos o diagrama de sequências, representaremos por mensagens cada item descrito nos cenários principal e alternativos. Essas mensagens podem ser expressas do ator para o sistema, ou da interface para os objetos.
Para exemplificar essa modelagem, tomaremos por base um pequeno estudo de caso que se refere a um sistema de votação interna de uma empresa. Para isso, apresentaremos nas Figuras 1 e 2 os diagramas de casos de uso e a versão inicial do diagrama de classes, respectivamente. Nas Listagens 1, 2, 3, 4 e 5 apresentaremos os cenários dos principais casos de uso, para que vocês possam compreender como chegamos ao modelo de classes e como o pequeno sistema funciona.
Figura 1. Diagrama de casos de uso para o sistema gestor de votação interna de uma empresa