Como: Explore o código com diagramas de seqüência

Em Visual Studio Ultimate, gerar um diagrama de seqüência para ajudá-lo a visualizar e compreender 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 as chamadas de método entre tais objetos. Você pode gerar diagramas de seqüência de Visual C# .NET or Visual Basic .Código NET. Para gerar diagramas de seqüência de ASP.NET projetos de site, instale o Visual Studio 2010 Microsoft Visual Studio 2010 Visualization and Modeling Feature Pack.

ObservaçãoObservação

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

Para identificar e comunicar as alterações que deseja tornar 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, os usos de interação e fragmentos.

Para criar e controlar as tarefas do trabalho que você deseja executar o código correspondente, você pode criar ou vincular itens de trabalho em elementos de diagrama. Para obter mais informações, consulte Como: Link de elementos de modelo para os itens de trabalho.

Neste tópico.

  • Um diagrama de seqüência de geração 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

  • Diagramas de seqüência de solução de problemas

Um diagrama de seqüência de geração de código-fonte

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

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

  2. Clique com o botão direito em qualquer lugar na definição de método e clique em Gerar diagrama de seqüência.

  3. No Gerar diagrama de seqüência na caixa de profundidade máxima de chamadas , 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. 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.

    ObservaçãoObservação

    Depois de gerar o diagrama, você pode expandir a perda de mensagens específicas.

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

    Para ver

    Clique em

    Chamadas para os itens no projeto imediato

    Projeto atual

    Chamadas para os itens da solução

    Solução atual (padrão)

    Chamadas para os 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 que mostra as chamadas para itens em toda a solução. Se você quiser 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 as chamadas para

    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

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

  6. Quando você tiver terminado, clique em OK.

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

    ObservaçãoObservação

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

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.

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 escopos diferentes ao gerar o diagrama. Você também pode modificar o diagrama após ele ter gerado. Por exemplo, você pode excluir mensagens que não são interessantes para apresentar e discutir o design.

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

Para

Execute essas etapas.

Mostrar o próximo nível de chamada

Uma mensagem de nenhuma linha de vida de destino com o botão direito e clique em Expandir saída.

Expanda uma mensagem em um novo diagrama

Uma mensagem com o botão direito e clique em 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, clique com o botão direito na seleção e, em seguida, clique em Recolher.

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

Para expandir o grupo, clique sobre ela e, em seguida, clique em Expandir.

Excluir elementos

Clique com o botão direito na forma e, em seguida, clique em Excluir.

Melhorar o layout

Clique com o botão direito do diagrama e, em seguida, clique em Reorganizar o Layout.

Você também pode desfazer esse comando.

Realçar elementos selecionados

Um elemento com o botão direito e, em seguida, clique em Propriedades. No Propriedades janela, defina a cor campo.

Fazer anotações no diagrama

Clique o comentário ferramenta, clique no diagrama e, em seguida, digite uma nota para o comentário. Use o O Link de comentário ferramenta para conectar o comentário para 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 do 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 essas etapas.

Realce as linhas de vida, mensagens e outros elementos

Alterar o elemento cor propriedade.

- ou -

Link de um comentário ao elemento:

  1. No caixa de ferramentas, clique em comentárioe no diagrama, clique em próximo ao elemento.

  2. No caixa de ferramentas, clique em O Link de comentárioe clique no diagrama, o comentário e, em seguida, clique no elemento.

Mover linhas de vida

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

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:

  • Desenhe um retângulo ao redor as linhas de vida.

    - ou -

    Pressione e mantenha pressionado o CTRL enquanto você clica em 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, 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.

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 Seta para cima e Seta para baixo chaves.

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

Adicionar uma linha de vida.

Clique em Lifeline na caixa de ferramentase, em seguida, clique no diagrama.

Adicionar uma mensagem

  1. No caixa de ferramentas, clique em um Synchronous ou Asynchronous mensagem.

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

  2. No diagrama, clique em uma linha de vida de origem.

  3. Clique em uma linha de vida de destino.

    - ou -

    Para criar uma mensagem de encontrados ou perdidos, clique em 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 mensagens de ou para outros diagramas

Copie e cole as linhas de vida.

As 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 para um diagrama de seqüência gerado, os cabeçalhos de linha de vida só podem aparecer, 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. Clique com o botão direito na sua seleção, aponte para Circundar come clique em 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

Uma mensagem com o botão direito e clique em Mover para o diagrama de.

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

Copiar o diagrama.

Copie o diagrama no Solution Explorer, ou copiar 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 podem ser lidos usando Visual Studio Ultimate ou Visual Studio Premium.

Não destaque determinadas alterações manuais, como, por exemplo, adições e alterações de nome

  1. Clique com o botão direito na superfície de diagrama de seqüência e clique em Propriedades.

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

Para

Execute essas etapas.

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

Clique com o botão direito no lifeline ou na mensagem e clique em Go To Definition.

Localizar a classe ou método no Explorer de arquitetura

Direito de uma mensagem ou uma linha de vida e, em seguida, clique em Mostrar no Gerenciador de arquitetura.

Para obter mais informações, consulte Como: Gere gráficos de dependência para.NET de código.

A vinculação de 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 a elementos de qualquer tipo em um diagrama de seqüência para itens de trabalho Team Foundation Server. Para obter mais informações, consulte Como: Link de elementos de modelo para os itens de trabalho.

Para

Execute essas etapas.

Linhas de vida do link, mensagens ou outros elementos de itens de trabalho

  1. Um ou vários elementos com o botão direito e clique em Link para o 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

Um ou vários elementos com o botão direito e clique em Exibir itens de trabalho.

Remover links para itens de trabalho

  1. Um elemento com o botão direito e clique em Remover itens de trabalho.

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

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 de modelo não são removidos.

Diretrizes para usar diagramas de seqüência gerado

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

Explorando o código.

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

Interpretar o diagrama.

O algoritmo que cria o 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:

  • Dois ou mais linhas de vida podem aparecer no diagrama, onde o código em execução apenas lida 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 o seu código sempre usa um subtipo.

Concentrando-se em um aspecto do projeto

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

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

  • Exclua mensagens que não são relevantes para o aspecto de foco e, em seguida, expanda a mensagens relevantes para mostrar mais detalhes.

  • Use o Recolher comando às 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 são enfocando.

Atualizando o Design

  • Você pode trabalhar colaborativamente em um diagrama usando o controle de versão. Recomendamos que você bloqueie um diagrama quando você estiver editando ele que apenas uma pessoa possa editá-lo ao mesmo tempo.

  • Usando um diagrama de seqüência gerado, você pode geralmente identificar recursos que tornam difícil alterar ou adaptar o código existente. 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 a possibilidade de se o trabalho realizado por este objeto pode ser dividido com mais eficiência entre os outros objetos. Cada classe de objeto deve ter uma única tarefa claramente definidas. Em geral, essa diretiva facilita identificar quais partes do programa devem ser alterados quando os usuários as necessidades mudam, ou para reorganizar as partes em uma variante diferente do aplicativo.

  • Quando você tiver um diagrama que se concentra em um aspecto específico do design, faça cópias dele e editá-los para criar propostas de 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 do projeto atualizado, e você pode vincular as linhas de vida para componentes ou classes no modelo. Você também pode estender a interação para incluir os atores externos.

Diagramas de seqüência de solução de problemas

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

Assunto

Resolução

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

Um diagrama de seqüência não pode gerar se a 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 a new palavra-chave. Para evitar esse problema, altere o código ou quando você gera 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 de origem. 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ê gera um diagrama de seqüência a partir 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 inclua 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 automaticamente o diagrama de seqüência ao projeto.

Leva muito tempo para gerar o diagrama de seqüência.

- 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 a ficar sem memória e o travamento, quando você fecha e reabrir o diagrama. Por exemplo, um diagrama de seqüência tem linhas de 390 vida e 19.000 mensagens resulta em um arquivo de diagrama é a mais de 85 MB.

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

Consulte também

Tarefas

Como: Crie diagramas de camada de artefatos

Referência

Diagramas de seqüência UML: Referência

Conceitos

Visualizando o código existente

Como: Gere gráficos de dependência para.NET de código

Histórico de alterações

Date

History

Motivo

Agosto de 2010

Tópico atualizado mencionar que o Visual Studio 2010 Microsoft Visual Studio 2010 Visualization and Modeling Feature Pack é necessária para gerar diagramas de seqüência para ASP.NET projetos de site da Web.

Comentários do cliente.