I’ve been digging into a lot of the great resources published by Bill Gibson covering the Distributed System Designers and applying it directly to a fairly large and integrated system I am architecting for my current project assignment. I am struck by a few things already in the use of the designers, but before I get into my experiences and observations, I want to provide the links to the documentation that I am reading through this learning experience.
· [TN_1104: Understanding the System Definition Model](http://msdn.microsoft. com/vstudio/teamsystem/reference/technotes/apps_designer/sdm.aspx)
· [TN_1114: The Four Layers of Systems in the System Definition Model](http:/ /msdn.microsoft.com/vstudio/teamsystem/reference/technotes/system_designer/lay ers_sdm.aspx)
· [TN_1100: Understanding Applications and the Application Diagram](http://ms dn.microsoft.com/vstudio/teamsystem/reference/technotes/apps_designer/app_diag ram.aspx)
· [TN_1105: Why Class Libraries are not shown on an Application Diagram](http ://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/apps_designer/cla ss_lib.aspx)
· [TN_1109: Understanding Systems and the System Designer](http://msdn.micros oft.com/vstudio/teamsystem/reference/technotes/system_designer/understand_sys_ designer.aspx)
· [TN_1101: Understanding and Using the Default System](http://msdn.microsoft .com/vstudio/teamsystem/reference/technotes/apps_designer/default_sys.aspx)
· [TN_1110: Using Systems to Represent Services in a Service Oriented Archite cture](http://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/system _designer/soa.aspx)
· [TN_1112: System Portfolio Management](http://msdn.microsoft.com/vstudio/te amsystem/reference/technotes/system_designer/port_mgmt.aspx)
· [TN_1102: Designing Substitutable Web Services](http://msdn.microsoft.com/v studio/teamsystem/reference/technotes/apps_designer/subs_webservices.aspx)
· [TN_1113: Representing Connections to Manual, Physical and Other Kinds of S ystem](http://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/system _designer/rep_conn.aspx)
· [TN_1111: Top-down System Design](http://msdn.microsoft.com/vstudio/teamsys tem/reference/technotes/system_designer/topdown_sys.aspx)
· [TN_1108: Connecting Applications to Web Services via Class Libraries](http ://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/apps_designer/con nect_apps.aspx)
· [TN_1106: Copying Endpoints vs Creating Endpoints from WSDL](http://msdn.mi crosoft.com/vstudio/teamsystem/reference/technotes/apps_designer/endpoints_wsd l.aspx)
· [TN_1103: Web Service Endpoint Name Propagation](http://msdn.microsoft.com/ vstudio/teamsystem/reference/technotes/apps_designer/webserv_endpoint.aspx)
· [TN_1107: Understanding, Using and Creating Toolbox Prototypes](http://msdn .microsoft.com/vstudio/teamsystem/reference/technotes/apps_designer/toolbox_pr ototype.aspx)
· Why do ASP.NET WebService and ASP.NET WebApplication look alike on the Application Designer?
The Tech Notes didn’t print well for me (cutting off the right hand side) and could find no other “printer friendly” means of viewing the contents of these notes. I ended up just copying and pasting the contents of each note into a single Word document so that I could just print them all out and carry with me (I hate reading too much text on the screen). This ended up working out nicely getting the diagrams and all (it came to about 50+ pages.
Now, on to my thoughts on this new architecture/design feature in VS2005.
One of the biggest things I am finding with these designers is the simplicity of expression.
Unlike Visio, objects in the designers are more meaningful and are a breeze to arrange and connect, making the actual mechanics of laying out a diagram just easier and more efficient. Furthermore, and still unlike Visio, there is good “connectedness” between different layers giving seemless drill down through the different layers of nested systems. Finally, another big difference between Visio and the designers is the meaning behind the objects. The designers yield much more than a pretty picture, but a live and synchronized model of your applications and systems. They don’t get out of date or out of sync with the code.
These features and experience have led me to start thinking about all the other modeling techniques so prevalent in my industry and amongst my peers. Are modeling techniques found in the typical UML stack (4+1 diagrams, State, Sequence, Collaboration diagrams, etc) still relevant? I imagine pieces are, but probably more downstream from the definition of the applications and systems. Some of these disconnected modeling tools might be relevant in helping to define and structure the internals of individual applications where the designers are focused more on the interfaces between different applications and/or systems.
I haven’t formed an opinion just yet, but one is forming as I am exposed more and more into using the new designer tools that were formerly referred to as Whitehorse.