Sites Inria

Version française

Engineering - software

Jean-Michel Prima - 26/11/2015

Managing Variability in Software Product Lines

Mathieu Acher, chercheur au sein de l'équipe DIVERSE

A routine practice in manufacturing for decades, the concept of product lines is now pervading the software industry. Vendors dream of deriving myriad variations of their software in order to meet specific customer demands and to address more market segments. Yet, managing the complexity of thousands options is no trivial challenge. At this juncture, the virtues of Model-Driven Engineering become all the more relevant, as French scientist Mathieu Acher explains.

Look at the automotive industry, researcher Mathieu Acher suggests. Whenever a manufacturer markets a new car, the product actually comes up in a large variety of versions. Better yet, each of these models splits into various sub-models. And to cap it all, the client is offered scores of additional options to pick from: gasoline or diesel engine, sunroof, hatchback, air conditioner —you name it. We are talking here about well over 300 options, many of these features interfering with each other. Consequently, the embedded software itself has to be customized in order to match every single variation of the car. When you come to think about it, this is a software product line (SPL) in and of itself.

Customizing the software in so manifold variants calls for innovative techniques based for the most part on model-driven engineering (MDE). Physics-based models are already commonplace in sectors like automobile or aeronautics. “Manufacturers use them for design and simulation purposes. From a product line perspective, variability should be taken into account within these models themselves. One given model component should be replaced by another one, thus bringing about a model variation. In such case, variability would be used to specify the variation points and to explicitly derive the software variant. But for doing so, one needs formalisms or languages. ” In recent years, Acher and fellow scientists have come up with Familiar, a language for the large-scale management of such feature models and constraints between features. “It is our flagship tool for specifying variability within models, or any artefact subject to customization: source code, graphical user interface, 3D models, etc.

Automatically Deriving Variants

Researchers are currently in the process of demonstrating Familiar's applicability to multiple domains. “One of our industrial partners is a French major defense contractor. The company  exports radio equipment worldwide. In this field, customers' requirements happen to vary greatly from one country to another. Obviously, the manufacturer doesn't want to start from scratch each time a new contract is signed. Therefore, instead of always reacting to new requirements, the company is contemplating a proactive approach that would allow to anticipate the future variants and identify which parts of the code would be reusable. Of course, this is not an easy undertaking because for code to be reusable it has to be designed in a particular fashion. But in the end of the day, the effort will pay out. Variants will be derived at no cost: pick-up a configuration that satisfy the model's specification and just press the button to build your new product. You might even offer your clients the possibility of doing the customizing all by themselves. All of this is made possible by the fact that MDE already lies at the heart of our partner's strategy. ”  Having said that, reverse engineering tools have also been designed in order to accomodate companies whose portfolio comprises legacy artefacts. In this way, Familiar can process different kinds of inputs: product comparison matrices, configuration files, logical constraints, design models, textual requirements, source code, plugin dependencies, etc.
In another innovative development, the scientists have teamed up with Inpixal, a Rennes-based SME whose core expertise revolves around cutting-edge vision algorithms for video surveillance systems. “The image quality might be rather poor. Nonetheless, you need a well-performing algorithm. It has to prove robust, acurate and fast, not only under ideal luminance conditions but also in days of low visibility. In order to ascertain the behavior of such algorithm, one has to test it on a great number of videos covering a wide spectrum of contexts: twilight, fog and whatnot.
But such a wide variety of visual material is not easily available. One soon runs out of footage. “That's how we came up with the idea of synthesizing video variants in which we would insert additional tanks hither and thither, plant more trees or change the atmospheric conditions. We have explicitly modelled the features of a video and derived a huge number of variants. It works fine: the synthesized videos are realistic and cover a diversity of testing scenarios. ” So much so that this comprehensive set of sequences could well become a de facto benchmark enabling  vendor to test and prove the superiority of their algorithm over alternative solutions from competitors.

Feature Configurator for 3D Printing

This line of research might also benefit the dazzling realm of 3D printing. “Massive customization! That's what lies ahead of us, Acher predicts. Take the most mundane object. Say little plastic cases used for storing batteries. These now come in all shapes and forms. People publish their models on collaborative web sites for others to use or to customize. New features keep being added. That's a product line in its own right. But from what we can see, there is a real need for tried-and-true SPL techniques that could help people to model features and constraints, and then efficiently derive product variants. ” In other words: a feature configurator that the layperson could use before going to their favorite convenience printshop.

Keywords: Logiciel Ingénierie DIVERSE INRIA Rennes - Bretagne Atlantique Familiar Mathieu Acher