Working with Class Diagrams? Let Visual Studio 2013 do the work

VisualStudioLogoDesigning a new feature? Trying to figure out someone else’s code? Got a class diagram completed and need to start coding? Take advantage of the modelling features in Visual Studio to save yourself some time!

Using an agile methodology doesn’t mean you never document or design anything. The class diagram is still a great tool to help you design a new application or to visualize an existing application so you can plan a new feature. Using Visual Studios architecture features can save you time on documentation or digging through files so you can focus on the design and implementation.

In this post we will look at how you can use Visual Studio 2013 to

  • Create a new Class Diagram
  • Create a class diagram from existing code
  • Generate code from a class diagram

Note: The architecture features described in this post are only available in Visual Studio Ultimate. If you are you a student in a technical program check if your department has DreamSpark Premium which gives you access to Visual Studio Ultimate.

Create a new Class Diagram

In Visual Studio choose File | New Project | Modeling project. The Modeling project is only available in Visual Studio Ultimate.

Go to Solution Explorer, right click in the project and choose Add New Item and select UML Class Diagram.

As you can see from the screenshot below you are not limited to class diagrams, you can also create Sequence, Use Case, Activity Diagrams and more.

image

 

Once you create a class diagram, you will see the modelling objects in the Toolbox. Drag and drop the classes, associations and inheritance diagram elements to your class diagram. If you need it, here is the documentation for How to Edit UML Models and Diagrams

image

Generate a class diagram from existing code

Open a C# project (this feature is not supported for all programming languages at the moment)

From the menu choose Architecture | New Diagram. If you can’t find Architecture in the menu, your version of Visual Studio may not support this feature, this feature is only available in Visual Studio Ultimate.

Select the diagram you want to create, e.g. UML Class Diagram, UML Sequence Diagram. You will be prompted to provide a name for the diagram and a modelling project to contain your diagrams.

image

 

You will see a blank Class Diagram

Because we want to add existing code to our model instead of drawing new objects manually, go back to the menu and select Architecture | Windows | Architecture Explorer. This will open a new window where you can see all the namespaces in your project. We will use this window to select the elements we want included in our class diagram.

In Architecture Explorer, expand the Namespace that contains the classes you want to add to your diagram. Select the elements you want to include in the diagram and then select the Create a new graph from selected nodes button in the top left corner of the Architecture Explorer Window

image

Visual Studio will reverse engineer the code and create a class diagram for the selected elements.

image

I am not going to go into all the details of how you navigate the architecture explorer window and select individual elements, I just want you to be aware of the capability to create class diagrams from your code. For more complete documentation visit Create UML Class Diagrams from Code.

Generating code from a class diagram

When you have a class diagram you can use the Generate Code command to create C# for your classes.

Open your modelling project with the class diagram and select the class or classes you want to create as code. Right click the selected element or elements and select Generate Code from the pop-up menu.

By default you will get a single file created for each class

image

 

Here you can see the code generated for the Carnivore class

 public class Carnivore : Animal
{
    public virtual void Hunt()
    {
        throw new System.NotImplementedException();
    }
 
}

It is possible to Customize the Generate Code Command to change the default code generation settings. You can find more complete documentation at Generate Code from UML Class Diagrams

As you can see Visual Studio 2013 Ultimate has a number of features to make it easier to work with Class Diagrams whether you are starting a new project, or working with existing code.