HomeHomeHomeArchiteturMiddlewareMDSDBeratungCoachingTrainig
header
homemailbacksearchimpressum

go back go up Experience :: Research, Development and Innovation

dotted Line
dotted Line
menu not Selected Home
dotted Line
menu not Selected Services
dotted Line
menu not Selected Experience
   menu not Selected Projects
   menu not Selected Trainings
   menu selected Innovation
   menu not Selected References
dotted Line
menu not Selected Conferences
dotted Line
menu not Selected Publications
dotted Line
menu not Selected Vorlesungen
dotted Line
menu not Selected Site
dotted Line
dotted Line

magic Pixel banner 0

magic Pixel banner 1

magic Pixel banner 2

magic Pixel banner 3

magic Pixel banner 4
magic Pixel

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.