Striking the balance between agility and reliability through change-centric software development.
Understanding how a software system has been changed plays an important role in steering various parts of the software engineering process.
For example, whether to determine proper testing strategies, to assess the impact of adopting novel versions of libraries, or to integrate patches in the main development branch, a retrospective analysis of the changes to the system provides vital information on which developers, team leaders, quality engineers can base their decisions. In order to support a change-centric view of various software engineering problems, we must first provide mechanisms to reify, extract and reason over changes. As software systems grow, and more and more changes are made to these systems, this imposes a number of constraints on such mechanisms in terms of scalability and genericity.
Within this work package, we will develop technological support for analysing changes. First, we will investigate a common meta-model for representing changes as first-class entities. Second, we will ivnestigate technological means for distilling such first-class changes from the actual source code. The artifacts produced in these activities will serve as the building blocks for work packages WP3, WP4 and WP5.
All deliverables are available to members of the industrial steering board. Please log in.
Activity 2.1: A meta-model for representing changes in software.
Activity 2.2: Distilling and logging software changes.