Since before my workplace officially upgraded the version of Visual Studio I have been working with from 2003 to 2010 I had discovered and had used the new architecture that are packaged with this version of Visual Studio. Thus far I have used them to create layer, activity, and sequence diagrams. I have yet to create a use case diagram, but, as this is not too complex of a diagram I don’t think its too big of deal. I should preface this review with the fact that I am a novice when it comes to software and systems modelling. That being said, I probably have a greater understanding of the intuitiveness of the program than someone with years of experience. That being said here is what I can say about these tools:
If you are used to using visual studio for development, the architecture tools provide the same look and feel. Using the solution expolorer, model explorer, toolbox, etc fit right in with the IDE in a way that should be very intuitive for those coming from a VS background. One of my issues with using Star, Argo, Visio, and other modeling tools is that I have to fumble around the UI because it feels so foreign, but with these tools I feel right at home.
The second pro is that the VS tools create, for the most part, very clean looking diagrams. Lines, shapes, etc all look extremely nice an professional. They are aesthetically pleasing, a property many of the other tools I have used are lacking. When trying inform someone about a design it is always nice when you can show them a pretty picture, not something that looks like you mocked it up in paint.
On the sequence diagrams, the heading of the lifelines stay with you as you scroll down the diagram. This feature is extremely helpful as you don’t need to scroll up every time you need to remember what lifeline you are on.
The first, an most prominent “con” is that the tools only implement the most common diagrams. I read somewhere that Microsoft plans to extend their architecture tools to encompass all UML diagrams, but they don’t seem to be getting to this very quickly. The most notable absence is the State Diagram.
One of the most annoying things I can say about the VS2010 Architecture tools is that activity diagrams lack swim lanes. The documentation says that you can use the rectangle or lines to designate swim lanes. This can work, but one of the major pros I stated is that VS tools create very clean looking diagrams. Having to kluge swim lanes when they are needed, using comments *cringe* to identify swim lanes, is something that I just hate. This has to be my number one “con” when it comes these tools.
On the sequence diagram you cannot start a lifeline “mid” sequence diagram. That is, if you want to start the lifeline of an object where the object is created as opposed to at the start of the document, there doesn’t seem to be a way to do this.
Another thing I you can’t do is link an activity to some other activity diagram. If, for instance, I wanted to abstract out some activity and then create a another activity diagram to explain what “sub” activities are involved in it I cannot link them. I have seen this functionality in Rational Rose, and I liked it. I was hoping VS would offer the same.
The final “con” i wanted to mention is that there doesn’t seem to be anyway to cross elements from diagrams. That is, say I wanted to add an actor from the use case diagram to the activity diagram to show which activities the actor is involved in (This may be an uncommon thing to do, but I suppose it isn’t unheard of) there is no way to do this. If I want to put a package or a component on the activity diagram, and relate it to an activity, I can’t.
At this point VS has a slew of cons. I am assuming seasoned architects and designers would find VS2010 Architecture Tools too constricting for everyday modelling. For those that are new to modelling (like myself), those that are used to Visual Studio, or for that that are privy to “good looking” models I think the VS2010 Architecture Tools are great.
Personally, I would prefer to use the Architecture Tools in VS2010 over Star, Argo, or Visio. I haven’t used Rational Rose or other commercial modelling tools to any extent and so I can not say how VS2010 Architecture Tools stack up to other commercial modelling tools. I also haven’t used any of the process integration with Team Foundation Server that appears to be integrated. Overall though, I love these tools and I am happy Microsoft decided to add them, and I am sure they will only get better with time.