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.

Activities and their deliverables


All deliverables are available to members of the industrial steering boardPlease log in.

Activity 2.1: A meta-model for representing changes in software.

Activity 2.2: Distilling and logging software changes.

  • Deliverable 2.2.a Change distiller tool prototype (distills changes from version control system, bug databases, ...).
  • Deliverable 2.2.b Change logger (logs changes in the background of IDE).
  • Deliverable 2.2.c Experience report on the feasibility of change distilling and logging + revision of meta-model.