Software evolution and software evolvability
Stephen C. Cook, Rachel Harrison, Huan Ji · 2003
1. Software evolvability Our hypothesis is that software systems vary significantly in how easily they can be evolved to remain productive within a changing environment. We call this quality of software systems “evolvability”, defined as the capability of software products to be evolved to continue to serve their customer in a cost-effective way. The concept of evolvability brings together factors from three main areas: software product quality, software evolution processes, and the organisational environment in which the software is used. The sections below introduce the contribution that each area can make to understanding evolvability but in each case we believe that the software engineering community’s current understanding of this contribution is incomplete and largely qualitative. We