Architecture Modeling in Rosario with Peter Provost
Yes, that Peter Provost, and this is a great Tech Ed session.
We know that the modeling tools in Team System 2008 are, well… there’s room for improvement. How valuable is a Logical Data Center Design Model when we can’t derive it from a reverse engineering action? There has also been much frustration with the lack of standard UML support in Visual Studio. Guess what?
Rosario proposes that we promote modeling to a first class citizen of the complete Application Lifecycle Management model. Here’s my major takeaway: The way modeling is being supported enables visual exploration of your code base in a way that is seamless with the development process. This can honestly change the fundamental code development experience.
Also, I can plan on sun setting all my organizations Sparx licenses. Cool.
- UML 2.1 at the logical layer
- DSLs at the physical layer
- Generate models from existing assets. This is being discussed as “Architectural Discovery” which is a hilarious term in itself.
- The April CTP has the following
- UML Class Diagram
- UML Use Cases Diagram
- UML Sequence Diagram
- UML Component Diagram
- UML Activity Diagram
- Architecture Explorer
- There is a unifying model underlying all of this, the diagrams are simply views upon that model.
- Newer versions will have some of the features we got to see today. These will come in another CTP later this year.
- Layer Diagram
- Seriously cool, this allows to separate concerns of our tiers in a system.
- I can bind my namespaces to logical layers of my application
- Also has some seriously cool visualization tools for looking through your code.
- Using these views, we can see our cohesion and inheritance in physical form.
- How about namespace visualization using a graph model? Dang, this is cool.
- How about a dependency visualization? NDepend better look out because this one isn’t half bad.
- AND, all views enable us to click right through to our source code. Neato.
- XMI support (seriously, wow). This means we can export models from other applications like Sparx EA, Altova, and Rational and bring them right into Visual Studio. Oh, and it will pull Visio models as well.
- Round tripping of component models to code
- Peter actually built some sequence diagrams and I gotta say that this UX is going to be MUCH better than Enterprise Architect, which will soon loose it’s Market Share. Even use cases look neater.
- Sequence diagrams can be round tripped with classes and even methods. This means we can examine the complexity of our code at a usable level, and do it visually.
What if you could prescribe separation of tiers and limit leaky abstractions?
“Any system should be possible to represent on a white broad in no more than 13 boxes.”
“Using model is simply a way of managing complexity.”
“There will be a model store capability that means we don’t need to keep our models in the same solutions with our code.” But you can 🙂
Because the models are all built on DSLs, there is someone out there who has automated the process of building test cases from activity diagrams. That is hotter than a 2 dollar pistol.
We can attach other files like Word files to your model itself.
What if we could could light up the models in the debugger to see highlighting of current activity in a sequence diagram? Neato.
They are trying to figure out how to include support for generating design patterns like found in EA and Rational. This is fun because you can generate domain specific code with a fundamental implementation in a known design pattern like Forward Controller or something.
I need a bigger monitor. Seriously, boss. I need a bigger monitor.