Articles and Essays on Software Product Lines and Software Architecture
UML vs Domain-Specific Languages
In this article, Software Acumen's Mark Dalgarno and NT/e's Matthew Fowler consider the two most popular starting points for code generation:
As well as introducing both approaches, the artcile offers advice on their usefulness for real-world development. We also ask whether they are mutually exclusive or if in some circumstances it can make sense to combine them.
Handling functional variants in Simulink® models
A characteristic of today's motor vehicles is a wide range of variants with slightly different functions. Since this variability has to be reflected in the software development models, it is essential that there are concepts for systematically handling the variability of functional models. Differentiating between the central and model specific variability information allows uniform handling in Simulink and creates an explicit representation of distributed model variability.
The article is available here (PDF 898kb opens in new window) and was originally published in German in Elektronik automotive magazine.
Simulink is a registered trademark of The Mathworks Inc.
When Good Architecture Goes Bad
We have run a number of workshops and given talks on the topic of software architectural decay and how to prevent it.
ACCU 2008 Conference - presented 2nd April 2008
Slides - When Good Architecture Goes Bad (140 Kb PDF opens in new window)
SPA 2008 Conference - presented 18th March 2008
Slides - When Good Architecture Goes Bad (319 Kb PDF opens in new window)
Organisations often turn to their Configuration Management (CM) system to manage the variability between products. We illustrate this using case studies, and then discuss the reasons why this approach is rarely wholly successful.
We will then consider another case study, of an organisation that recognized that use of CM alone was insufficient to manage variability. This organisation has adopted a Variant Management approach, which addresses the problems of a pure CM approach, by enabling the development of a group of related products as a whole, rather than as individual, independent projects. CM still plays an essential role in this organisation but this role has changed with the introduction of Variant Management.
The article is available here (PDF 193kb opens in new window) and was originally presented at the 3rd BCS CMSG Conference.
Developing Mobile Applications with Variant Management
Fifty percent of the development budget for a mobile game can go on porting and testing the game for different devices. Variant management is an emerging approach that promises to reduce this cost significantly through explicitly managing information about what is common and what is different for each device. Most of the techniques are also applicable in other embedded domains.
The article is available as PDF here (143kb, opens in new window) it was originally written for the March 2007 Edition of Embedded Systems Engineering magazine.
Software Product Line Engineering with Feature Models
A good overview of building Software Product Lines using a Feature Modelling approach. Originally written for the Winter 2006 edition of Methods and Tools.
The article uses the example of a weather station product line and discusses a number of typical Software Product Line problems and solutions in this context.
The article is available as PDF here (801kb, opens in new window).
Software Product Lines: What, Why, When and How?
Slides from an introductory talk on Software Product Lines that Mark Dalgarno, our lead consultant, gave to the British Computer Society Software Practice Advancement group in London on 29th November 2006. Available as PDF (1650 Kb) and Powerpoint slide show (1245 Kb). Opens in new window.
Requirements Engineering in Software Product Lines
The June 2006 issue of the BCS Requirements Engineering (RE) SIG's magazine contains an article by Software Acumen on RE in Software Product Lines. The article is available (as PDF) here.
MTe Magazine article - A new approach to software variants
The article, entitled "A new approach to software variants", describes how DaimlerChrysler's Research group integrated pure::variants with the popular Matlab / Simulink toolset in order to configure a variant-rich architecture.
This new approach allows configuration knowledge which was only implicitly represented in the architecture to be made explicit in pure::variants and so should lead to reduced time to configure new variants.
Mobile Games Development with Software Product Lines
The Mobile Games sector is inherently challenging for developers due to issues such as handset diversity and the need for fast time-to-market.
This whitepaper considers whether, given these challenges, Mobile Games development has the classic characteristics of a Product Line problem.
Software Product Lines: What, Why, When and How
Slides from Software Acumen's SPA 2005 Conference tutorial. Giving an overview of Software Product Lines, the benefits of the Software Product Line approach, when to start a Software Product Line and how to start a Software Product Line.
Available as PDF of Powerpoint SlideShow (pps).