Partilhar via


Visualizar o código gerando diagramas de sequência

Em Visual Studio Ultimate, gerar uma diagrama de seqüência para ajudá-lo a visualizar e entender como o código implementa um método específico.Um diagrama de seqüência descreve uma interação entre objetos como uma série de linhas de vida e mensagens.Linhas de vida representam instâncias de objetos e mensagens representam chamadas de método entre esses objetos.Você pode gerar diagramas de seqüência de Visual C# .NET or Visual Basic .NET do.

ObservaçãoObservação

Um diagrama de seqüência gerado mostra elementos similares àquelas em um diagrama de seqüência UML.Um diagrama de seqüência é gerado a partir de código existe independentemente de um modelo UML e pode ser adicionado a qualquer.NET projeto.Por outro lado, um diagrama de seqüência UML é desenhado à mão sempre é parte do modelo no qual você o criou.Para mais informações, consulte Diagramas de seqüência UML: referência.

Neste tópico.

  • Gerando um diagrama de seqüência de código-fonte

  • Explorando o código em diagramas de seqüência

  • Edição do diagrama para propor alterações de Design

  • Navegando do diagrama

  • Vinculação a elementos de interação para itens de trabalho

  • Relacionamentos com outros diagramas

  • Solucionando problemas de diagramas de seqüência

Gerando um diagrama de seqüência de código-fonte

Para gerar um diagrama de seqüência do código

  1. No Visual Studio, abra o arquivo de código que contém a definição do método.

  2. Abra o menu de atalho em qualquer lugar na definição de método e escolha Gerar diagrama de seqüência.

    Gerar caixa de diálogo de seqüência

  3. No Gerar diagrama de seqüência na caixa de profundidade do máximo chamada , especifique o nível máximo de chamadas que você deseja ver.

    Por exemplo, se você desejar ver somente o primeiro nível de chamadas, especifica um nível de profundidade máxima da chamada de 1.

    ObservaçãoObservação

    O diagrama de seqüência mostrará o segundo nível de chamadas como mensagens de que nenhuma linha de vida de destino, que são chamadas de mensagens perdidas.Depois de gerar o diagrama, você pode expandir específicos de mensagens perdidos.Para obter mais informações sobre mensagens perdidas, consulte Diagramas de seqüência UML: referência.

  4. Em incluir chamadas em, escolha um escopo da tabela a seguir:

    Para ver

    Choose

    Chamadas para itens no projeto imediato

    Projeto atual

    Chamadas para itens da solução

    Solução atual (padrão)

    Chamadas para itens dentro e fora da solução

    Solução e referências externas

    Por exemplo, você pode iniciar com um diagrama de seqüência simples examinando somente as chamadas de método para itens no projeto imediato.Você pode expandir o escopo do diagrama gerando um novo mostra chamadas itens de solução.Se você deseja ver chamadas para itens que não estão na solução, você deve gerar um diagrama que inclui referências externas.

  5. Em Excluir chamadas para, você pode simplificar o diagrama mais omitindo chamadas para os seguintes itens:

    Para omitir chama

    Select

    Propriedades e eventos

    Propriedades e eventos (padrão)

    Namespace System

    Namespace System (padrão)

    Namespaces específicos

    Outros namespacese digite os espaços para nome na caixa usando uma vírgula (,) para separá-los.Não use o caractere curinga (*) caracteres como eles não são suportados.

    Para incluir chamadas para esses itens, desmarque suas caixas de seleção correspondentes.

  6. Quando terminar, escolha OK.

    Visual Studio gera um diagrama de seqüência e o adiciona ao projeto correspondente.Para obter informações sobre problemas com gerar diagramas de seqüência, consulte Solução de problemas de diagramas de seqüência.

    ObservaçãoObservação

    Declarações de matriz não aparecem em diagramas de seqüência gerado.

Para identificar e comunicar as alterações que você pode fazer sem afetar o código, você pode explorar e Modificar um diagrama de seqüência gerado.Por exemplo, você pode adicionar novas linhas de vida, mensagens, usos de interação e fragmentos.Para criar e controlar tarefas de trabalho que deseja realizar no código correspondente, você pode criar ou vincular itens de trabalho em elementos de diagrama.Para mais informações, consulte Vincular elementos de modelo e itens de trabalho.

Observação importanteImportante

Após gerar o diagrama, quaisquer alterações feitas no diagrama não aparecerá 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 do mesmo método quantas vezes desejar.

Explorando o código em diagramas de seqüência

Um diagrama de seqüência pode ajudá-lo a explorar o código e apresentá-lo para outras pessoas.Para obter o diagrama mais úteis para esses fins, experimente diferentes escopos ao gerar o diagrama.Você também pode modificar o diagrama após ele ter gerado.Por exemplo, você pode excluir as mensagens que não são interessantes para apresentar e discutir o projeto.

Você pode fazer as seguintes alterações para o diagrama de seqüência.

Para

Execute estas etapas

Mostrar o próximo nível de chamada

Abra o menu de atalho para uma mensagem de nenhuma linha de vida de destino e escolha Expandir saída.

Expanda uma mensagem em um novo diagrama

Abra o menu de atalho para uma mensagem e escolha Gerar diagrama de seqüência.

O novo diagrama é adicionado ao projeto atual.

Recolha um grupo de mensagens em uma linha de vida.

Selecione as linhas de vida que você deseja agrupar, abra o menu de atalho para a seleção e escolha Recolher.

Você pode renomear um grupo, mas o nome será perdido quando expandi-la.

Para expandir o grupo, abra o menu de atalho para ele e escolha Expandir.

Excluir elementos

Abra o menu de atalho da forma e escolha Excluir.

Melhorar o layout

Abra o menu de atalho para uma área em branco do diagrama e escolha Reorganizar o Layout.

Você também pode desfazer esse comando.

Realçar elementos selecionados

Abra o menu de atalho de um elemento e escolha Propriedades.No Propriedades janela, defina o cor campo.

Fazer anotações no diagrama

Escolha a comentário ferramenta, clique no diagrama e digite uma nota em comentário.Use o Comentário Link ferramenta para conectar o comentário a um ou mais pontos em linhas de vida ou fragmentos.

Edição do diagrama para propor alterações de Design

Você pode alterar o diagrama adicionando e excluindo elementos para ajudá-lo a considere projetos alternativos.Você também pode copiar partes do diagrama para um diagrama de seqüência UML que você tenha criado em um projeto de modelagem UML.Que permite que você associe as linhas de vida com tipos, componentes e atores de modelo UML.

A tabela a seguir resume as alterações que são úteis para descrever as propostas de design.Para mais detalhes, consulte Diagramas de seqüência UML: diretrizes.

Para

Execute estas etapas

Realce as linhas de vida, mensagens e outros elementos

Alterar o elemento cor propriedade.

-  ou  -

Link de um comentário para o elemento:

  1. No Toolbox, escolha comentárioe no diagrama, clique em próximo ao elemento.

  2. No Toolbox, escolha Comentário Linke no diagrama, selecione o comentário e escolha o elemento.

Mover linhas de vida

Arraste uma linha de vida para uma área diferente do diagrama.

Para mover um grupo de linhas de vida que tiver perdido ou encontrado mensagens, siga estas etapas para selecionar as linhas de vida antes de movê-los:

  • Desenhe um retângulo em torno de linhas de vida.

    -  ou  -

    Pressione e mantenha pressionado o CTRL enquanto você escolher cada linha de vida de chave.

    ObservaçãoObservação
    Se você usar Selecionar tudo ou CTRL+a para selecionar todas as linhas de vida e movê-los, qualquer perdido ou encontrado mensagens anexadas a essas linhas de vida não moverá.Se essa situação ocorrer, você poderá mover essas mensagens separadamente.

Mover e reordenar as mensagens

Arraste uma mensagem para cima ou para baixo no diagrama.

  1. Selecione uma mensagem e, em seguida:

  2. Para ajustar a posição da mensagem, use o Para cima e Seta para baixo chaves.

  3. Para alterar a seqüência de mensagens, use CTRL+Para cima e CTRL+Seta para baixo.

Adicionar uma linha de vida

Escolha Lifeline na Toolboxe escolha o diagrama.

Adicionar uma mensagem

Como criar mensagens
  1. No Toolbox, escolha um Synchronous ou Asynchronous mensagem.

    Para adicionar um encontrado mensagem ou mensagem perdida, use um Asynchronous mensagem.Uma mensagem encontrada vem de uma origem de evento desconhecido e transmite uma mensagem perdida para um destinatário desconhecido.

  2. No diagrama, escolha uma linha de vida de origem.

  3. Escolha uma linha de vida de destino.

    - ou -

    Para criar uma mensagem encontrada ou perdidos, escolha uma área em branco no diagrama atrás da linha de vida de origem ou na frente dele, respectivamente.

  4. Digite um novo nome para a mensagem.

Copiar linhas de vida e as mensagens de ou para outros diagramas

Copiar e colar linhas de vida.

Mensagens entre eles serão automaticamente copiadas também.

ObservaçãoObservação
Ao copiar linhas de vida de um diagrama de seqüência em um projeto de modelagem UML em um diagrama de seqüência gerado, os cabeçalhos de linha de vida podem aparecer apenas ou talvez você precise ajustar suas cores.Para corrigir esse problema, selecione as linhas de vida coladas e defina seus cor propriedades.

Coloque as mensagens em um fragmento combinado

  1. Selecione uma ou mais mensagens.

  2. Abra o menu de atalho para a sua seleção, aponte para Surround come escolha um tipo de fragmento combinado.

Use fragmentos combinados para representar seqüências alternativas, loops e outras composições de mensagens.

Mover uma mensagem para um novo diagrama

Abra o menu de atalho para uma mensagem e escolha Mover para o diagrama de.

Um novo diagrama é criado, que contém a mensagem e suas mensagens da subsidiária.No diagrama original, a mensagem é substituída por um Uso de interação.

Copiar diagrama

Copiar diagrama no Solution Explorer ou copie os arquivos no Windows Explorer.Existem dois arquivos associados com cada diagrama.

Um diagrama de seqüência gerado pode ser editado usando qualquer instância de Visual Studio Ultimatee pode ser lida usando Visual Studio Ultimate ou Visual Studio Premium.

Não realçar determinadas alterações manuais, como adições e alterações de nome

  1. Abra o menu de atalho para a superfície de diagrama de seqüência e escolha Propriedades.

  2. Definir o Mostrar alterações do Manual propriedade False.

Para

Execute estas etapas

Navegar de uma mensagem ou linha de vida para a definição de classe ou método, respectivamente

Abra o menu de atalho para a linha da vida ou mensagem e escolha Go To Definition.

Localizar a classe ou método no Explorador de arquitetura

Abra o menu de atalho para uma mensagem ou linha de vida e escolha Mostrar no Explorer arquitetura.

Para mais informações, consulte Visualizar dependências de código em gráficos de dependência.

Vinculando um diagrama de seqüência para itens de trabalho

Para ajudar a planejar o trabalho de implementação de uma alteração, você pode vincular elementos de qualquer tipo em um diagrama de seqüência para itens de trabalho Team Foundation Server.Antes de começar, certifique-se de que você está conectado a um de Team Foundation Server.Para mais informações, consulte Vincular elementos de modelo e itens de trabalho.

Para

Execute estas etapas

Criar e vincular itens de trabalho novas linhas de vida, mensagens ou outros elementos

  • Abra o menu de atalho para um ou vários elementos, escolha Create Work Iteme escolha o tipo de item de trabalho que você deseja criar.

    Um novo item de trabalho é aberta para que você possa conclui-lo.

Vincular linhas de vida, mensagens ou outros elementos para itens de trabalho

  1. Abra o menu de atalho para um ou vários elementos e escolha Link para Item de trabalho.

  2. No Link para itens de trabalho caixa de diálogo Executar uma consulta para localizar um item de trabalho ou inserir sua identificação diretamente.Você pode selecionar qualquer número de itens de trabalho.

Posteriormente, você pode repetir este comando para adicionar mais links de item de trabalho ao mesmo elemento de modelo.

Exibir itens de trabalho vinculadas

Abra o menu de atalho para um ou vários elementos e escolha Exibir itens de trabalho.

Remover links para itens de trabalho

  1. Abra o menu de atalho de um elemento e escolha Remover itens de trabalho.

  2. No Remover Links para itens de trabalho caixa de diálogo caixa, escolher os links de item de trabalho que você deseja remover.

Os vínculos entre o elemento de modelo e os itens de trabalho escolhido são excluídos.Os itens de trabalho e os elementos do modelo não são removidos.

Diretrizes para usar diagramas de seqüência gerado

As diretrizes a seguir podem ser úteis quando você está explorando o código com diagramas de seqüência gerado.

Ee317485.collapse_all(pt-br,VS.110).gifExplorando o código

Gere diagramas de dependência para obter uma visão geral dos principais agrupamentos e dependências em um corpo grande de código.Gere diagramas de seqüência para se concentrar em partes individuais do design.Para mais informações, consulte Visualizar dependências de código em gráficos de dependência.

Ee317485.collapse_all(pt-br,VS.110).gifInterpretar o diagrama

O algoritmo cria diagrama realiza uma execução simbólica do seu código.Há algumas situações em que essa técnica não cobre.Em particular, essas situações incluem:

  • Duas ou mais linhas de vida podem aparecer no diagrama onde seu código lida apenas com uma instância.Em geral, uma linha de vida de destino separado é gerada para cada mensagem.

  • O tipo de uma linha de vida é o tipo declarado no código de programa, mesmo se seu código usa sempre um subtipo.

Ee317485.collapse_all(pt-br,VS.110).gifFocalizando um aspecto do projeto

  • Escolha um dos aspectos do design para focalizar.Você pode gerar diagramas diferentes para se concentrar em diferentes aspectos e fazer cópias dos arquivos de diagrama em qualquer estágio do seu trabalho.

  • Para obter um diagrama útil que expõe claramente um aspecto do projeto, talvez você precise experimentar filtros do namespace e geração.

  • Exclua mensagens que não são relevantes para o aspecto de foco e expandir as mensagens relevantes para mostrar mais detalhes.

  • Use o Recolher comando linhas de vida do grupo que representam um grupo de colaboração de objetos, a menos que suas interações internas são interessantes para o aspecto que você enfocar.

Ee317485.collapse_all(pt-br,VS.110).gifAtualizando o Design

  • Você pode trabalhar colaborativamente em um diagrama usando o controle de versão.Recomendamos bloquear um diagrama quando você está editando, de modo que apenas uma pessoa pode editar ao mesmo tempo.

  • Usando um diagrama de seqüência gerado, você geralmente pode identificar recursos de código existente que tornam difícil alterar ou adaptar.Por exemplo, você poderá notar que uma linha de vida envia todas as mensagens, mas outros apenas respondem às mensagens, sem enviar muitos dos seus próprios.Considere se o trabalho realizado por este objeto pode ser dividido com mais eficiência entre outros objetos.Cada classe de objeto deve ter uma única tarefa claramente definidas.Em geral, essa diretiva facilita a identificar quais partes do programa devem ser alteradas quando os usuários mudam, ou reorganizar as partes em uma variante diferente do aplicativo.

  • Quando você tem um diagrama que se concentra em um aspecto específico do projeto, fazer cópias dele e editá-los para criar propostas alternativas para alterações.

  • Você pode copiar os elementos de um diagrama de seqüência gerado em um diagrama de seqüência UML.Você deve primeiro criar o diagrama de seqüência UML dentro de um projeto de modelagem UML.Lá, você pode modelar diferentes modos de exibição design atualizado e você pode vincular as linhas de vida para componentes ou classes no modelo.Você também pode estender a interação incluir atores externos.

Solucionando problemas de diagramas de seqüência

A tabela a seguir descreve problemas que podem ocorrer ao gerar diagramas de seqüência e possíveis resoluções:

Problema

Resolução

Diagrama de seqüência não pode ser gerado.

Um diagrama de seqüência não pode gerar se o System namespace é excluída e o código contém uma chamada para um método COM que aceita ref ou out parâmetros e passa um parâmetro usando o new palavra-chave.Para evitar esse problema, altere o código ou quando você gerar o diagrama, incluem o System namespace.

Um diagrama de seqüência em branco é gerado após a seguinte mensagem é exibida:

"Referência de objeto não definida para uma instância de um objeto."

Esse problema ocorre quando um diagrama de seqüência é gerado a partir de uma implementação explícita de um método de interface e o diagrama não é adicionado automaticamente ao projeto fonte.Uma implementação explícita precede o nome do método com o nome da interface e um ponto (.).

Por exemplo, esse problema ocorre quando você gerar um diagrama de seqüência da seguinte assinatura e não adicionar o diagrama de seqüência para o projeto automaticamente:

void ILinkedWorkItemExtension.OnWorkItemCreated( ) {}

Quando for possível, não incluem o nome da interface e o ponto (.).

-  ou  -

Na caixa de diálogo de geração do diagrama de seqüência, certifique-se de adicionar o diagrama de seqüência para o projeto automaticamente.

Diagrama de seqüência leva muito tempo para gerar.

- ou -

Diagrama de seqüência cai na reabertura.

Dependendo da configuração do seu computador, o diagrama de seqüência pode ser muito grande para gerar rapidamente e pode causar Visual Studio para executar fora da memória e travamento quando você fecha e reabre o diagrama.Por exemplo, um diagrama de seqüência tem 390 linhas de vida e 19.000 mensagens resulta em um arquivo de diagrama é mais de 85 MB.

Reduzir o escopo do diagrama, diminuindo a profundidade de chamadas, filtragem de namespaces desnecessários, removendo as propriedades e eventos e assim por diante.

Consulte também

Referência

Diagramas de seqüência UML: referência

Conceitos

Visualizando e entendendo o código

Visualizar dependências de código em gráficos de dependência

Criar diagramas de camada a partir do código