Language Workbenches and Software Product Lines
Domain Specific Languages (DSLs) have always played a role in Product Line Engineering. However, they haven't been used much in the Product Line Engineering (PLE) mainstream. I think this is a mistake. DSLs are able to precisely and concisely describe the way a system works. By defining a specific DSL for a particular problem domain, application developers have a very powerful tool at their hand.
This keynote will briefly describe DSLs and how they fit into PLE. Then the concept of language workbenches will be introduced. Language workbenches aim at bringing programming and modeling onto the same tooling infrastructure, promising a merger of what has traditionally been called modeling and programming.
Finally, I will discuss the idea of modular languages. Instead of building big languages that contain every possible feature on earth, you build language modules which you then include in your programs only if you need them. Several language workbenches support meaningful language modularization, making this approach feasible. In a very real way, this will lead to Product Line Engineering for programming languages.
Model driven development has become a well-established approach to software development that is used by many organizations. It is not bleeding edge anymore. In this two-part keynote Steven Kelly and Markus Voelter summarize their experience in using MDD in many different environments. They show what works, what doesn't, and how to avoid pitfalls. Topics covered include domain analysis, language design, model processing, as well as organizational and process related challenges challenges.