Empirical study of software evolution
MetadataShow full item record
Software development is rapidly changing and software systems are increasing in size and expected lifetime. To cope with this, several new languages and development processes have emerged, as has stronger focus on design and software architecture and development with consideration for evolution and future change in requirements. There is a clear need for improvements, research shows that the portion of development cost used for maintenance is increasing and can be as high as 50 %. We also see many software systems that grow into uncontrollable complexity where large parts of the system cannot be touched because of risks for unforeseeable consequence. Therefore a clearer understanding of the evolution of software is needed in order to prevent decay of the systems structure. This thesis approaches the field of software evolution through an empirical study on the open source project Portage from the Gentoo Linux project. Data is gathered, ratified and analysed to study the evolutionary trends of the system. These findings are seen in the context of Lehman's laws on the inevitability of growth and increasement of complexity through the lifetime of software systems. A set of research question and hypotheses are formulated and tested. Also, experience from using open source software for data mining is presented.