Introduction

High-quality software, delivered on time and budget, constitutes a critical part of most products and services in modern societies. Our ability to develop and maintain such software is still inadequate – the “software crisis”. This is partly caused by massive and unexpected software evolution (accumulated change) during development and maintenance of software, both regarding products and related processes. That is, user expectations, technologies, personnel, companies etc. are in a constant flux.

As a consequence, the original architecture of the software is gradually lost (“software rot”), and makes further change progressively more difficult. However, there is little precise knowledge of the frequency, profile and impact of such evolution. Such knowledge will enable us to better predict e.g. the future risks, costs and architectural changes of both new and old software systems. Our focus will be component-based software engineering (CBSE) – e.g. how to plan, design, implement and evolve reusable components and their applications. We will apply methods from Empirical Software Engineering to study industrial software. The results of such studies will help us to understand the volume and nature of software evolution and to formulate context-dependent methods (extended RUP etc.) to better predict and assess such evolution.

Goals:
G1) Better understanding of software evolution, especially for CBSE.
G2) Better methods to predict the risks, costs, and profile of software evolution in CBSE.
G3) Contributing to a national competence base around empirical software engineering.
G4) Dissemination and exchange of the knowledge gained.

Approach:
by joint efforts between academia and industry, to iteratively:
-- Define revised methods and associated hypotheses for software evolution (as result R2).
-- Define and conduct a set of empirical studies of actual software evolution, using formal experiments, case studies, as well as data mining (as result R1).
-- Assemble, refine, generalize, package, and disseminate the results (as results R2 and R3).

The project will draw on ongoing R&D projects, such as INCO, WebSys and BUCS, partly in cooperation with the Simula Research Lab.
We will also use industrial R&D projects such as SPIKE and FAMILIER, and our network of over 15 cooperating companies.

Expected Results:
R1) Results and experience from empirical studies of software evolution in CBSE (goal G1).
R2) Revised methods to better predict and manage software evolution in CBSE (goal G2).
R3) Presentation material and courses/seminars, for students and professionals (goals G3, G4).

Collected results from R1-R3 will be published as a SEVO Compendium on the web (mainly as PhD theses, papers, reports, software, and Web material).