Skip to main content

Foundations for Software Evolution

Final Report Summary - LUCRETIUS (Foundations for Software Evolution)

The Lucretius project developed novel concepts, tools and techniques for designing and evolving software systems. These techniques apply not only for “green field” design where a system is built from scratch, but also for software release planning and management. Evolution is supported in two different modes. The first is automatic: the system monitors its own outputs and the environment within which it operates, and adapts its behaviour to ensure that it continues to fulfill its requirements. The second mode is manual, but tool-supported: developers/maintainers evolve the system because of new requirements, such as new features, or improved system qualities, such as better performance.
Research within the project studied the problem of design and evolution for different types of software, such as socio-technical systems that encompass software components but also human and social ones (e.g. businesses), cyber-physical systems that encompass software and physical components (sensors, actuators and the like), and systems-of-systems where components are systems in their own right developed and controlled independently by different stakeholders.
The project also studied the problem of design and evolution for different types of requirements. Regulatory requirements are derived from applicable laws and regulations, often concerned with safety, privacy, security and governance. Quality requirements constitute an important class of requirements that are poorly understood. The project explored novel techniques for modeling and analyzing them to produce novel designs. In addition, we developed novel techniques for dealing with security requirements, optimization requirements (such as “The system’s design will minimize operational costs”), evolution requirements (such as “The system’s evolution will minimize development costs”), and adaptation requirements.
Research was conducted by a team based in the Department of Information Engineering and Computer Science at the University of Trento (Italy), with many external collaborators, a group of postdoctoral fellows and a dozen PhD students.