Architecture Tools in VSTS 2010


Designing new functionality on existing applications can be daunting.  There are always differences between the original design and the current implementation. 


 


The new Architecture tools within Visual Studio Team System 2010 help you understand the application you have, design new functionality you need, and validate that your design and your implementation do not deviate.


 


Understanding What You Have


Understanding the dependencies between parts of your application can be critical to determining where you may have problems.  Additionally, having a visual graph can help you find the best place to implement new functionality. 


 


You can get a big picture view of your solution by assembly, namespace, class or a custom filter in a Directed Graph Markup Language document (DGML) using the Generate Dependency Graph feature:


  


Generate Dependency Graph


 


The DGML document generated from your solution can be visualized as a Dependency Matrix, Force Directed Layout, or as a Top to Bottom layout, as shown below.  Each view can provide a different take on the structure of your project.


 


Top to Bottom Layout


 


This high-level view is a great way to understand the overall shape of your architecture, but understanding the dependencies for an area you need to change can make the difference between a fifteen-minute change and a one-hour change.  For instance, being able visualize the relationships around the Cart class can be very helpful in making changes to the shopping cart:


 


Cart Class 


 


Another valuable way of understanding how your application works is to be able to visualize the sequence of calls that happen in key sections of your application.  The Generate Sequence Diagram function, available in the code editor, will give you a view of the method calls your application makes.  Below, you can see the sequence of calls that make up the Add method implementation within the shopping cart. 


 


Sequence diagram 


 


Designing New Functionality


Now that you have a more complete understanding of your existing application, you are in a better position to add functionality.  Collaborating on design requires communicating in a standard way. Unified Modeling Language (UML) diagrams allow you to express your design in a way that others can understand.  For instance, you can build UML Component and Class diagrams that describe the existing structural elements of your design, then add new elements to the diagrams to illustrate and document your changes.  Below is how a completed Component diagram might look:


 


Component Diagram


A Class diagram might look like this:


 


Class Diagram


 


The Use Case diagram below enables teams to better understand and agree on the functions of the application.


 


Use Case Diagram 


Once you have a UML diagram, you can create or link designer elements to work items within Team Foundation Server’s (TFS) Work Item Tracking system. 


 


TFS Integration 


 


 


Ensuring Application Validation


Over time, the code quality of a project can degrade if bug fixes and new feature implementations are not done with overall architecture in mind.  This is where the Layer designer and Layer validation can help.  The Layer designer enables you to define the logical layers and valid communication paths between layers of your project.  Once you have associated assemblies, namespaces, and classes with layers in the Layer diagram, you can validate existing or new code against the layering constraints.  For example, in this Layer diagram, it is valid for software within the Presentation layer to have dependencies on software within the Business Logic layer.  However, since there is not a dependency line between Presentation and Resource Access, any software that attempts to take that dependency would cause a compile-time violation in the Error List.   


 



Layer Diagram


 


You can validate layer constraints from the designer surface, command line, or from within the build process.  Team Build’s gated check-in process ensures that layer constraint violations never make it into source control. 


These are some of the features in Visual Studio Team System 2010’s architecture tools.  You can get more information about these and other features at Cameron Skinner’s blog.


Namaste!

Comments (13)

  1. Sam says:

    Soma,

    All this is good stuff. Useful. However, developers and designers today need to cope up with too many new things. Somewhere down the lane, Microsoft would have to consolidate all this into smaller number of items that individual developers need to learn and master to do their jobs effectively. SketchFlow in Expression Blend, Silverlight and new features in VS.NET 2010 are all awesome – but you need to make sure there is enough free training videos, seminars and samples for people to adopt these easily without having to go to 100s of different websites and tons of things to learn. Businesses don’t like to spend time training their developers for every new cool technology out there and hence there is high resistance to adopt all this.

    There needs to be some breathing space and some consolidation effort to make transitions smoother and more relaxed.

  2. Pete w says:

    Sam

    I agree that keeping on top of new technology is like drinking from the firehose, but that is simply the nature of today’s IT business. Maybe someday this will change, consolidate, and simplify, but right now things change too quickly to smoothen the transition while staying on the cutting edge.

    The features above parallel things I have been using with NDepend for years now, so its a smooth transition if you are familiar with what NDepend offers you

  3. Soma says:

    I agree that these tools look very interesting but one of big problems is that these tools are not part of MSDN Academic Alliance so that undergrads and postgrads (including PhDs) never see these tools.

    Where I teach, we have many courses that look at software modeling and software architechure and often end up with few tools – often not integrated – and often not .NET

    Mike

  4. Tom says:

    One of my concerns as well Mike. Microsoft needs to make these tools available and push .NET at universities (current efforts are not enough). Most students don’t know about cool Microsoft tools and technologies. This would be a step in the right direction.

  5. Faheem says:

    very nice post, thanks to share

  6. Bryan says:

    The VS 2010 architecture tools look quite nice, unfortunately the MSDN subscription structure put these tools outside of reach! In our company teams member all wear multiple hats e.g. architects, developers, and tester. We cannot afford MSDN Team Suite for all our team member. PLEASE change the structure of MSDN Team to a SINGLE edition!!! Give these tools to all the developers & architects who make your windows platform shine!!

  7. Faiyaz says:

    Awesome features.  But as noted by others we would love it if Microsoft makes it easier and quicker to help us adopt these tools by making the learning tools such as video tutorial, webcasts readily available.  After all, the successes and benefits we derive using these awesome tools and technolgies from MS will go a long way in benefitting MS.

  8. shah says:

    I agree with Bryan. Developer tools that you could download previously using volume subscriptions are/have been moved out of reach. Just keeping track of different versions like express/pro/team/architecture/… is a job in itself.

    Thanks

  9. _ivan says:

    Good to see these tools finally arriving to Visual Studio. These tools have been part of Rational Architect for many years now, and by the way they were free for students, while Microsoft’s architect tools are not.

    Plus TSE and TFS are very expensive for groups of 3-4 developers who make non commercial software.

    So I don’t know when I will get a chance to use it.

  10. Andy says:

    Not sure I understand the ‘not free to students’ comments – VSTS 2008 Architecture Edition is in MSDN AA as is VSTS 2010 TS…  Am I missing something here?

  11. Chris says:

    See http://www.lovettsoftware.com for some indepth walkthroughs of this cool new functionality.

  12. ilia zakharaia says:

    interesting!!

    <a href="http://cube.ge&quot; target="_blank">architecture,interior design,render</a>

  13. Fantastic i like this says:

    I really like this functionality and i tried with VSTS2010 and it worked for me, thanks for this post.

Skip to main content