Developing Models for Software Design

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 visualize the architecture of a system or existing code, create the following diagrams:

Diagram

Shows

Layer Diagrams: Reference

High-level architecture of the system

Dependency graphs

Map dependencies across your code on dependency graphs

Dependencies and other relationships in existing code

Code-generated class diagrams

Create UML Class Diagrams from Code(C# only)

Working with Class Diagrams (Class Designer)

Types and their relationships in .NET code

Code-generated sequence diagrams

Visualize code on sequence diagrams

Sequences of method calls 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.

Import UML Model Elements from XMI Files

Import UML elements from sequence diagrams, class diagrams, and use case diagrams as XMI 2.1 files that are exported from other modeling tools.

Defining 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.

Customizing 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 Images of Diagrams

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 dependency graphs, sequence diagrams, and layer diagrams to review and explore unfamiliar code.

Modeling User Requirements

Use models to clarify and communicate the users' needs.

Modeling the Architecture of a Software System

Use models to describe the overall structure and behavior of your system and to make sure that it meets the users' needs.

Validating Your System During Development

Make sure that your software stays consistent with your users' needs and the overall architecture of your system.

Using Models within the Development Process

Use models in Agile development

Use models to help you understand and change your system during its development.

Structuring Modeling Solutions

Organize models in a large or medium project.

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