Diagramas de seqüência UML: Diretrizes
Em Visual Studio Ultimate, você pode desenhar um diagrama de seqüência para exibir uma interação. Uma interação é uma seqüência de mensagens entre típicas instâncias de classes, componentes, subsistemas ou atores. Para criar um diagrama de seqüência UML, o arquitetura menu, clique em Novo diagrama.
Há dois tipos de diagramas de seqüência:
Diagramas de seqüência baseada em código podem ser gerados a partir.Código de programa NET. Para obter mais informações, consulte Como: Explore o código com diagramas de seqüência.
Diagramas de seqüência UML fazem parte de projetos de modelagem UML.
Este tópico é sobre os diagramas de seqüência UML.
Para obter informações detalhadas sobre os elementos que você pode ver em um diagrama de seqüência, consulte Diagramas de seqüência UML: Referência.
Neste tópico
Usando diagramas de seqüência UML
Etapas básicas para diagramas de seqüência de desenho
Criando e usando diagramas de seqüência simples
Classes e linhas de vida
Criação de seqüências de interação reutilizáveis
Recolhimento de grupos de linhas de vida
Descrever as estruturas de controle com fragmentos
Diagramas de seqüência de geração do código
Usando diagramas de seqüência UML
Você pode usar diagramas de seqüência para uma variedade de finalidades em diferentes níveis de detalhe do programa. Ocasiões típicos para um diagrama de seqüência de desenho são:
Se você tiver um diagrama de caso de uso que resume os usuários do sistema e seus objetivos, você pode desenhar diagramas de seqüência para descrever como os principais componentes do sistema interagem para cumprir a meta de cada caso de uso. Para obter mais informações, consulte Diagramas de caso de uso UML: Diretrizes.
Se você tiver identificado a mensagens que chegam a uma interface de um componente, você pode desenhar diagramas de seqüência para descrever como as partes internas do componente interagem para atingir o resultado necessário para cada mensagem recebida. Para obter mais informações, consulte Diagramas de componente UML: Diretrizes.
Diagramas de seqüência de desenho tem várias vantagens:
Você pode ver facilmente como as tarefas são distribuídas entre os componentes.
Você pode identificar padrões de interação que tornam difícil de atualizar o software.
Relação com outros diagramas
Você pode usar diagramas de seqüência UML junto com outros diagramas de várias maneiras.
Linhas de vida e tipos
As linhas de vida que você desenhar em um diagrama de seqüência podem representar típicas instâncias dos componentes ou classes em seu sistema. Você pode criar linhas de vida a partir de tipos e tipos de linhas de vida e mostrar os tipos de diagramas de classe UML e diagramas de componente UML. Para obter mais informações, consulte Classes e linhas de vida.
Tipos de parâmetro
Você também pode descrever em um diagrama de classe UML tipos de parâmetros e retornados os valores que foram usados nas mensagens enviadas entre as linhas de vida.
Use os detalhes do caso
Um caso de uso representa o objetivo de um usuário, juntamente com uma seqüência de etapas para atingir a meta. A seqüência de etapas pode ser descrita de diversas maneiras. Uma opção é desenhar um diagrama de seqüência que mostra as interações entre usuários e a componentes principais do sistema. Para obter mais informações, consulte Diagramas de caso de uso UML: Diretrizes.
Código-fonte
Você pode gerar um diagrama de seqüência de código-fonte. Você pode revisar o diagrama para experimentar diferentes opções de design. Você também pode copiar o conteúdo para um diagrama de seqüência em um projeto de modelagem, se desejar. Para obter mais informações, consulte Diagramas de seqüência de geração do código.
Etapas básicas para diagramas de seqüência de desenho
Para obter uma lista completa dos elementos em diagramas de seqüência, consulte Diagramas de seqüência UML: Referência.
Observação |
---|
As etapas detalhadas sobre como criar qualquer um dos diagramas de modelagem são descritas na Como: Editar um modelo UML e diagramas. |
Para criar um diagrama de seqüência
Sobre o arquitetura menu, clique em Novo diagrama.
Em modelos de, clique em Diagrama de seqüência UML.
Nome do diagrama.
Em Adicionar ao projeto de modelagem, selecione um projeto de modelagem existente em sua solução, ou criar um novo projeto de modelageme em seguida, clique em OK.
Um novo diagrama de seqüência aparece com o Diagrama de seqüência caixa de ferramentas. A caixa de ferramentas contém os elementos necessários e conectores.
Para desenhar um diagrama de seqüência
Arraste linhas de vida (1) da caixa de ferramentas para o diagrama para representar as instâncias de classes, componentes, atores ou dispositivos.
Observação Você também pode criar uma linha de vida, arrastando uma classe existente, a interface, o ator ou o componente de Gerenciador de modelos UML para o diagrama. Isso cria uma linha de vida que representa uma instância do tipo escolhido.
Desenhe mensagens para mostrar como as linhas de vida colaboram para atingir uma meta específica.
Para criar uma mensagem (3, 4, 6, 7), clique em uma ferramenta de mensagem. Clique em linha de vida de envio no ponto onde você deseja que a mensagem para iniciar e clique em linha de vida de recebimento.
Uma ocorrência de execução (5) aparece na linha de vida de recebimento. A ocorrência de execução representa um período de tempo durante o qual a instância é executar um método. Você pode criar outras mensagens de iniciar a partir de uma ocorrência de execução.
Para mostrar uma mensagem que vem de uma fonte de evento desconhecido (9) ou transmite para destinatários desconhecidos (10), desenhe uma mensagem assíncrona de ou para o espaço em branco no diagrama. Essas mensagens são chamadas de encontrado mensagens (9) e mensagens perdidas (10).
Observação Para mover um grupo de linhas de vida que foram perdidas ou encontradas mensagens, siga estas etapas para selecionar as linhas de vida antes de movê-los: Desenhar um retângulo em torno dessas linhas de vida, ou mantenha pressionada a CTRL enquanto você clica em cada linha de vida de chave. Se você usar Selecionar tudo ou CTRL+a para selecionar todas as linhas de vida e, em seguida, movê-los, qualquer perdidas ou encontradas mensagens anexadas para essas linhas de vida não será movido. Se essa situação ocorrer, você pode mover essas mensagens separadamente.
Desenhe diagramas de seqüência para cada mensagem principal para o mesmo componente ou sistema.
Para alterar a ordem das mensagens
Arraste uma mensagem para cima ou para baixo na sua linha de vida. Ele pode arrastar sobre outras mensagens, ou dentro ou fora de um bloco de execução.
- ou -
Clique na mensagem e use o Seta para cima e Seta para baixo chaves para ajustar posições de mensagem. Use SHIFT + seta para cima e SHIFT + seta para baixo para alterar a ordem das mensagens.
Para mover ou copiar as seqüências de mensagem no diagrama de seqüência
Uma mensagem (3, 4) com o botão direito e clique em Copy.
Clique com o botão direito a ocorrência de execução (5) ou uma linha de vida (1) do qual você deseja que a nova mensagem a ser enviado e clique em Colar. O novo remetente pode estar em um diagrama diferente se desejar.
Uma cópia da mensagem e todas as suas mensagens subsidiária é adicionada ao final da ocorrência de execução ou no final da linha de vida.
Observação A mensagem colada sempre aparece no final da linha de vida ou ocorrência de execução. Após você ter colado a ele, arraste-o para uma posição anterior.
Para melhorar o layout de um diagrama de seqüência
Uma parte em branco do diagrama com o botão direito e clique em Reorganizar o Layout.
Para desfazer a operação, clique em Editare em seguida, clique em Desfazer.
Para alterar o pacote que é proprietária da interação
Em Gerenciador de modelos UML, encontre a interação do diagrama de seqüência exibe.
Observação A interação não aparecerá na Gerenciador de modelos UML até que você adicionar a primeira linha de vida para o diagrama de seqüência.
Arraste a interação no pacote.
- ou -
A interação com o botão direito e clique em Recortar. O pacote com o botão direito e clique em Colar.
Criando e usando diagramas de seqüência simples
Forma mais simples e mais amplamente usado de diagrama de seqüência contém apenas linhas de vida e mensagens. Um diagrama desse tipo permite mostrar claramente uma seqüência típica de interações entre objetos em seu design, ou entre o seu sistema e seus usuários. Isso é com freqüência suficiente para ajudá-lo a discutir e comunicar seu design.
Aqui estão algumas coisas a serem considerados quando você desenha um diagrama de seqüência simples.
Tipos de mensagem
Existem três ferramentas que você pode usar para criar mensagens.
Use o Synchronous ferramenta para descrever uma interação na qual o remetente aguarda o receptor retornar uma resposta (3).
A << retornar >> seta será exibida no final da ocorrência de execução. Ele indica que o retorno do controle para o remetente.
Use o Asynchronous ferramenta para descrever uma interação na qual o remetente pode continuar imediatamente sem aguardar que o receptor (4).
Use o criar ferramenta para descrever uma interação na qual o remetente cria o receptor (8).
Uma mensagem de criação deve ser a primeira mensagem de que o destinatário recebe.
Anotar as interações
Para descrever mais detalhes sobre a seqüência, você pode colocar um comentário em qualquer lugar no diagrama.
Usando Links de comentário, você pode vincular um comentário para linhas de vida, execuções, usos de interação e fragmentos.
Aviso
Quando você deseja anexar a um comentário a um determinado ponto na seqüência, vinculá-lo a uma ocorrência de execução, o uso de interação, ou fragmento. Não vinculá-lo a uma linha de vida, porque nesse caso, ele não permanece anexado no ponto na seqüência correto.
Use um comentário para:
Observe o que foi alcançado em pontos-chave na seqüência. Isso ajuda os leitores para ver os objetivos das interações.
Descreva o objetivo geral de toda a seqüência. Anexar o comentário para a ocorrência de execução inicial ou deixá-lo ou não. Por exemplo, "cliente escolheu os itens do menu e tem um preço.
Descreva as responsabilidades de cada linha de vida. Anexe o comentário para a linha de vida. Por exemplo, "pedidos Manager coleta opções de menu do cliente."
Observe as exceções ou alternativas que podem ser executadas como uma alternativa para a seqüência típica mostrada. Por exemplo "cliente pode optar por ignorar o restante dessa seqüência."
- Considere o uso de fragmentos como uma alternativa mais formal para esse tipo de nota. Consulte descrevendo as estruturas de controle com fragmentos
Decidindo o escopo do diagrama
É importante saber claramente que o diagrama destina-se a mostrar.
Iniciando evento
Cada diagrama deve mostrar a seqüência de interações resulta de um evento de inicialização. Isso pode ser, por exemplo:
Um usuário inicia um caso de uso, por exemplo, abrir a página da Web para comprar uma refeição.
Uma mensagem de componente de um sistema para outro, por exemplo, consultar a disponibilidade dos itens que um cliente deseja comprar.
Um evento disparado por uma alteração de estado, por exemplo, ações de um item cair abaixo de um limite.
Nível de detalhe
Diagramas de seqüência podem mostrar os diferentes níveis de detalhe. Você pode decidir o nível de detalhe em duas dimensões separadas quase independentemente:
Linhas de vida podem representar um desses níveis de detalhe:
Objetos no código de programa, que existe, ou você está desenvolvendo.
Componentes ou seus subcomponentes, geralmente omitindo fachadas, proxies e outros mecanismos de connective.
Seu sistema e os atores externos
Mensagens podem representar um desses níveis de detalhe:
Mensagens de software no código de programa em uma API ou interface da Web.
Transações ou sub-transactions, por exemplo, entre usuários e o sistema ou entre código e o banco de dados.
Casos de uso - principais interações entre usuários e o sistema.
Se você está explorando o código existente ou descrevendo um novo design, é freqüentemente útil desenhar e discutir o menos detalhadas modos de exibição.
Descrevendo variações
O diagrama mostra uma seqüência única, típica de eventos. Se você quiser mostrar possibilidades alternativas como, por exemplo, os cenários de falha, você pode usar qualquer uma dessas opções:
Desenhar diagramas de seqüência separada para descrever os cenários
Use Descrevendo a estruturas de controle com fragmentos para mostrar os loops, alternativas e assim por diante.
Avaliando o Design
Você pode usar o diagrama para avaliar a distribuição de tarefas entre seus objetos ou componentes. Considere a refatoração se você vir esses padrões:
Uma linha de vida parece fazer de tudo, fazer chamadas para todo o resto, enquanto as outras linhas de vida apenas respondem passivamente.
Muitas mensagens cruzar as linhas de vida. Cada linha de vida deve enviar mensagens para os vizinhos poucos e não deve se comunicar com seus vizinhos vizinhos. Normalmente deve ser possível organizar as linhas de vida, para que haja somente alguns locais onde as mensagens entre linhas de vida; e onde há cruzamentos, a linha de vida de destino deve não também trocar mensagens com as linhas de vida transversais.
Algumas linhas de vida parecem lidar com mais de um tipo de tarefa. Deveria fácil para localizar uma sentença de sucinta que descreve as responsabilidades de cada linha de vida, resumindo o trabalho que ele faz em resposta a cada mensagem que ele recebe.
Classes e linhas de vida
As linhas de vida em seus diagramas de seqüência mostram as instâncias de classes ou interfaces de componente. Você pode nomear uma linha de vida de duas maneiras:
Para essa finalidade. |
Use este formato |
---|---|
Anônima instância de um tipo. Use esta opção se você tiver apenas uma linha de vida de cada tipo. |
typeName |
Instância nomeada de um tipo. Use esta opção Mostrar uma seqüência que envolve mais de uma instância do mesmo tipo. |
objectName:typeName |
Criando linhas de vida de tipos
Você pode criar novas linhas de vida das classes que você já definiu, por exemplo em um diagrama de classe.
Observação |
---|
Verifique se que você tiver um diagrama de seqüência existente antes de executar esta tarefa. |
Para criar uma linha de vida de um tipo existente
Arraste uma classe, o componente ou a interface do Gerenciador de modelos UML um diagrama de seqüência.
- ou -
Clique com o botão direito na classe, componente ou interface em seu respectivo diagrama e, em seguida, clique em Criar Lifeline.
No Criar Lifeline caixa de diálogo, selecione um diagrama de seqüência e, em seguida, clique em OK.
Será exibida uma nova linha de vida de instância nomeada, cujo tipo é o tipo que você arrastou.
Observação Você pode repetir essa ação quantas vezes desejar. Isto irá criar linhas de vida com nomes de instância diferente.
Para alterar o tipo de uma linha de vida.
Uma linha de vida com o botão direito e clique em Propriedades.
No Propriedades janela, defina a tipo de propriedade. Você pode selecionar um tipo no menu suspenso ou digite um novo nome.
A criação de Classes de linhas de vida
Quando você tiver criado um ou mais diagramas de seqüência, você pode resumir as linhas de vida criando interfaces ou classes deles.
Para criar uma classe ou interface a partir de uma linha de vida.
Clique com o botão direito na linha de vida e, em seguida, clique em Criar classe ou Criar Interface.
Uma nova classe ou interface aparece no Gerenciador de modelos UML.
Crie operações na classe ou interface para cada mensagem que recebe de linha de vida:
Selecione as mensagens que você deseja incluir.
Clique com o botão direito das mensagens e clique em Método Create.
A nova classe ou interface possui operações para cada mensagem selecionada.
O nome da operação aparece abaixo de cada seta de mensagem e, no operação a propriedade da mensagem.
Se sua mensagem incluiu parâmetros no "(parameter: formulário tipo) ", eles aparecerão na lista de parâmetros da operação de nova.
Observação Se você adicionar novas mensagens no diagrama de seqüência, você deve repetir esta etapa.
Para exibir a nova classe ou interface detalhadamente, adicioná-lo a um diagrama de classe ou componente.
Abra ou crie um diagrama de classe ou componente.
Arraste a nova classe ou interface de Gerenciador de modelos UML a um diagrama de classe.
A classe ou interface é exibida no diagrama de classe.
- ou -
Arraste a nova interface de Gerenciador de modelos UML em um componente ou uma porta em um diagrama de componente.
A interface aparece no componente como um pirulito.
Criação de classes de parâmetros
Você pode incluir parâmetros nas mensagens em um diagrama de seqüência. Você pode usar um diagrama de classe UML para descrever os tipos de parâmetro.
Criação de seqüências de interação reutilizáveis
Você pode usar um diagrama separado para descrever uma seqüência que contém o detalhe que você deseja separar ou que é comum entre vários diagramas.
Você pode criar um retângulo de uso de interação (12) em um diagrama que aponta para os detalhes em outro diagrama.
Clique duas vezes em um uso de interação para abrir o diagrama de seqüência que é vinculado a ele.
Para criar uma seqüência de interação reutilizáveis de linhas de vida existentes
No caixa de ferramentas, clique em O uso de interação.
No diagrama de seqüência, mantenha o botão do mouse pressionada enquanto arrasta entre as linhas de vida que você deseja incluir na seqüência reutilizável. Iniciar na posição vertical onde deseja inserir o uso de interação.
Um uso de interação é exibido entre as linhas de vida selecionadas no diagrama de seqüência.
Clique duas vezes no nome sobre o uso de interação e renomeá-lo para descrever o efeito da seqüência reutilizável neste diagrama.
- ou -
Escreva o nome como uma chamada de função com parâmetros.
Vincule o uso de interação a outro diagrama de seqüência. Clique com o botão direito do uso de interação e um:
Clique em Criar a nova seqüência para criar um novo diagrama de seqüência
- ou -
Clique em Link para a seqüência para vincular a um diagrama existente.
Visual Studiocria um vínculo entre o uso de interação e a nova seqüência de interação.
Um novo diagrama de seqüência aparece em sua solução. Ele contém as linhas de vida que você usou para criar o uso de interação.
Observação Somente as linhas de vida usado para criar o uso de interação será incluídas. O novo diagrama não incluirão linhas de vida criado após a interação utilizada, mesmo se o uso de interação com os aborda agora.
Para criar uma seqüência reutilizável de mensagens existentes
A mensagem que você deseja mover e, em seguida, clique com o botão direito Mover para o diagrama de.
Visual Studio:
Substitui com uma interação usa a mensagem selecionada e quaisquer mensagens de subsidiárias.
Move as mensagens de substituição para um novo diagrama de seqüência.
Cria um vínculo entre o uso de interação e o novo diagrama de seqüência.
Para navegar até a seqüência referenciada por um uso de interação
Clique duas vezes o uso de interação.
- ou -
O uso de interação com o botão direito e clique em Ir para a seqüência.
A criação de um espaço reservado com um uso de interação
Você pode criar um interação de uso sem vinculá-la a um outro diagrama. Você pode usar isso como um espaço reservado para uma parte da seqüência cujos detalhes ainda estão para ser resolvidas. Use o nome do uso de interação para indicar o resultado desejado.
Recolhimento de grupos de linhas de vida
Você pode recolher um conjunto de linhas de vida juntos, para que o grupo aparece como uma linha de vida. Isso ajuda a visualizar a um grupo de objetos como um único componente. Mensagens e usos de interação entre linhas de vida de um grupo recolhida ficam ocultos. Mensagens e seqüências de interação que incluem outras linhas de vida são mostradas.
Para recolher um grupo de linhas de vida juntos
Selecione dois ou mais linhas de vida.
Clique com o botão direito deles e clique em Recolher.
As linhas de vida separadas são substituídas por uma única linha de vida.
Mensagens e usos de interação que envolvem apenas os membros do grupo ficam ocultos.
Para renomear o grupo, clique no nome.
Observação O nome do grupo serão perdido quando você expandir o grupo.
Para expandir um grupo recolhido
Clique com o botão direito na linha de vida recolhida e clique em Expandir.
Observação O nome do grupo será perdida, juntamente com os links a partir do grupo para comentários ou itens de trabalho.
Descrever as estruturas de controle com fragmentos
Você pode usar os fragmentos combinados (13) para definir os loops e ramificações de processamento simultâneo em um diagrama de seqüência. Como alternativa, considere o uso de um diagrama de atividade. Diagrama de atividade não é tão útil mostrar mensagens entre os atores, mas em alguns casos é melhor mostrando ramificações, loops e a simultaneidade.
Para obter uma lista completa dos tipos de fragmento, consulte Descrever o fluxo de controle com fragmentos em diagramas de seqüência UML.
Para criar um fragmento combinado
Selecione uma mensagem ou uma seqüência de mensagens inicial todos na mesma linha de vida ou ocorrência de execução.
Observação Selecione as setas de mensagem, não as ocorrências de execução que as mensagens apontam para.
Uma das mensagens de atalho, aponte para Circundar come em seguida, clique no tipo de fragmento que você precisa.
Um novo fragmento é exibida. Ele contém as mensagens que você selecionou.
Se o tipo de fragmento combinado permite que vários fragmentos, também aparece um fragmento vazio.
Para definir o protetor de um fragmento, clique com o botão direito na borda do fragmento e, em seguida, clique em Propriedades. Definir o Guard propriedade.
O protetor é usado para definir a condição para uma ramificação ou um loop.
Para adicionar um novo fragmento de um tipo que permite que vários fragmentos, o limite de um fragmento de atalho e aponte para Add. Clique em operando de interação antes de ou operando de interação após.
Para adicionar um fragmento de novas mensagens, use as ferramentas de mensagem, ou copiar e colar.
Diagramas de seqüência de geração do código
Você pode gerar um diagrama de seqüência de uma definição de método em um Visual C# ou Visual Basic de arquivo de código.
Um diagrama de seqüência gerado é muito semelhante a um diagrama de seqüência que você tenha criado em um projeto de modelagem. Mas os elementos em um diagrama de seqüência gerados não aparecem no Gerenciador de modelos UML.
Para gerar um diagrama de seqüência do código
Em Visual Studio, abra o arquivo de código que contém a definição de método.
Clique com o botão direito em qualquer lugar dentro da definição de método e clique em Gerar diagrama de seqüência.
Para obter mais informações, consulte Como: Explore o código com diagramas de seqüência.
Observação Depois de gerar o diagrama, todas as alterações feitas no diagrama não aparecerão no código e quaisquer alterações feitas no código não aparecerá no diagrama. Para mostrar essas alterações, você deve gerar um novo diagrama de seqüência. Você pode gerar um novo diagrama de seqüência usando o mesmo método quantas vezes desejar.
Você pode navegar a partir de linhas de vida e mensagens para as definições de código das classes e métodos que eles representam.
Para navegar de mensagens e linhas de vida geradas para o código
- Direito de uma mensagem ou gerada de linha de vida e, em seguida, clique em Ir para definição de.
Copiando seqüências geradas para um modelo UML
Você pode copiar as linhas de vida, mensagens e outras partes de uma seqüência gerada para um diagrama de seqüência em um projeto de modelagem.
Para copiar um diagrama de seqüência gerado para ou de um modelo UML
Em um diagrama de seqüência, selecione os elementos que você deseja copiar, como, por exemplo, mensagens e linhas de vida. Se você deseja copiar tudo no diagrama, o Editar menu, clique em Selecionar tudo.
No menu Edit, clique em Copy.
Crie ou abra um diagrama de seqüência em um projeto de modelagem. Para saber como fazer isso, consulte Etapas básicas para diagramas de seqüência de desenho.
No menu Edit, clique em Undo.
Cópias dos elementos selecionados aparecem no diagrama.
Observação Talvez você precise ajustar a cor dos elementos colados. Selecione-os e definir a cor no Propriedades janela.
Consulte também
Referência
Diagramas de seqüência UML: Referência
Conceitos
Como: Editar um modelo UML e diagramas
Diagramas de caso de uso UML: Referência
Diagramas de classe UML: Referência