Cutting-edge research in the Department of Computer Science at the University of Leicester is tackling the problem of 'obesity' in computer software.
Scientists say that although software does not wear out like cars and other equipment, if it does not follow a healthy life style, it can become obese, fragile or brittle and stop performing well.
The danger to operating systems is acute in sectors that are undergoing modernisation and institutions like banks, warn the Leicester team.
Now a group of researchers at the University of Leicester are collaborating with ATX Software, a company that develops technology that supports re-engineering of legacy systems, in devising new methods and techniques that can be used to keep software agile and fit for purpose.
This research is being sponsored by the Marie-Curie programme as an Industry-Academia Partnership called Leg2Net.
Professor José Luiz Fiadeiro, the coordinator of Leg2Net, explained: “To many people, software is something that allows us to use a computer to perform certain activities (like writing a piece of text). However, software doesn't just sit inside the computer. It has a life of its own and evolves over time.
“This is what happens, for instance, when we are asked if we want to download an updated version of the application that we have just launched. The fact that software needs to be continually adapted in order to deliver the same level of satisfaction to the user (or even increase it), is known as Lehman's first law of software evolution.
“Large organisations such as banks use very complex software applications and evolving them is a highly challenging task. For a start, there is not only one user to be kept satisfied. If one is not careful, complexity increases as software is evolved. This is known as Lehman's second law of software evolution.”
Luis Andrade, CEO of ATX Software, adds: “Very often, layers of software keep being added without restructuring what was there already, or new applications are coarsely stitched to old ones without taking into account the global structure or architecture of the system.
“In modern terms, we could say that software becomes "obese" as it lets "fat" accumulate, for instance, old code that is no longer necessary. As a result, applications become less and less efficient, more and more difficult to change. And, when this happens, systems begin to lack the agility, flexibility, and responsiveness that companies require to address the fierce competition and market volatility that characterises business today.”
The intervention technique is tantamount to 'liposuction' a one-off application that restructures the software and delivers a high-level architecture (muscle) that is independent of the code.
However, in order for computer software to function healthily, changes to the application are done on the architecture –the scientists effectively work on the muscle - and the code is generated automatically so as to preserve the architecture. However, if people (programmers) fiddle directly with the code, the architectural link is lost and 'fat' starts to accumulate again.
At Leicester, the Leg2Net team is researching some of the techniques that can be used to combat this problem. As with humans, Professor Reiko Heckel says, one can make a surgical operation to remove the fat. In software engineering, this requires a careful analysis of the code, breaking it into meaningful chunks so that one can understand what is "fat" and what is "muscle", and reorganise what is left so that the original functionality is preserved. These re-engineering techniques are based on graphs and require sophisticated mathematical operations - a job for specialists, supported by clever software tools such as those developed by ATX.
As with humans, if software does not change its ‘life style’, fat will accumulate again. One of the methods that has been gaining popularity for keeping software fit and agile is the adoption of a service-oriented architecture.
This is an infrastructure that reduces complexity and maximises flexibility by relying not on monolithic systems put together from rigid and static connections between components, but on systems that can be dynamically reconfigured by procuring the best service that can contribute to the task at hand.
Professor Heckel continued: “At Leicester, we are doing research aimed precisely at re-engineering "obese" (aka "legacy") software into such service-oriented architectures, and on ways of supporting evolution within those architectures.”