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çã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
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 na definição de método e clique em Gerar diagrama de seqüência.
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ção Depois de gerar o diagrama, você pode expandir a perda de mensagens específicas.
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.
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.
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çã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:
|
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:
|
Mover e reordenar as mensagens |
Arraste uma mensagem para cima ou para baixo no diagrama.
|
Adicionar uma linha de vida. |
Clique em Lifeline na caixa de ferramentase, em seguida, clique no diagrama. |
Adicionar uma 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çã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 |
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 |
|
Navegando do diagrama
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 |
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 |
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:
|
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. |