Modelagem UML: Criando diagramas de seqüência
Última atualização: 3 de abril de 2007
Este tutorial se aplica ao ambiente de desenvolvimento integrado do NetBeans™ 5.5 (o IDE) e o NetBeans 5.5, Módulo de modelagem UML.
Neste tutorial, você aprende como usar os recursos de modelagem UML do IDE para criar um diagrama de seqüência UML. Um diagrama de seqüência é uma representação visual da interação entre grupos de colaboração de objetos em um sistema. Os diagramas de seqüência consistem em linhas verticais chamadas linhas de vida. Cada elemento de linha de vida representa a vida de um determinado objeto. As linhas de vida são conectadas por linhas horizontais que indicam as mensagens que passam de um objeto para outro na situação para o próximo objeto na situação.
Para obter mais informações sobre como trabalhar com o NetBeans IDE, consulte a página Suporte e documentação no site do NetBeans.
Pré-requisitos
Este tutorial requer que você conclua os tutoriais adjuntos que criam um diagrama de classes e um diagrama de colaboração usando o UMLTutorialProject. Complete Modelagem UML: Criando diagramas de classes e Modelagem UML: Criando diagramas de colaboração antes de iniciar o tutorial de diagrama de seqüência.
Para que este tutorial possa ser usado, o IDE deve ser instalado em seu sistema e você deve estar familiarizado com as partes básicas do IDE. Você também deve ter uma familiaridade básica com a linguagem de programação Java e a modelagem UML. Para ter um conhecimento básico do IDE, consulte os tópicos de Fundamentos do IDE na ajuda on-line. Uma boa fonte para as técnicas e as teorias da modelagem UML é a página de recursos oficial do UML em http://www.uml.org/.
Requisitos do sistema
Este tutorial presume que o seu sistema atende aos requisitos especificados nas Notas de versão do NetBeans 5.5, Módulo de modelagem UML.
Software necessário para o tutorial
Antes de começar, você deve instalar o seguinte software no seu computador:
Conteúdo
superior
Usando diagramas de seqüência
Um diagrama de seqüência é um modelo que descreve como os grupos de objetos colaboram em algum comportamento ao longo do tempo. O diagrama de seqüência captura o comportamento de um único caso de uso e mostra os objetos e as mensagens que passaram entre esses objetos no intervalo de tempo do caso de uso específico. O diagrama de seqüência não mostra as relações entre os objetos.
O diagrama de seqüência pode ser usado para:
- Descrever a seqüência geral do fluxo de controle quando há muitos métodos curtos em classes diferentes
- Mostrar processos e ativações simultâneos
- Mostrar seqüências de horas que não são facilmente representadas em um diagrama de colaboração
- Mostrar formatos gerais que não lidam com objetos mas com interação de classe
superior
Criando diagramas de seqüência
Este tutorial usa o diagrama de classes criado no tutorial Modelagem UML: Criando diagramas de classes e o diagrama de colaboração que é criado no tutorial Modelagem UML: Criando diagramas de colaboração. Você deve concluir estes tutoriais antes de seguir com estas etapas.
Esta seção contém os seguintes procedimentos:
superior
Para gerar um diagrama de seqüência
- Se necessário, inicie o IDE.
- Na janela Projetos, clique com o botão direito do mouse no nó UMLTutorialProject > Modelo > CollaborationDiagram e escolha Criar diagrama a partir de elementos selecionados no menu pop-up.
O Novo assistente é aberto e exibe a página Criar novo diagrama.
Observação: Você está criando o escopo de um dos tipos de diagramas de interação disponíveis no menu pop-up: Diagrama de colaboração e diagrama de seqüência. Esses diagramas enfatizam as interações de objeto.
- Na lista Tipo de diagrama, selecione Diagrama de seqüência.
- No campo Nome do diagrama, digite SequenceDiagram.
- Deixe a definição padrão no campo Espaço de nome e clique em Finalizar.
O IDE realiza os seguintes procedimentos:
- Cria o nó SequenceDiagram sob o nó CollaborationDiagram na janela Projetos
- Exibe o novo diagrama no Editor de diagramas (o diagrama consiste em elementos de linha de tempo e mensagens do Editor de diagramas)
- Abre a Paleta de modelagem e exibe os ícones usados na criação de diagramas de seqüência
Seu diagrama agora deve se parecer com a figura seguinte.

superior
Para refinar o diagrama gerado
Objetos em uma transação são desenhados como linhas verticais pontilhadas com os nomes aparecendo na parte superior. Como a ordem dos elementos de linha de tempo não pode ser predefinida quando o diagrama de seqüência é criado, você não precisa reordená-los nesse momento.
- Selecione a linha de tempo rotulado User e mova-a para a esquerda do diagrama.
- Reordene os elementos de linha de tempo restantes, colocando-os uniformemente no Editor de diagramas. Ponha as linhas de tempo na ordem segunda da esquerda para a direita:
- User
- ATM
- Consortium
- Branch
Seu diagrama agora deve se parecer com a figura seguinte.

superior
Adicionando uma mensagem ao elemento de auto-referência
Uma mensagem para o elemento de diagrama de auto-referência representa uma mensagem destinada ao objeto de chamada. A operação interna representada neste diagrama é a validação do saque no objeto ATM.
- Talvez você precise aumentar os elementos de linha de vida para facilitar a colocação dos elementos de mensagem.
Para aumentar as linhas de vida, siga estas etapas:
- Selecione o elemento de linha de vida User.
- Clique na caixa azul no centro inferior e arraste a caixa para baixo a fim de aumentar a linha de vida.
- Repita as etapas "a" e "b" para aumentar as linhas de vida restantes até que o seu diagrama se pareça com a figura seguinte.

- Na seção Básico da Paleta de modelagem, selecione o ícone de mensagem para si mesmo
.
- Clique na seção inferior do elemento de linha de vida ATM estendido.
O IDE coloca um elemento de auto-referência na linha de vida.
- Clique com o botão direito do mouse em qualquer local no Editor de diagramas para desmarcar o ícone de mensagem para si mesmo.
- No elemento de auto-referência, clique na seta da mensagem inferior.
As propriedades da mensagem aparecem na janela Propriedades.
- Na janela Projetos, no campo Nome, digite validateCashOnHandOperation e pressione Enter.
- Clique com o botão direito do mouse na seta da mensagem no elemento de auto-referência e selecione Operações no menu pop-up. A figura seguinte indica onde posicionar o cursor. Observe a barra dupla logo acima da seta superior.

- Escolha Operações > Adicionar operação no menu pop-up.
Um editor de uma linha é aberto, exibindo a seguinte informação:
visibility returnType name(parameter) {properties...}
- Defina as suas operações da seguinte forma
public boolean getIsOperating()
A parte superior da mensagem é rotulada conforme mostrado na figura seguinte.

superior
Usando o elemento de mensagem de chamada
Como a operação validateCashOnHand é parte da classe ATM, você precisa colocar um fluxo de mensagem na linha de vida para chamar essa operação.
- Na seção Básico da Paleta de modelagem, selecione o ícone de mensagem síncrona
.
- Clique no elemento de linha de vida User, logo abaixo da mensagem
getCashOnHand().
- Clique novamente no elemento de linha de vida ATM diretamente à direita do seu primeiro clique.
Uma mensagem e uma mensagem de retorno aparecem no diagrama como mostrado na figura seguinte.

Observação: Se não quiser que a mensagem de retorno apareça no diagrama, clique com o botão direito do mouse no espaço em branco do Editor de diagramas. Desmarque Mostrar todas as mensagens de retorno no menu pop-up.
- Clique com o botão direito do mouse em qualquer local no Editor de diagramas para desmarcar o ícone de mensagem síncrona.
- Clique com o botão do mouse na mensagem que acabou de criar e escolha Operações > Adicionar operação no menu pop-up.
- Digite validateCashOnHand e pressione Enter.
O IDE rotula a mensagem no diagrama e a adiciona como uma operação na classe ATM no diagrama de classes. Na janela Projetos, expanda o nó da classe ATM para verificar se a lista de operações se parece com a figura seguinte.

superior
Usando a opção de mensagens de expansão automática
Para ajudar no processo de design, o IDE tem uma opção de mensagens de expansão automática. Com a expansão automática selecionada, quando uma nova mensagem é colocada no diagrama, o espaço se expande de acordo com a largura da mensagem.
- Na área de cabeçalho cinza acima dos elementos de linhas de vida, clique com o botão direito do mouse na área entre o nomes de elemento User e ATM para definir a opção de expansão automática.
Um menu pop-up se abre.
- Selecione Definir largura para largura de mensagem.
Uma barra indicadora aparece no controle entre os dois nomes de elemento como mostrado na figura seguinte.

- Repita as etapas para definir a opção de largura da mensagem entre os elementos ATM e Consortium, e entre os elementos Consortium e Branch.
superior
Usando a notação Criar mensagem
A notação Criar mensagem permite a criação de um elemento de linha de vida ou instância.
- Na seção Básico da Paleta de modelagem, selecione o ícone de criação de mensagem
.
- Clique na parte inferior da linha de vida Branch.
Observação: Tenha o cuidado de clicar exatamente na linha ou o link não será desenhado corretamente.
- Desenhe o link à direita da linha de vida Branch e clique novamente.
Uma mensagem e uma linha de vida são colocadas no diagrama conforme mostrado na figura seguinte.

- Pressione a tecla ESC para desmarcar o ícone.
- Selecione a nova linha de vida.
A janela Propriedades mostra as propriedades deste elemento de linha de vida.
- Na janela Propriedades, na linha rotulada Classificador de representação, clique na seta para baixo.
Uma lista suspensa aparece.
- Selecione CashierStation na lista suspensa e pressione Enter.
- Clique no Editor de diagramas para ver o elemento de linha de vida rotulado.
Observação: Você pode ampliar o novo elemento de linha de vida até ver o nome completo, CashierStation.
Seu diagrama deve se parecer com a figura seguinte.

superior
Adicionando links assíncronos
Um elemento de mensagem assíncrona representa uma mensagem que não bloqueia o objeto de chamada. Este tipo de mensagem pode criar um novo objeto, criar um novo segmento e comunicar com um segmento existente.
- Na seção Básico da Paleta de modelagem, selecione o ícone de mensagem assíncrona
.
- Desenhe um link entre as linhas de vida Branch e CashierStation, clicando no elemento de linha de vida Branch, em seguida, clique no elemento de linha de vida CashierStation.
- Pressione a tecla ESC para desmarcar o ícone.
- Clique com o botão direito do mouse no novo link e escolha Operação > public int getStationID no menu pop-up.
Esta ação adiciona a operação nesta mensagem, como mostrado na figura seguinte.

superior
Usando o elemento de fragmento combinado
O fragmento combinado permite que você represente componentes lógicos, tais como alternativas, opções, exceções, mesclagens paralelas, loops, negações, regiões críticas e afirmações diretamente em seu diagrama de seqüência. Fragmentos combinados fornecem um meio de definir condições especiais e subprocessos para quaisquer seções de quaisquer linhas de vida, especificando uma área em que a condição ou subprocesso se aplica.
- Na seção Controle da Paleta de modelagem, selecione o ícone de fragmento combinado
.
- Para desenhar o elemento de fragmento combinado de forma que ele encapsule a mensagem, public void validateCashOnHand, clique fora do retângulo pontilhado azul que representa a mensagem, e clique e arraste o retângulo para cercar a mensagem .
Tenha o cuidado de não selecionar qualquer um dos elementos de linha de vida ao clicar. Seu fragmento combinado deve ser semelhante à figura seguinte.

- Pressione a tecla ESC para desmarcar o ícone.
- Clique com o botão direito do mouse no rótulo assert no elemento de fragmento combinado e escolha Operador de interação > loop.
Observação: Um Operador de interação de loop designa o fragmento combinado que representa um loop. Todas as vezes que o loop se repete, a expressão de guarda é avaliada. A expressão de guarda pode incluir um número específico de iterações do loop.
- Clique com o botão direito do mouse no rótulo de fragmento combinado loop e escolha Operando da interação > Editar restrição de interação no menu pop-up.
O IDE exibe uma caixa de expressão no elemento de fragmento combinado de destino.
- Clique duas vezes na expressão da palavra para tornar a caixa da expressão editável, como mostrado na figura seguinte.

- Digite x < 10 e pressione Enter.
- Clique no Editor de diagramas.
A sua expressão é aceita e exibida na caixa. Seu diagrama agora deve se parecer com a figura seguinte.

superior
Salvando seu diagrama
Depois de concluir o seu diagrama de seqüência, você pode salvá-lo.
- No Editor de diagramas, clique com o botão direito do mouse na guia SequenceDiagram.
- Selecione Salvar documento no menu pop-up.
O menu fecha e o diagrama de classes é salvo.
Observação: Você também será solicitado a salvar ou descartar seus diagramas quando sair do IDE.
superior
Resumo
Neste tutorial, você aprendeu a criar um diagrama de seqüência usando um diagrama de colaboração existente. Você aprendeu como realizar as seguintes tarefas:
- Gerar um diagrama de seqüência a partir de um diagrama de colaboração existente
- Adicionar mensagens ao diagrama, usando ícones na Paleta de modelagem
- Adicionar links ao diagrama
- Adicionar um elemento de fragmento combinado
- Salvar o diagrama
superior