Friday, September 28, 2007

What is a Domain Specific Language?

At JAOO I had a number of interesting discussion with various folks involved in DSLs (Simonyi, Fowler, Czarnecki) and as consequence I refined my definition of what a DSL is. I remove the terms "abstract" and "business". Here's my new try:

A DSL is a concise, precise and processable description of a viewpoint, concern or aspect of a system, given in a notation that suits the people who specify that particular viewpoint, concern or aspect.

Of course there are still the usual points you can make about a DSL: textual vs. graphical vs. whatever, DSL vs. readable API, internal vs. external and interpretation vs. generation.

I think, however, that the definition above captures the essence.

Thursday, September 27, 2007

SAFARI joins Eclipse

Some of you might have heard about the SAFARI project of IBM research. It is basically a framework for building support for arbitrary languages into Eclipse - a kind of meta tooling for Eclipse editors. Well, it is now in Eclipse proposal stage. Very, very nice!


Wednesday, September 26, 2007

Bubbles don't crash! Or could they?

At this year's JAOO conference (which is by the way really really good, once again!), the closing panel on the Architecture Quality track was on the question whether we actually need architecture quality (and, I guess, what it means, and how to achieve it).

Of course, as usual, the panelists quoted the well-known statement that "bubbles don't crash", meaning that it is not useful to draw pretty diagrams it you want to get to a useful architecture.

Now, I really think that the state of the practice has moved on. Of course, bubbles don't crash. But (in my humble opinion) you can make bubbles crash by transforming them into executable code - my ususal architecture-centric model-driven development thing. Of course this is not the silver bullet that solves all problems, but it is a useful incremental step. It is interesting to see that sceptics always basically refuse to use something unless it is perfect - instead of embracing the incremental advantages.

Based on my experience, it is indeed very useful to see a system's architecture in a more explicit, more abstract fashion, hiding some of the details of the implementation code. You keep it current with the implememtation by forward generating implementation skeletons and filling in business logic. You can also run all kinds of validations on model level, etc.... Well, anyway, read this paper for details.

And make sure you go to JAOO next year!
Tuesday, September 18, 2007

openArchitectureWare 4.2 released

The openArchitectureWare team is proud to present the long awaited 4.2 release of the well-known MDSD toolkit. The new version comes with several major improvements (see below) and is now also fully compatible with the Eclipse 3.3 Europa release and the corresponding EMF 2.3, UML 2.1 and GMF 2.0!

Major new features include a Debugger for Xpand and Xtend fully integrated Eclipse's debugging facility. You will love this when writing complex templates or transformations. In addition, openArchitectureWare 4.2 support Product Line Engineering (PLE) on generator level by integrating with popular variant management tools and the new components XWeave and XVar. The 4.2 release features a revamped Xtext with many more options for customizing the generated textual editors. The team has also worked hard on fixing many annoying quirks, bugs and performance issues.
See the New And Noteworthy for details.

The documentation has been improved significantly. There are about 3hrs of videos available demonstrating the use of simple to complex features of the openArchitectureWare platform. The documentation source was changed so we can now provide it in several forms: Eclipse's online help, PDF or plain HTML.

Download openArchitectureWare 4.2 now and enjoy it. There is no better way to do professional model-driven software development.


Thursday, September 13, 2007

Model-Driven Product Line Engineering - Online Resources

Over the last couple of months, I have been contributing to the AMPLE project. AMPLE stands for Aspect Oriented, Model-Driven Product Line Engineering. We have produced a couple of interesting results as part of the case study team at SIEMENS. Here are some pointers to it:

Together with Iris Groher, I wrote a couple of papers. Luckily, all of them have been accepted to the venues we submitted them to. A full paper titled Product Line Implementation using Aspect-Oriented and Model-Driven Software Development was accepted at the SPLC 2007 conference (Iris is actually currently there to present the paper - thanks :-)). It covers the overall approach we implemented in the case study at SIEMENS. We also submitted a paper to the MVSPL workshop at the same conference. It is called Expressing Feature-Based Variability in Structural Models and covers the construction of variants of models using aspect weaving on model level as well as other techniques. We also present a paper on Handling Variability in Model Transformations and Generators at this years Domain Specific Modeling workshop at OOPSLA. In this paper we discuss in more detail how to build variants of generators.

All the stuff described in the papers has tools support. It has been implemented as part of the upcoming openArchitectureWare 4.2 release (yes, it'll be released real soon now!).

Finally, I am also going to give a couple of talks and tutorials on this subject at JAOO, OOPSLA, GPCE and OOP. If you're interested in the general message of those talks (each of them targets different subsets), you can look at these videos. The oAW 4.2 release will also feature a number of videos that explain how to use the new PLE-related features.

So much for the update - please let me know what you think!


Saturday, September 08, 2007

Something completely different: Flugservolator

Yesterday evening I was briefly at the Oldtimer Fliegertreffen at Hahnweide. In addition to all kinds of old airplanes, they also had the Flugservolator.

This is basically a Silent Wings soaring simulator together with a bunch of mechanics to add movements and g forces to the flight experience.

Of course, since it only does two axes and hence is limited in the amount of g's it can produce, it really makes the simulator experience quite a bit better. It is a lot of fun to fly an aileron roll and actually be turned on your head in the simulator :-)

The Flugservolator has been built by a number of students as part of their Technikerarbeit, supported by a number of companies.

If you want to use it for your event, you can contact them and rent the thing for a day. They also said that they'd built additional ones, if needed :-)
Saturday, September 01, 2007

Holiday Reading

For the last 2.5 weeks I had been in Norway on holidays. I did not take my notebook, so I had to take a couple of books so I wouldn't disconnect from the software world :-) Here's what I read:

I started with Programming Erlang. I was curious to understand the buzz around this language in the context of concurrent systems. And I must say it looks like a very interesting language indeed. I am not sure I would agree with Ralph Johnson who says that Erlang could be the next Java, but it sure is an interesting approach to concurrency. Erlang is also interesting from a functional-language point of view.

Then I read Dierk K├Ânig's Groovy in Action book. Now, this is a must-read for everybody: great topic (Groovy is really cool!), superbly written, many insights into programming language design in general. And wrt to Groovy: It really feels like this is the future of Java! Why would anybody want to use Java now that Groovy's around?

I then concluded with Beautiful Code, which, since it is an edited book, can't be judged as a whole. There are good, better and not-so-good chapters in it. I am still reading it now, and I am not sure I would recommend it wholeheartedly.

Anyway: I had something to do during the (few) rainy days in Norway, and I learned something along the way.

back to

This is Markus Voelter's Blog. It is not intended as a replacement for my regular web site, but rather as a companion that contains ideas, thoughts and loose ends.

December 2005 / January 2006 / February 2006 / March 2006 / April 2006 / May 2006 / June 2006 / July 2006 / August 2006 / September 2006 / October 2006 / November 2006 / December 2006 / February 2007 / March 2007 / April 2007 / May 2007 / June 2007 / July 2007 / September 2007 / October 2007 / November 2007 / December 2007 / January 2008 / February 2008 / March 2008 / April 2008 / May 2008 / June 2008 / July 2008 / August 2008 / September 2008 / October 2008 / November 2008 / December 2008 / January 2009 / February 2009 / March 2009 / April 2009 / May 2009 / June 2009 / July 2009 / August 2009 / September 2009 / October 2009 / November 2009 / December 2009 / January 2010 / February 2010 / April 2010 / May 2010 / June 2010 / July 2010 / August 2010 / September 2010 / October 2010 / November 2010 / December 2010 / January 2011 / March 2011 / April 2011 / May 2011 / June 2011 / July 2011 / October 2011 / November 2011 / December 2011 / January 2012 / February 2012 / October 2012 / January 2013 /

You can get an atom feed for this blog.