Sudhanshu Hate from Infosys posted a good overview article on the new architecture modeling capabilities in Visual Studio Team System – Architecture Edition.
However, even though Microsoft steps-up in the architecture modeling capability it still lacks the repository aspects that bring the most value. As an example, each one of the models is still file based stored in a project structure. This isn't conducive to enabling architecture management across an organization. Everything is built in a hierarchy within a project.
One other gap is alignment to architecture modeling standards such as Archimate. I think there is an opportunity for Microsoft to leverage this already developed standard in the same way as they did with UML. Rather what we see now is Microsoft's own definition of what a logical model is.
This is a great first step getting the modeling pieces and kudos to the VSTS Team Architecture folks but I would encourage my friends back in Redmond to align more with the architecture industry standards and build out the a repository to enable systematic reuse and to make application portfolio management a reality.
See below for his post (http://www.infosysblogs.com/microsoft/2009/11/architecture_rules_enforcement.html):
For all these years if a .Net architect has to model the software system. He or she has to rely on modeling tools like Rational XDE, or Visio Enterprise Architect. Personally I was never impressed with Visio Enterprise architect’s modeling support, and code generation it has to offer. Though Visio has several stencils, templates, symbols available; UML modeling and associated code generation was always bit stiff. Integration with Visual studio to synch up models with code and vice a versa was another challenge. 3rd party tools like RationalXDE has good support for .NET but one has to pay hefty license fees to use such tools.
Result of this, system modeling used to get constrained into Microsoft Word, Power Points, Visio’s. Keeping Word/Visio based models up to date w.r.to the architecture, design, code changes was always a catching game leading the code, designs and overall system documentation out of synch impacting traceability between these artifacts.
Increasingly this has caused the disharmony between architecture modeling and development teams.
After all these years, finally, Microsoft Visual Studio 2010(VS2010) seem to have helped overcome this obstacle by embracing Unified Modeling Language (UML) and making architecture, design, development, testing seamlessly possible through its Integrated development environment. If not all, VS2010 has support for most of the UML diagramming types like
1. Use case diagram
2. Activity diagram
3. Sequence diagram
4. Class diagram
5. Component diagram
With VS2010 beta 2, while there are a few UML diagram types i found missing at this point of time like the ones of State life cycle, object, deployment etc. I was impressed with the inclusion of diagram type called as “Layered diagram”. Through this modeling diagram, one can not only depict various logical layers like Presentation (UI), Business logic, Data Access, Utility and Database but also define the dependencies/coupling between them in terms which layer can call which one. This helps in establishing and adhering the architecture rules set by an architect while architecting the system like Presentation layer components should not directly call the data access layer component and vice a versa.
To validate the architecture in code, one can map various project (UI, Service, Data access) files by dragging and dropping into this layer diagram in respective layers and then validate it by using VS2010 “Validate Architecture” option which tracks down any violations in the code.
So far while most of the architects used to write similar rules as part of MS word architecture document but it was left with the wisdom of developer to adhere or violate it, catching such architecture principle violations were difficult in the million Lines of code developed.
Through Layer diagramming architecture validation support, VS2010 will help in keeping the design and code in synch with the architecture and design principles established during the early stages of life cycle. However this is not all with VS2010 architecture modeling support, I have just scratched the surface of what VS2010 has on offer and intend to cover other aspects in coming blogs.