I am organising a conference next week on Architectural Modelling (at Brocket Hall, a really spectacular location; although soup will not be on the menu!). This is an area which seems to hold a lot of promise in improving quality and productivity of complex projects and an approach I strongly believe in.
Researching this topic comes up with two different approaches; Model Driven Architecture (MDA) from OMG and Domain Specific Modelling (DSM) from Microsoft. There is a good discussion about the different models in the architecture section of DNJ online.
MDA is based around the concepts of sets of models at different levels of abstraction and the ability to transform from one level to another (and back again!) automatically. DSM is rather less ambitious and is based on the concept of a model for each domain and the validation of one domain model against another. Logically MDA points towards a CASE type methodology whilst DSM indicates a Product Line Factory or Software Factory approach. The thorny area of Round tripping is an immediate and obvious differentiator between these approaches.
The OMG are proposing the use of UML 2.0 as the modelling language of choice for MDA whilst Microsoft lean towards graphical Domain Specific Languages (of which of course UML 1.5 would be an example in the architectural space). There seems to be a lot of debate about the extensibility and appropriateness of UML 2.0.
I don’t have enough knowledge of UML 2.0 to comment on that language (although perhaps I should have) however I do feel very strongly that the concept of a general purpose transformation from one domain or level of abstraction to another will always yield a sub optimal solution unless there is a transform algorithm. I suspect this is why the CASE tools industry died and why O-R mapping technologies (and the upcoming O-XML mapping technologies) are also doomed to provide poor performance in the general case.
I do believe however that it is possible to build a mapping (or constrained transform) technology which is what the DSM approach proposes. Groping back to my undergraduate degree days the example that springs to mind is transformation from the amplitude to frequency domains which can be mapped approximately for specific bands or done in the general case using the Fast Fourier Transform (FFT). Alas I suspect it will be a long while before we have such a transform for architectural models.
Meanwhile I have to give a DSM demo (see TLS345) at the conference so will be busy trying to get it to work!
Great to see the momentum in this area - in patterns & practices we got feedback from users of the Application Blocks for .NET where they perceive them as small frameworks focused on a particular domain, driven by a 'domain specific language' (the metadata they use, expressed in xml, in config) that models the behaviour of the block in more abstract, focused way. A good example of this is the User Interface Process block or the Configuration Management block. In these cases the DSL is interpreted (rather than transformed into implementation at design-time)
Any thoughts, comments or opinions on this are appreciated -