|
In the past I have always tried to use innovative ways of solving customer problems.
In some of these cases I have worked on the approaches as part of my interests.
Some have just developed in the project context. This page lists some of the more interesting ones. (No, I don't claim that I invented
any of these! I just want to illustrate my involvement at the leading edge.)
| Rich Clients (Eclipse) |
 |
|
|
Long before Eclipse RCP became a buzzword and a reality, I have been building a
non-trivial Eclipse-based business application for ESG/DaimlerChrysler (see the Daisy project).
| Generative Component Infrastructures |
 |
|
|
For a long time I have been working on generative component infrastructures
for embedded systems. Among other things, I have produced the Small Components
paper. Once day, BMW Car IT called and asked whether I could help implementing a proof-of-concept
for the AUTOSAR standard. As it turns out, AUTOSAR uses exactly the
same approach - generative component infrastructures - to realize in-vehicle component
middleware.
| Technology-Agnostic Component Infrastructures |
 |
|
|
I have long had the opinion that business logic implemented in components should
not depend on specific technologies (use their specific interfaces, extend certain
base classes, etc.) to simplify development, testing and technology migration
(see also Architecture Patterns).
I have build several component-based systems for customers using this metaphor.
Essentially, the idea is to support the programming model from the technical
infrastructure. I use model-driven, generative techniques to generate the necesssary glue
code to map the "pure business logic components" onto the respective infrastructure.
These approach has become mainstream in Java development with the Spring Framework.
Currently, these things also become mainstream on larger scales, namely enterprise-wide
Service-Oriented, Component-Based systems - the
Service Component Architecture (SCA)
standard implements this approach.
| Generating Graphical Editors |
 |
|
|
As part of the AUTOSAR proof-of-concept development project we have built an
integrated IDE for AUTOSAR development
based on Eclipse. A part of this IDE was a set of graphical, GEF based
editors. After initial hand-making of these editors, we started generating these
editors from the domain metamodel plus specific editor description models.
This is exactly the same approach that is now taken on by the
Eclipse GMF project.
| Textual DSLs |
 |
|
|
Textual DSLs are becoming more and more mainstream now; a major reason for this
are tools like Xtext. Although I was not directly involved
in the implementation of Xtext (as part of oAW, or now as part of Eclipse modeling),
I have used it in real projects since the early days, and spent a lot of "conference
talk time" explaining why textual DSLs are a good idea. In that sense, I did play a
small part in making textual DSLs more mainstream, I think :-) Today in 2010 Xtext
is my bread-and-butter tool, I am involved in coaching and consulting with several
customer projects. My research focus today is mostly with projectional language
workbenches, which provide a quite different approach to (textual) DSLs, simplifying
language modularization and composition significantly. Intentional Software
and JetBrains MPS are the two leading implementations
of this idea.
| Product Lines and DSLs |
 |
|
|
As part of the AMPLE Project I have been working
on integrating product line engineering with model-driven development and DSLs.
Based on the openArchitectureWare platform,
I have built facilities to integrate models with feature management tools (such
as pure::variants) to be able to express variants of models.
I've also built several model weavers, in order to support variability implementation
via aspect weaving on models.
| Architecture DSLs |
 |
|
|
As part of my passion for the conceptual aspects of software architecture, I have
been working on expressing architecture formally, using DSLs, and integrating variability
management into it (e.g. see here and
here). I am currently employing
this approach in various customer projects.
| Projectional Editing, Mixed GPL/DSL code and Embedded Systems |
 |
|
|
mbeddr.com aims at creating a different way of developing embedded software systems.
Instead of using archaic modeling tools and manually written C code, we use the open source JetBrains MPS
language workbench to create a holistic approach to embedded development, where C programming, modeling,
domain specific extensions and product line variability are supported directly.
Take a look at this video to learn details.
|