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.

Note

To get additional capabilities for this release, download and install the Visual Studio 2010 Microsoft Visual Studio 2010 Visualization and Modeling Feature Pack.

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

link to videoVideo: Capture Business Workflows with Activity Diagrams

UML Component Diagrams: Reference

Components of a system, their interfaces, ports, and relationships

link to videoVideo: Design a Project's Physical Structure with Component Diagrams

UML Class Diagrams: Reference

Types that are used to store and exchange data in the system and their relationships

link to videoVideo: Model the Business Domain with Class Diagrams

link to videoVideo: Reveal Responsibilities with Class Diagrams

UML Sequence Diagrams: Reference

Sequences of interactions between objects, components, systems, or actors

link to videoVideo: Sketch Interactions with Sequence Diagrams

UML Use Case Diagrams: Reference

User goals and tasks that a system supports

link to videoVideo: Brainstorm a Project with Use Case Diagrams

link to videoVideo: Organize Features into Use Cases

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

link to videoVideo: Architect an Application with Layer Diagrams

link to videoVideo: Validate Code with Layer Diagrams

Dependency graphs

How to: Generate Dependency Graphs for .NET Code

Dependencies and other relationships in existing code

link to videoVideo: Visualize Code Using Standard Dependency Graphs

Code-generated class diagrams

Working with Class Diagrams (Class Designer)

Types and their relationships in .NET code

Code-generated sequence diagrams

How to: Explore Code with Sequence Diagrams

Sequences of method calls in .NET code

link to videoVideo: Generate and Interact with UML Sequence Diagrams

Common Tasks

Topic

Task

How to: Create UML Modeling Projects and Diagrams

Create models and add diagrams.

link to videoVideo: Create and Use UML Models and Diagrams

How to: Edit a UML Model and Diagrams

Draw diagrams to edit the model.

link to videoVideo: Create and Use UML Models and Diagrams

Defining Packages and Namespaces

Create packages to divide a model into units that different team members can work on.

link to videoVideo: Organize and Manage Your Models

Customizing Your Model with Profiles and Stereotypes

Customize model elements using stereotypes, to extend the standard UML model elements for specific purposes.

How to: Link from Model Elements to 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.

How to: 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

Visualizing Existing 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

Videos

link to videoChannel 9: Doug Seven: Code Understanding and System Design with Visual Studio 2010

link to videoChannel 9: UML with Visual Studio 2010 Ultimate

link to videoMSDN How Do I Series: UML Tools and Extensibility

Forums

Blogs

Technical Articles and Journals

The Architecture Journal - Issue 23: Architecture Modeling and Processes

Other Sites

MSDN Architecture Center