Archive for June, 2008

Code Generation 2008: Day 3

Friday, June 27th, 2008

Last day of CG2008.

Key note: The Domain Specific IDE by Steve Cook (Microsoft)
Steve has introduced DSLs briefly, talked about various patterns of use, then the main topic of software development using DSLs and the evolution of software development. He depicted SW evolution in quadrants and highlighted the path of evolution as: craftmanship > mass production > continuous improvement > mass customization.
A few highlights from the session

It makes sense to model concerns [IT Architecture].

[DSL, code generation] the only way to get some head-way is to make it economical.

To create a language [DSL], it really means to create a tool. The language itself is pretty useless in itself.

We have recognized that Visual Studio is a platform not just an IDE.

Bran Selic: Standardization [software development] goes way beyond standardization of API. One way to do it right is to standardize on semantics.

Experience Report: Evangelizing Code Generation: A case study of incremental adoption by Brooke Hamilton (FM Global)
Brooke’s session was pleasantly different than the other sessions during the conference as he was from the customer side and not a vendor or an academic. His presentation was brilliant, well structured, pleasantly constructed. Brooke had real details of his own and his team’s experience on their project(s) from the last few years. It was definitely one of the best presentations during the conference, it sparked a lot of good discussions.

Code Generation Narcosis – you feel more powerful using code generation than you really are.

Code generation improves architecture. It makes you look for redundant parts and separate concerns.

We cannot make an application serving unknown needs, but we can generate a lot of code! ;-)

Versioning of the templates [code generation] is absolutely crucial.

Tutorial: Strategies for generating code from Microsoft DSL tools and T4 text templates by Brooke Hamilton (FM Global)
This session was more of a demo using the Microsoft DSL Tools in the Visual Studio environment. Brooke also tailored in some of his experience with the tool and how it is applicable to their projects at FM Global.

* * *

In summary, it was an excellent conference with a lot of great presentations from the top experts on this field, great discussions during panels, BoFs and Goldfish Bowls. A lot of new ideas, thoughts and questions to take away to consolidate and look for answers until next year's event.

Code Generation 2008: Day 2

Friday, June 27th, 2008

Second day at CG2008.

Tutorial: Model-Driven SOA: Synchronize Business Planning with the IT Design process by Ian Barnard (Telelogic)
Telelogic, recently acquired by IBM, presented a very corporate like view of modeling, the key buzzwords of the session were: EA, BPM, SOA, ELM (Enterprise Lifecycle Management), Model-Driven SOA…

Tutorial: Implementation Techniques for Domain-Specific Languages by Markus Voelter (Independent)
Markus is an entertaining presenter, he has a broad knowledge of the various topics around code generation and DSL. His customer experience also comes across and he makes genuine remarks about IT architectures and business-IT alignment.
This particular presentation was a deep-dive on DSL and implementation, categories of DSLs and their use, DSL implementation techniques and examples including: Scala, Ruby, Converge, EMF/GMF, MetaEdit+

DSL does not have to be turing complete!

execution != precision

Experience Report: Can executable UML make it as a Mainstream Programming Paradigm? by Allan Kennedy (Kennedy Carter)
The presentation started with a fair amount of philosophical discussion, involving the audience, about software intensive systems, software engineering, and modeling. Later Allan introduced the concepts, the use and value of Executable UML (xUML).
xUML seems to have impressive customer base and references including some defense industry customers and NASA.

Tutorial: Best practices for Creating Domain-Specific Modeling Languages by Juha-Pekka Tolvanen (MetaCase)
JP has recently published a book on Domain Specific Modeling (DSM) and I was very much looking forward to hear the details from the author himself. JP gave plenty of examples and details on best practices, lessons learned from his extensive customer experience. A great value from the presentation was to hear concrete numbers for developing with DSL. The statistics included variations for language complexity (number of concepts) and the complexity of artifacts generated (number of them and types).

Panel: Flexibility in Code Generation chaired by Jos Warmer (Ordina), Sven Efftinge (itemis), Anneke Kleppe (CapGemini NL), Laurence Tratt (Uni of Bournemouth), Steven Kelly (MetaCase)
The panel has eluded into many different topics in many directions including flexibility in DSL and code generation. From the questions and comments it seems that these concepts still have a long way to go to be more mature, precise and agreed on.

Unfortunately I’ve missed the Mistery Movie of the evening – Pirates of Silicon Valley – will catch up on that one day…

Code Generation 2008: Day 1

Friday, June 27th, 2008

This week I am attending the Code Generation 2008 event in Cambridge, UK.

The first day passed really fast with lots of great topics and presenters. Below are a few interesting quotes and thoughts from the day.

Keynote: Matching Supply and Demand: Challenges in Model-Based Code Generation for Quality of Service-Constrained Software by Bran Selic (Malina Software Corp)

Bran‘s presentation had many thought provoking statements and questions in the domain of System Engineering with Quality of Services (Non-functional) requirements. Amongst many statements, the following was maybe the strongest hit:

Platform independent != Platform ignorant

Direct Code Generation with Built-in Flexibility by Anneke Kleppe (CapGemini NL)

An interesting talk about hard-coded (programmatic) transformations. She was talking mostly about the Octopus project. She emphasized a lot the importance of decomposition on many levels including not only the target application but also the code generator.

DSL model is not a DSL! Just like a .java file is not the Java language

is a reminder of how misused terminology and jargon has polluted not only this domain [DSL] but the whole IT industry.

Panel: MDD and Software Product Lines – a marriage made in heaven? Mark Dalgarno (Software Acumen), Juha-Pekka Tolvanen (MetaCase), Ian Barnard (Telelogic), Markus Voelter (independent)

On the volatility of investment in DSL and code generators (somebody from the audience):

The value of information captured in models (instances) is orders of magnitude larger than the investment in the meta-model, transformation, tools.

Goldfish Bowl: Approaches to DSL Evolution chaired by Peter Bell

First of all the concept of a goldfish bowl discussion is brilliant! I do not know how these work generally but this instance of it went very-very well.

The discussions were mainly skirting around the situations where the DSL changes. The typical questions came up were:

  • What happens to the existing model instances?
  • What happens to the existing code generators?
  • Is there a way to make the transition (evolution) automated?

Tutorial: Concrete Syntaxes of DSLs by Arno Haase (Haase Consulting) and Sven Effinge (itemis)

It was a fairly basic overview of various DSL and DSM approaches with a demo of openArchitectureWare‘s tools. The demo was a nice example of using textual modelers (xText) together with graphical editors (GMF).

Birds of a Feather: The Art of Abstraction

The main theme for this BoF was to list and discuss the considerations that make a DSL a good DSL.

TO GAF, or not to gaf?

Wednesday, June 11th, 2008

TOGAF or not to gaf?…That is the question.

I have recently earned my TOGAF Certification after following the certification course from the Architecting the Enterprise folks.
More and more of the projects dealing with Enterprise Architecture (EA) demand the knowledge of some EA framework and method. TOGAF is one of them and the demand is increasing.

While it is great to see the increasing need for EA, it is worth noting that TOGAF is not the final answer. TOGAF is a framework (there might be a clue in the name) and it hardly provides any further detail as to how to perform an EA engagement, how to develop EA, how to govern the EA…
It is a great place to start enlisting the high-level concepts [of EA] and their relationships. However, breaking down those concepts to a finer grain, discovering the relationships and concerns between them, making archiectural decisions or providing guidelines for decision making (and more) is still left to the Business and IT Architects.

A particularly interesting area for me is the tooling support for Enterprise Architectures. There are a few products already available on the market offering tooling support for different domains in EA.
I strongly believe that Domain Specific Languages (DSL) and Domain Specific Modeling (DSM) tools have a great advantage and use for the purpose of supporting EA. I will be investigating this area more in the future.

If you are registered in LinkedIn, I would recommend to join the TOGAF Certified Architects Group by following this link.

The picture used in this blog entry is originally from Cartoon Stock