| ![]() |
|---|
"continued investment in software engineering is required …" "This should involve work on new methodologies for development of software, testing and quality assurance." - Forfás Baseline Assessment of the Public Research System – April 2003
Increasingly software can be considered to be critical, due to the business or other functionality which it supports. Upgrades or changes to such software are expensive and risky, primarily because the software has not been designed and built for ease of change. Expertise, tools and methodologies which support the design and implementation of software systems that evolve without risk (of failure or loss of quality) are essential. Lero addresses a research agenda for building software that (a) is highly reliable and (b) retains this reliability as it evolves, either over time or at run-time. We propose Evolving Critical Systems as an area for research to tackle the challenge. Given that software evolution can be seen as a compromise between cost and risk, the most pressing question to ask is which processes, techniques and tools are most cost-effective for evolving critical systems?

We divide software change activities among three stages that make up a cycle for evolving critical systems: Plan, Evolve, and Assess (PEA) --- shown below. Tooling cross-cuts the PEA cycle and refers to tool support for ECS:
In order to describe the scope of research required to develop a body of knowledge for ECS we have defined a taxonomy of research topics under the PEA+T headings, summarized in Lero's White Paper on Evolving Critical Systems. Lero helped organise a Dagstuhl Perspectives Workshop on Evolving Critical Systems in December 2009 and a special issue on Evolving Critical Systems is scheduled to be published in IEEE Computer in May 2010.