Visualizing Existing Code

When you have to modify an existing software system, Visual Studio Ultimate can help you visualize and understand the organization, relationships, and behavior of the code. Before you make changes to that code, use Visual Studio Ultimate to explore how those changes will affect the code and help you assess the work and risks that result from those changes.

For example, to examine the existing relationships and patterns in the code, you can generate dependency graphs. To communicate the intended architecture of your system, create layer diagrams. You can then use these diagrams to keep the code consistent with the design. To understand how the code implements a method, generate sequence diagrams. To explore the structure of existing classes, create class diagrams. To model and communicate different 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 can 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.

You can extend capabilities for this release by downloading and installing feature packs when they are available. For more information, see Visual Studio Feature Packs.

Common Tasks

Tasks

Associated Topics

Explore code relationships:

Generate dependency graphs or other graphs to see relationships in the code.

Find existing code:

Use Architecture Explorer to find and explore source code in a Visual Studio solution or compiled code.

Explore code interactions:

Generate sequence diagrams from code to understand its interactions.

Explore code structure:

Create class diagrams to examine the structure of classes in the project.

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

Create layer diagrams to describe the high-level design of the system and its dependencies. Validate the code against this design to ensure that it remains consistent with the design.

Communicate the user requirements and system design:

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

Videos

link to videoCode Visualization, UML, and DSLs

link to videoChannel 9: Enabling Architects with Microsoft Visual Studio 2010

link to videoMSDN How Do I Series: What are Dependency Graphs?

link to videoMSDN How Do I Series: How to Visualize Code using Standard Dependency Graphs

link to videoMSDN How Do I Series: How to Find Code using Architecture Explorer

link to videoMSDN How Do I Series: How to Manage Large Dependency Graphs

link to videoMSDN How Do I Series; How to Visualize Run-time Object Graphs

link to videoMSDN How Do I Series: How to Generate UML Sequence Diagrams

link to videoMSDN How Do I Series: How to Validate Code using Layer Diagrams

Forums

Blogs

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 Tools

Modeling the Application

Developing Models for Software Design

Modeling User Requirements

Modeling the Architecture of a Software System

Using Models within the Development Process