Code Generation 2009 - Day 3
Posted in: Code-generation Modeling
This third day at Code Generation is a short one for me – due to my flight schedule I will have to skip the closing panel.br /However, it’s been another useful day. The first session this morning was part 2 of Markus Völter and Steven Kelly’s key note. A number of interesting observations regarding model decomposition, integration and partitioning where the main part, again interleaved with worst practise examples.
After the keynote, I joined the Xtext workshop, to get my first hands on experience with textual DSLs. It’s promising, and it’s clear that there are (partly) disjoint domains that may benefit from graphical or textual DSLs. At the same time, textual DSLs require some getting used to for graphical modelers like me. Thanks to the good people from itemis I have take my first steps, and will be using the two types of DSLs in parallel, and if necessary in combination in the future.
I can only close by recommending everyone with an interest in model driven development and code generation (you can do that without creating metamodels as well!!) to join next year’s edition.
Posted Jun 18, 12:44 PM by Angelo · Comment
Code Generation 2009 - Day 2
Posted in: Code-generation Modeling
This morning, the first of two keynotes by the dynamic duo Blondie and Tuco, a.k.a. Markus Völter and Steven Kelly (you figure out who is who – in the movie Blondie is the good, Tuco the ugly). They took us on a lightning right through the essence of model driven development: the process, the people, the organization and the technology. The best practises, or best intentions were interleave with the things you should be aware of – on slides marked with a red border. Nice touch was the featuring of a certain guru as ‘The Bad’ on the first of these. A nice talk, let’s see what tomorrow brings in part 2.
After that, I joined two talks about Microsoft outlooks – one on Oslo, which is still pre-alpha (by Felienne Hermans and Gerben van Loon), one on VS2010, DSL Tools and T4 by Jean-Marie Prieur. Both talks summarized things to come, and clearly showed that Mickeysoft has a different view on what model driven development means than some others amongst us do. The Oslo philosphy calls anything related to code generation ‘model assisted’, while ‘model driven’ seems to mean interpreted. That idea slightly shows through in the new DSL Tools and T4 ideas presented as well – but let’s see what the final version of Oslo brings. As said, it’s considered pre-alpha, and knowing Microsoft that means it can be released anytime between 6 and 60 months from now.
Halfway through the Oslo presentation I switchted to the mod4j session by Jos Warmer and Johan Vogelzang (who put those two sessions in parallel just to bug me?). A bad choice, on my part, because the session was hard to get into after missing the first half. I’ll have to catch up on that later.
Then it was time to, as someone remarked, meet the enemy. This time in the person of Chris Raistrick, who had exactaly one hour to present what his experiences with xUML are. And surprisingly, he told a different story on UML than what we’re used to – one that comes very close to DSL approaches, and omits model-to-model transformations almost completely. Almost – and in the case where they are used, the target models are only intermediate material that is not modified manually.
One point made by Chris that I have to agree to whole heartedly, and which model driven development may help solving: software is not engineered, unlike other products. Or, as he put it when talking about models as a visualisation tool: “how can you reverse engineer something that wasn’t engineered in the first place”? He should talk to his countrymen Robert How and Guy Broadfoot sometime, the founders of Dutch company Verum. Come to think of it, those two could be a nice addition for Code Generation 2010, with their mathematically correct modeling approach.
Closing session, as far as the planned speakers are concerned, was a presentation about MPS, by Markus Voelter and MPS developer Konstantin Solomatov. We have text driven and graph driven modeling, but what they presented here was a fully operation environment for programming language extension, that can almost be extended to ‘language replacement’. The demo’s weren’t flashy at all – they simply worked (which is about as flashy as I think a demo should get). A great presentation of an interesting alternative to what ever other solutions were presented so far, and I kept wondering until the end if there was going to be a question that Konstanin had no answer to. I’m definitely going to check out the JetBrains web site and have a go with the beta release.
To top off the day, or at least the day part before the conference diner, I checked out four Lightning Talks. Didn’t record all the last names, but the presentations will end up on the conference site for those interested.
Karsten told us about his integration of test driven development and model driven development, by integrating openArchitetureWare with Fitnesse. I have to admit I had thought of something similar a while ago, but never got around to implementing it. Great job!
Vitalli told us about MBase, a Lisp based language definition environment for .NET, so more in the textual DSL domain. I’m going to need a better look at that one, but the extensibility options of Lisp can be a good addition to the toolset for sure.
Christophe and Koen, from Belgium, then told us about their efforts to put together a wiki based collaborative UML environment that people can use to share and collaboratively modify diagrams. Not really code generation related, as they said, but if the dependency on UML can be made ‘optional’ it could be useful in customer oriented DSL definition as well.
To top it of, co-organiser of CG2009 Andy explained briefly his enthousiasm for the Google Widget Toolkit, which generates JavaScript from Java – avoiding a number of problems with JavaScript development and debugging in that way. Nice idea, and although the language is Java, the solution is definitely domain specific.
Off to diner now, and tomorrow I’ll be getting some hands on experience with Xtext. The blogging will have to wait until Friday though, because I’ll have to leave and fly home before the panel discussion.
Posted Jun 17, 06:05 PM by Angelo · Comment [2]
Code Generation 2009 - Day 1
Posted in: Code-generation Modeling
It’s been fun, the first day at the CodeGeneration 2009 Conference. Met quite a few old acquaintances, like Juha-Pekka Tolvanen and Steven Kelly, but also Jos Warmer (who I hadn’t seen in at least a week).
With 10 presentations and workshops to choose from, life wasn’t that easy but also not really hard.
Template Specialization right after breakfast was a bit too much for me, so instead I enjoyed Juha-Pekka’s introduction to MDD. Not much news in there for me, but his overview gets better every time.
After that, I learned about Xtext, in two presentations by people from Itemis – guess I’ll join their workshop on Thursday. DSLs for me started with MetaEdit, so I have some catching up to do in the area of textual DSLs.
I also got a good reminder of what is going on in the world besides productivity increase by means of DSLs and MDSD and whatever name you want to put to it. The people from SoftFluence showed that they focus on a different aspect: changing platforms over time, which is what they have to deal with in the world of Microsoft applications.
As a nice side effect of that I learned that Silverlight apparently also has a neat zoom feature. :)
Let’s see what tomorrow brings – provided we survive the punting trip that starts in half an hour. There’ll be more than enough to choose from again, looking at the programme…
EDIT: almost forgot: someone asked during a break why some people want a 20x productivity increase by generating code from models and then want to go back from code to models. My guess: they believe that 20×20 equals 400. Of course, we’ve all known for ages that 1+1 sometimes equals 2, and that a squared + b squared only equals c squared under specific conditions.
Posted Jun 16, 04:23 PM by Angelo · Comment
CodeGeneration 2009
Posted in: Code-generation Modeling
After a couple of months of being distracted by other things, i.e. starting my own company, finding initial projects and conducting quite a few trainings, I’m picking up on Model Driven Software Development once again. Of course, I could’ve gone for initial projects that include MDSD, but these are still hard to find over here – which is why I joined the international Model Driven Software Network today. I hope this helps me getting up to speed again with the current technologies and approaches, and find projects in parallel.
This doesn’t mean that I haven’t done anything of course, I will be visiting a DSM interested party in industrial automation shortly.
Further, I will be attending CodeGeneration 2009, provided the economy doesn’t make me change my plans before registration opens at the end of February. I don’t intend it too, but none of us did at the end of last year either, so I’m a bit careful.
Anyway, I have good memories to the 2007 edition of that conference, where I presented togeter with Juha-Pekka Tolvanen, so it’s a great outlook. See you there?
Posted Jan 15, 01:05 PM by Angelo · Comment
Model Driven Experience Conference 2008
Posted in: Modeling Architecture
Last week, I presented some of ICT NoviQ and ICT Solutions’ experiences we gained with Domain Specific Modeling using MetaEdit+ at the Dutch Model Driven Experience 2008 conference (most of the material on the conference web site (including presentations) is in Dutch).
Two things struck me during this conference, the first being that everybody involved in model driven software development is (still?) facing the same problems. The biggest issue is not the tooling – we all know and understand that model-to-model transformation requires different technology than model-to-code transformation. We even have (draft) standards for that. Similarly, defining languages based on EMF/GMF, UML or GOPRR requires dedicated tools, and with those tools the biggest issues faced in the technical area are (being) addressed. Even on the issue of to-generate-or-not-to-generate-100%-of-the-code consensus starts to show: 100% code generation is possible, if the domain is sufficiently well-defined. One presenter, Lex Heerink, even admitted that his project would’ve been able to generate the last 5 lines of manual code – if they had taken the time to look into it. His project, a software factory for Google’s Android, was a nice example of what can be done, even if it resembled to some extent MetaCase’s Nokia Mobile phone solution.
The biggest challenge still remains: the change in mindset and way of working – how can we convince a software engineer to create a language based on problem domain concepts rather than software engineering (solution domain) concepts? And how do we get them to work on generators, rather than the actual product code – which is a hard to explain indirection for a lot of them (and us)? These people are not technology, and thus a lot harder to mold into shape than the code we are working on.
The second thing that struck me as interesting, challenging and promising is that Intentional Software is starting to show what they are working on, this trme through a presentation by Ron Kersic of CapGemini. For a basic reference, Ron referred to a rather well-known publication of Martin Fowler from 1995, but what he showed was more advanced than Fowler’s plain text.
When working with DSLs, we love to start defining the language from the perspective of the stakeholder. As I mentioned before, if we look at it from our own perspective as software engineers, we end up with the wrong language. However, what the Intentional approach shows is that if we look at it from the user’s perspective, in a way we still end up with the wrong language. Wouldn’t it be convenient if we could switch perspectives, or language representations if you will? What Kersic showed was a demo where a mathematical formula for calculating Pi (you know, 3.1415… and so on)
is implemented in software. If we look at it from the mathematicians perspective, we see the formula, if we look at it from the software engineers perspective, we see the code. And even better: if we change something in either of those two views, the other one is updated ‘on the spot’. I wonder if, in a few years time, I’ll be pair programming with my insurance agent or a medical doctor, working on a new insurance product or treatment reporting approach…..A lot more interesting things were told during the conference, and if there’s a new edition next year, count me in. I discovered that, outside of the people I already know and work with, there’s a lot going on in the MDSD world, even in our small corner of the world called The Netherlands. Example application domains shown at MDE 2008 included telecommunications, defence systems, insurance and pension products and lots more….
Posted Jun 8, 01:14 PM by Angelo · Comment
