By Peter Bell

Free One Day Conference Pass - Practical Product Lines 2009 - Amsterdam

If you are in or near Amsterdam and would like to attend the inaugural Practical Product Lines conference, drop me a line before end of business tomorrow and I should be able to get you a pass. It can be for either the 20th or the 21st, but why *wouldn't* you come on the Tuesday and catch my case study?!

I'm really excited about the conference. For anyone involved in building multiple applications which have commonalities between them, software product lines can provide huge benefits in terms of efficiently reusing everything from specifications to workflows to contracts to tests and code. It's great to see a practitioner focused conference and the lineup of speakers suggests it's going to be a great experience!

Transformation Based MetaModeling (what to do when your DSLs change)

Generally the biggest issue with metamodeling is DSL evolution. You have a collection of DSLs that you use for building applications. However, you find an case where your DSL is not sufficiently expressive. Perhaps you have an attribute/property that really needs to be a class/element/concept with its own sub-properties. However, you already have lots of statements in the DSL, so what do you do? Generally there are three approaches . . .

[More]

Creating a Database Schema for DSM

We have a meta-metamodel and a sample metamodel. Let's start by creating some tables for storing them and then look at how we could generalize the generation of tables for each metamodel to contain model statements . . .

[More]

DSM/SPL: Getting Practical - A Sample Metamodel

So, I've decided to continue (at least for now) with a database for storing my meta models and models using a meta-metamodel based on a subset of ecore from the EMF project. The next step is to come up with some example metamodels to see what we'd need to do to implement them and to create a storage mechanism for both the metamodels and their associated models. So I'm going to start with a set of simplistic languages for generating web applications using a subset of what I currently have in SystemsForge . . .

[More]

DSM/SPL: Concrete Syntaxes for Model Reuse

There are lots of great tools for domain specific modeling - particularly the openArchitectureWare toolkit within Eclipse, MetaEdit+ and the rapidly improving DSL tools from Microsoft). There are also promising language workbenches from both a prominent ex Microsofter (I'll start linking to them again when they actually ship a public beta :-) ) and the MPS from JetBrains (the guys behind IntelliJ and Resharper) which was presented at Code Generation the other week in Cambridge.

However, when you start to look at support for re-use of models and model statements, none of the existing tools are designed out of the box to support efficient model reuse across projects. This posting will look at various concrete syntaxes for model storage and editing and their suitability for efficient model and model statement reuse . . .

[More]

DSM/SPL: What is a Model Statement?

I seem to have a worrying habit of making up my own terms. Whether it's the "Iterating Business Object" in the CFML world, "mixin injection" in LightWire or now "model statement" which seemed to confuse people who know a lot more about DSM and SPLs than I do (which suggests it's not a common term in the industry). So, I guess I need to explain my term as I'm yet to find a better word for it and it's a very important concept when you try to reuse models across a software product line . . .

[More]

Domain Specific Modeling: Choosing a Meta-metamodel

If you want to develop external Domain Specific Languages, one of the first choices you need to make - and understand - is what meta-metamodel you're going to use and how that's going to grow with your needs. Most people start developing external DSLs by choosing a concrete syntax and/or toolkit (database tables, XML, Xtext, MetaEdit+, Microsoft DSL Tools, etc.) and that isn't always the best approach . . .

(If you're not sure what I'm talking about when I mention meta-metamodels, you might want to look here. )

[More]

Funding a Software Product Line

There's pretty broad consensus and plenty of studies showing substantial business benefits from developing a software product line, but the question is usually how to fund the development . . .

[More]

Models, Meta Models and Meta-Meta Models, oh My!

When you first start to get involved with Domain Specific Modeling, some of the terminology can get confusing (especially when it isn't used consistently). One of the areas that seems to confuse many people is the difference between models, meta-models and meta-meta models. This posting shows examples of each and at the same time works up a usable meta-meta model for simple code generation.

[More]

Series: Software Product Lines

Over the next few weeks I'll be posting a series on software product lines - what are they, why you should care, and what are some best practices for implementing them successfully. I've been really focused over the last couple of years on getting up to speed on everything from project methodologies (particularly lean and agile including concepts like emergent design and fields like complex adaptive systems), development best practices (especially the appropriate use of testing) and developer tools (git, Hudson, xUnit, Selenium, and even a greater familiarity with the command line and TextMate). I'm now ready to bring it all together along with a better understanding of Domain Specific Modeling to make a number of changes to my in-house software product line.

Perhaps the biggest surprise is how little I plan to change in terms of the overall approach. The more that I look at other approaches, the more I appreciate the system I've built as a really nice fit for my use case, but I'm looking forward to a lot of smaller refinements based on the last couple of years of learning.

Oh, and the bad news is I've just flown back to the US, so yes, there are *lots* of postings. The good news? I'll try to spread them out and I probably won't be flying anywhere for at least a month or two, so hopefully I won't go on another blogging binge for a while!

Want to know more about the practical application of software product lines? There is a new conference devoted to the topic - from the team who brought you Code Generation. Check it out!

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.005.