The Cha-Q project investigates a change-centric approach to software development along three themes:

Analysing Changes: Several research prototypes exist that analyse versioning information to distill the actual edit operations as performed by the programmer or that log edit operations in the background of the IDE. Similarly, several research prototypes collect changes from bug reports, mailing lists, comments in version repositories, etc. Can we design a single meta-model where all acts of changes to software are represented as manipulable first-class entities? 

Repeating Changes: Refactoring, migrating clients of API’s, merging of version control branches are but a few of the software engineering problems that can be addressed by first class changes expressed as smart “find-and-replace” transformations. Can we leverage the explicit change meta-model to create developer-friendly tools and languages which express and execute series of fine-grained transformations of a system’s source code? 

Tracing Changes: Today, information retrieval algorithms can reconstruct traceability links based on the presence of naming conventions and programming idioms. Unfortunately, the current state of the art relies on batch processes that take several hours to complete and are poorly integrated in the IDE. Can we seamlessly integrate traceability links into today’s development environments based on an explicit change meta-model?  



 Consult our work packages for more details on our methodology and the work plan.