It is easy with the Swiss knife – more complex with the smartphone: to coordinate the functionality of the individual components with one another. Every component – such as camera, battery or app – has its own software, and their coordination is generally left to chance even today. This problem is particularly striking with product families in which the software for one product (such as a smartphone) is also used for many other products (tablet). Roberto Erick Lopez-Herrejon from the Johannes Kepler University Linz has made the coordination of this software the aim of a project in the Lise Meitner Programme of the FWF – with exciting results, which have now been published in several international publications.
Searching & finding
Lopez-Herrejon describes the background of the project: “The configuration of software is very complex. The almost infinite possibilities for interaction are unmanageable. The problems which can appear are therefore not all predictable – and exactly for this reason, ways of avoiding them are sought. Despite the enormous time pressure in development, reliance is still placed here on the performance of individual experts rather than automating the process. We have now looked for ways of automating this optimisation process through the use of intelligent algorithms.”
One of these ways is known as “Search Based Software Engineering” and is based on meta-heuristic methods, an approximation method which produces generally applicable solutions to unmanageable problems. Even if the structure of the software is only partially known, solution scenarios can still be calculated, which may not represent the absolute optimum but still provide sufficient coverage in practice – and can be calculated with finite computer power.
Nature as role modell
“We have now developed algorithms in our project which are oriented to the processes of natural evolution”, says Lopez-Herrejon, explaining the special approach of the project, and continues: “The principles of inheritance and of mutations are represented here, along with selection. In this way we obtain approximate solution approaches that prove themselves in reality.”
A special problem addressed by the team headed by Lopez-Herrejon was the examination of the correctness, security and reliability of such software. Here, parts of the software (also known as components) were inspected to see whether and how they could be integrated with other components to avoid wrong use. This is an essential precondition for smooth component interaction within a software product. The team was thereby able to develop a general approach that permits this inspection (also known as consistency checking) for the whole family of software products (i.e. all combinations of components in one go) – and that even at a very early stage of development of this software. This means at a time when any corrections are still possible without much effort.
For Lopez-Herrejon it was quite clear that the focus of the project should be applied to whole families of software products: “A software family, also known as a software product line, is a kind of modular system where a software product builds on combinable components. And since many of these components are used more than once in software products, they are already more reliable and can be reused in new software products with less testing. This enormously reduces the development time for new products and reduces time to market.” At the same time, the coordination of the components must be very carefully planned – especially for software product lines – as these components are often first developed for another environment (such as smartphones), and the “collaboration” with other software components in a new environment (such as tablets) can then be full of surprises. Or not, if the algorithms developed in this FWF project are used in development in future.
Roberto Erick Lopez-Herrejon conducts research at the Institute for Software Systems Engineering at Johannes Kepler University, Linz. His research is concerned intensively with software product lines, the model-based development of software, software construction and architecture as well as consistency checking, among other topics. In the course of his career he has received a Fulbright Stipendium, a Fellowship of the University of Oxford, an IEF Marie Curie Fellowship and support from the Lise Meitner Programme of the Austrian Science Fund FWF.