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çã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
No Visual Studio, abra o arquivo de código que contém a definição do método.
Abra o menu de atalho em qualquer lugar na definição de método e escolha Gerar diagrama de seqüência.
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çã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.
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.
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.
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çã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.
Importante |
---|
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:
|
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:
|
Mover e reordenar as mensagens |
Arraste uma mensagem para cima ou para baixo no diagrama.
|
Adicionar uma linha de vida |
Escolha Lifeline na Toolboxe escolha o diagrama. |
Adicionar uma 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çã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 |
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 |
|
Navegando do diagrama
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 |
|
Vincular linhas de vida, mensagens ou outros elementos para 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 |
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.
Explorando 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.
Interpretar 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.
Focalizando 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.
Atualizando 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:
|
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