Visualizing and Understanding Code

You can use the visualization and modeling tools in Visual Studio Ultimate to help you understand existing code and describe your application. This lets you visually learn how your changes might affect the code and help you assess the work and risks that result from those changes. For example:

  • To understand the relationships in your code, map those relationships visually.

  • To describe your system's architecture and keep the code consistent with its design, create layer diagrams and validate code against these diagrams.

  • To understand method behavior, generate sequence diagrams.

  • To describe class structures, create class diagrams.

  • To model and communicate various aspects of the system, draw Unified Modeling Language (UML) diagrams. For example, you can model a system's components, types, interactions, and processes.

These tools also help you communicate more easily with the people involved with your project. For example, you can use UML class diagrams to create a common glossary for discussing the system with project stakeholders, users, and team members.

What do you want to do?

Understand code and its relationships:

  • Map relationships between specific pieces of code.

  • Get an overview of the relationships in your code for the entire solution.

Understand code interactions:

Visualize how the code implements a method by generating sequence diagrams from a method definition.

Understand class structures:

Visualize the structure of classes in a project by creating class diagrams from code.

Describe the high-level system design and validate code against this design:

Describe the high-level system design and its intended dependencies by creating layer diagrams. Validate code against this design to make sure dependencies in code remain consistent with the design.

Communicate the user requirements and architecture:

Model the user requirements and architecture of your software system by drawing the following UML diagrams: activity, component, class, sequence, and use case.

External Resources

Category

Links

Forums

Blogs

Visual Studio ALM + Team Foundation Server Blog

Technical Articles and Journals

The Architecture Journal - Issue 23: Architecture Modeling and Processes

Other Sites

MSDN Architecture Center

See Also

Concepts

Scenario Overview: Change Your Design Using Visualization and Modeling

Modeling the Application

Developing Models for Software Design

Modeling User Requirements

Modeling the Architecture of a Software System

Using Models within the Development Process