Author_Institution :
Ptidej Team - LBIT Lab., Univ. of Montreal, Montreal, QC, Canada
Abstract :
The literature describes several approaches to identify the artefacts of programs that evolve together to reveal the (hidden) dependencies among these artefacts and to infer and describe their evolution trends. We propose the use of biological methods to group artefacts, to detect co-evolution among them, and to construct their phylogenic trees to express their evolution trends. First, we introduced the novel concepts of macro co-changes (MCCs), i.e., of artefacts that co-change within a large time interval and of dephase macro co-changes (DMCCs), i.e., macro co-changes that always happen with the same shifts in time. We developed an approach, Macocha, to identify these new patterns of artefacts co-evolution in large programs. Now, we are analysing the evolution of classes playing roles in design patterns and - or antipatterns. In parallel to previous work, we are detecting what classes are in macro co-change or in dephase macro co-change with the design motifs. Results try to show that classes playing roles in design motifs have specifics evolution trends. Finally, we are implementing an approach, Profilo, to achieve the analysis of the evolution of artefacts and versions of large object-oriented programs. Profilo creates a phylogenic tree of different versions of program that describes versions evolution and the relation among versions and programs. We will, also, evaluate the usefulness of our tools using lab and field studies.
Keywords :
object-oriented programming; software maintenance; trees (mathematics); DMCC; Macocha; Profilo; antipatterns; artifact grouping; artifacts co-evolution pattern; biological methods; coevolution detection; dephase macro co-changes; design motifs; design patterns; object-oriented programs; phylogenic trees construction; programs artifact; software artifact evolution analysis; Association rules; History; Phylogeny; Software; Software engineering; Stability analysis; Software evolution; change impact; co-change; phylogenic tree; stability;