Exploring Process Aspects of Change Impact Analysis

Detta är en avhandling från Karlskrona : Blekinge Institute of Technology

Sammanfattning: Change is inevitable in software development. During the entire lifecycle of a software system, from conception to retirement, things happen that require the system to be changed: the hardware and software environment changes, customer needs evolve, flaws are found, and so on. Under these conditions, it is crucial to have full control over and knowledge about what changes mean to the system and its environment. Otherwise, changes might lead to software deterioration and a multitude of other problems. The activity of assessing the implications of realising a change is termed change impact analysis. Change impact analysis, or impact analysis for short, has a broad spectrum of definitions, ranging from the modification of source code to the identification of risks associated with a change. Two parts of impact analysis are: (1) the assessment of the consequences of altering (or not) the functionality/capabilities of the software system, and (2) the identification of the software artefacts that are affected by the change. Impact analysis is performed as part of the change management process which belongs to configuration management, and serves as a basis for determining whether to accept or reject a change. Improper or non-existent impact analysis can be as problematic as having no control over changes in the first place. The research presented in this thesis is exploratory in its nature, conducted through empirical studies in an industry setting. The main objective has been to contribute to the body of knowledge of change impact analysis by investigating challenges of working with impact analysis in large-scale software development. While having a wide scope, the studies are brought together by an overarching emphasis on process aspects of the topic. Traditionally, research on change impact analysis has mainly focused on technical aspects such as traceability analysis and change propagation. The thesis contributes instead to the understanding of aspects like process improvement opportunities, process support, and the role of impact analysis in software evolution.