A lot of news-sites published yesterday an article around Oslo … probably there was a journalist event in Redmond ;-)
A short summary:
- Codename ‘D’ is rename to ‘M’ --- creating textual DSL’s. [inside Visual Studio]
- There is a Software Modeling Tool called ‘Quadrant’ --- author models visually [outside Visual Studio].
- The models can be executed directly on the platform --- work with multiple runtimes.
- Model repository, model transformation --- [SQL Server]
- Not in place yet models for ‘non-functional requirements’ like security, performance, operations, etc etc.
The modeling world – Models in the Application Lifecycle
I often use these images [below] to organize the discussion that is going on in the modeling-world according to UML vs DSL. It gives some direction where we are talking about when discussing ‘Modeling in the Application Lifecycle’.
Models in the Application Lifecycle - A brief explanation…
Application Lifecycle Management is about the whole spectrum of software development, the processes that are used, the people who use it, make and maintain the applications and about the tools and technology that are used during the complete lifecycle. Application Lifecycle Management is not only about software development and a grown-up development environment but also about business, operations and the connection between these domains.
The models used to define the problem should be independent from any technology, you can re-use them with other technology and on different platforms. Models in the solution domain describe how the problem is solved, so when those are technology / implementation independent you can re-use them with other technologies, for example generate C# or Java and WCF or ASMX. Together with technology independent these should also be platform independent so the effort to create these solution models can be used on different platforms and the models or code can be executed on different platforms [runtimes].
- Problem Domain: Business specific – technology /platform independent.
- Solution Domain: Solution specific – implementation / platform independent [is this true? not always]
- Runtime Domain: Platform specific
The Modeling-World and Oslo.
It's a very simple overview and not complete but gives a nice view of the different modeling approaches available at this moment .
Domain Specific Languages [business, vertical, external]
A language used by the business / domain experts to describe their ‘problems’ [needs], the models can be used to generate code or can be executed on the platform.
Can be done with dedicated DSL Tools, like MetaEdit and the Microsoft DSL tools or with UML the MDA way [UML as DSL with Profiles].
At Sogeti we made several DSL’s like this [with the Microsoft DSL tools].
MetaCase does a great job in this modeling segment.
Haven’t got any experience with tools who use model execution [Google give some result]. Would Oslo fit in this approach with model execution? I think at this moment and when I read all the articles according to Oslo I would say it better fits the next modeling approach [vertical, internal DSL].
Domain Specific Language [technical, horizontal, internal]
A language used by developers / architects / designers to model the solution domain.
There are already a lot of languages in place in this segment. Not all of them are technology independent [most of them only make the use of a specific framework easier]
Examples: WSSF ME, Regular expressions, SQL, WF, DFO, WiX… and many more
Example with model execution: OSLO
Unified Modeling Language
As I call it ‘plain old UML modeling’… UML diagrams like Use Case and activity Diagrams are used during defining the business domain.
Solution design is done with UML component diagrams and/or Sequence diagrams.
The red arrow is a kind of validation of the solution design, replay the scenarios described in the problem design [use case realizations]…
Other UML models, like class- and sequence diagrams are used to model the implementation domain. technology independent but implementation specific.
Tools Examples: Visio, EA… some have a kind of code-generation.
Hybrid UML–Internal DSL Approach
UML –> model business domain / capture requirements and ‘high level’ design -- ‘design’ validation with scenarios. [the same as the previous approach]
Implementation design with many different internal DSL’s and / or model transformation from solution design to implementation design with model transformation / connection
Top Red line: Runtime validation with testcase generation from the business domain models. [<—I like this one]
Example: Rosario Team Architect, although not everything is in place [Yet?!]… to realize this.
You can add OSLO as an example to this modeling approach, VS2010 is part of the OSLO ideas and with Oslo’s model repository and TA’s Designer Bus you get an interesting combination or overlap?
‘Blueprints’: because the new factory imitative gives the use of small specific ‘internal’ languages a mature infrastructure, although I'm curious how this is going to work with the model repository and the designer bus...
You could add an other one a hybrid External DSL – UML approach, but haven't seen that one and can’t find examples.
Steve Cook just wrote an interesting post “UML and DSL” what could give the modeling space an other approach or view.
To resolve these issues long-term I think we need a new architecture for modelling languages in which the false distinction between UML and DSLs would evaporate. Widely used languages would be standardized; new languages could emerge and evolve; different languages could be loosely-coupled yet interoperate.
Do I miss something? does this summary of available modeling approaches make sense?
Also interesting division are the different modeling archetypes defined by Forrester [see this webcast], I’ve added the modeling-approaches to it.
- Model Driven Development (MDD)
- Domain Specific Languages [business, vertical, external]
- Model Assisted Development (MAD)
- Domain Specific Language [technical, horizontal, internal]
- Hybrid UML -- [internal] DSL Approach
- Lightweight Visual Modeling (LVM)
- Unified Modeling Language
At this moment I would put Oslo in the MAD [funny abbreviation] section although I think it also should be in the MDD part. Anyway, haven’t read everything about Oslo and I don’t know the details.
Now we have to wait till the PDC so we can find out if it works and if the division I made is right…
10-10-2008 News Items about Oslo [also the birthday of Abel]: