Using concept analysis to detect co-change patterns

  • Authors:
  • Tudor Gîrba;Stéphane Ducasse;Adrian Kuhn;Radu Marinescu;Raţiu Daniel

  • Affiliations:
  • University of Bern;University of Savoie;University of Bern;Technical University of Timişoara;Technical University of München

  • Venue:
  • Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Software systems need to change over time to cope with new requirements, and due to design decisions, the changes happen to crosscut the system's structure. Understanding how changes appear in the system can reveal hidden dependencies between different entities of the system. We propose the usage of concept analysis to identify groups of entities that change in the same way and in the same time. We apply our approach at different levels of abstraction (i.e., method, class, package) and we detect fine grained changes (i.e., statements were added in a class, but no method was added there). Concept analysis is a technique that identifies entities that have the same properties, but it requires manual inspection due to the large number of candidates it detects. We propose a heuristic that dramatically eliminate the false positives. We apply our approach on two case studies and we show how we can identify hidden dependencies and detect bad smells.