Product lines to address growing software variability

Tuesday 11 April 2023

In the software industry there are some trends that make the production landscape in this industry change. On the one hand, the reuse of components and artifacts, something that has always been pursued in software engineering, evolved from an opportunistic and ad-hoc reuse to a planned reuse. Much of the mature companies plan how to reuse their assets and, although "copy and paste" remains one of the most frequent forms of reuse, other ways are planned to reuse the work done in other projects, defining (micro)services, packages or other artifacts. Second, the variability of computer systems is shifting rapidly from hardware to software to the point where hardware components such as sensors, actuators or even networks become virtualized. A single product (such as a car) can have exactly the same hardware and a large difference in value depending on the software it has configured. This naturally leads to the third trend and is that the number of points of variability of systems is growing by the thousands. If we think of a part of a computer system, for example, the Linux kernel, there are reports that place between 10,000 and 16,000 the possible configuration values of this part of a system. If those configuration points were only with Boolean values, it would mean that we would have many more possible Linux kernel configurations than the total number of estimated atoms that exist throughout the universe.

All this leads us to one of the most complex tasks within software production which is the management of complexity. Systems continue to grow in functionality, size, scope and also complexity. A possible approach to address complexity, reuse and variability in software engineering are the software product lines. The idea is relatively simple, so much so the implementation of the idea.

In the industrial revolution, a paradigm of artisanal production was changed to what is called mass production. The idea was that the same standardized product could be produced repeatedly with great efficiency using assembly lines. The emergence of ICTs and automation allowed us to advance the production process towards what is known as mass customization that part of producing goods or services with a high degree of customization but doing so with almost the same efficiency as mass production. One example could be watch production. At the beginning the clocks were produced by hand, then they were mass produced in a small number of models and nowadays there are countless custom models with the ability to store information and run a multitude of applications. Engineering software product lines would be nothing more than mass customization of software products.

In order to address a software product line strategy in an organization, there must be a change of approach at the organizational level, which is a challenge and is often a barrier. You need to focus on a domain or application domains. We would no longer produce software in a generic way for any type of project, but we would do it within a certain domain, for example, we would make software for e-commerce stores.

Once the domain in which you produce is determined, you need to identify what your common parts are and what variable parts you expect your products to have. This is where feature models can be used to determine which products will fall within the scope product line and what not. These models are useful both for interacting with participants and for more technical aspects such as generating interactive configurators or allowing automatic analysis or reasoning with models for the production or debugging of mistakes.

Product lines are an interesting approach if an organization produces similar products within a domain. From the TASOVA PLUS research network, in which up to 13 universities participate, we have detected, through a survey with more than 100 participants from the state industry, that there is more need for variability management than knowledge about software product lines. Therefore, we have a great challenge in the community to publicize technological advances in this field and continue to research.

 

Author: David Benavides

Segueix-nos a

Els nostres articles del bloc d'inLab FIB

         
         

inLab FIB incorporates esCert

Icona ESCERT

First LogoCSIRT Logo

inLab is member of

inLab és centre TECNIO

ACCIO