Create models for your app

Note

This article applies to Visual Studio 2015. If you're looking for Visual Studio 2017 documentation, use the version selector at the top left. We recommend upgrading to Visual Studio 2017. Download it here.

Modeling diagrams help you understand, clarify, and communicate ideas about your code and the user requirements that your software system must support. For example, to describe and communicate user requirements, you can use Unified Modeling Language (UML) use case, activity, class, and sequence diagrams. To describe and communicate the functionality of your system, you can use UML component, class, activity, and sequence diagrams.

See Channel 9 Video: Improve architecture through modeling.

You can create the following UML diagrams in this release:

Diagram Shows
UML Activity Diagrams: Reference Flow of work between actions and participants in a business process
UML Component Diagrams: Reference Components of a system, their interfaces, ports, and relationships
UML Class Diagrams: Reference Types that are used to store and exchange data in the system and their relationships
UML Sequence Diagrams: Reference Sequences of interactions between objects, components, systems, or actors
UML Use Case Diagrams: Reference User goals and tasks that a system supports

To see which versions of Visual Studio support each type of diagram, see Version support for architecture and modeling tools.

To visualize the architecture of a system or existing code, create the following diagrams:

Diagram Shows
Layer Diagrams: Guidelines

Layer Diagrams: Reference
High-level architecture of the system
Code maps

Map dependencies across your solutions

Find potential problems using code map analyzers
Dependencies and other relationships in existing code
Code-generated class diagrams

Working with Class Diagrams (Class Designer)
Types and their relationships in .NET code

Common Tasks

Topic Task
Create UML modeling projects and diagrams Create models and add diagrams.
Edit UML models and diagrams Draw diagrams to edit the model.
Define packages and namespaces Create packages to divide a model into units that different team members can work on.
Generate code from UML class diagrams Generate C# code from class diagrams to start your implementation.
Customize your model with profiles and stereotypes Customize model elements using stereotypes, to extend the standard UML model elements for specific purposes.
Link model elements and work items Create links between model elements and work items to help you track tasks, test cases, bugs, requirements, issues, or other kinds of work that are associated with specific parts of your model.
Export diagrams as images Save your model and diagrams so that you can share them with other users, including those who do not use Visual Studio Ultimate.
Topic Task
Visualize code Create code maps and layer diagrams to better understand unfamiliar code.
Model user requirements Use models to clarify and communicate the users' needs.
Model your app's architecture Use models to describe the overall structure and behavior of your system and to make sure that it meets the users' needs.
Validate your system during development Make sure that your software stays consistent with your users' needs and the overall architecture of your system.
Use models in your development process

Use models in Agile development
Use models to help you understand and change your system during its development.
Structure your modeling solution Organize models in a large or medium project.

External Resources

Category Links
Forums - Visual Studio Visualization & Modeling Tools
- Visual Studio Visualization & Modeling SDK (DSL Tools)