Categories
Engineering

Code Generation 2008: Day 3

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.

Categories
Engineering

Code Generation 2008: Day 2

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: ScalaRubyConvergeEMF/GMFMetaEdit+

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 artefacts 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…

Categories
Engineering

Code Generation 2008: Day 1

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.