On feature traceability in object oriented programs

Open-source and industrial software systems often lack up-to-date documents on the implementation of user-observable functionalities. This lack of documents is particularly hindering for large systems. Moreover, as with any other software artifacts, user-observable functionalities evolve through software evolution activities. Evolution activities sometimes have undesired and unexpected side-effects on other functionalities, causing these to fail or to malfunction. In this position paper, we promote the idea that a traceability link between user-observable functionalities and constituents of a software architecture (classes, methods. . . implementing the functionalities) is essential to reduce the software evolution effort. We outline an approach to recover and to study the evolution of features---subsets of the constituents of a software architecture---responsible for a functionality.

[1]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[2]  Brenda S. Baker,et al.  On finding duplication and near-duplication in large software systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[3]  Ettore Merlo,et al.  Experiment on the automatic detection of function clones in a software system using metrics , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[4]  L. D. Moura,et al.  Clone detection using abstract syntax trees , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[5]  Giuliano Antoniol,et al.  Maintaining traceability links during object‐oriented software evolution , 2001, Softw. Pract. Exp..

[6]  Jean-Daniel Fekete,et al.  Visualisation de graphes de co-activité par matrices d'adjacence , 2002, IHM '02.

[7]  Giuliano Antoniol,et al.  Recovering Traceability Links between Code and Documentation , 2002, IEEE Trans. Software Eng..

[8]  Eleni Stroulia,et al.  A study on the current state of the art in tool-supported UML-based static reverse engineering , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

[9]  Giuliano Antoniol,et al.  Investigating large software system evolution: the Linux kernel , 2002, Proceedings 26th Annual International Computer Software and Applications.

[10]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[11]  Abdelwahab Hamou-Lhadj,et al.  Compression techniques to simplify the analysis of large execution traces , 2002, Proceedings 10th International Workshop on Program Comprehension.

[12]  Giuliano Antoniol,et al.  Analyzing cloning evolution in the Linux kernel , 2002, Inf. Softw. Technol..

[13]  Andrian Marcus,et al.  3D representations for software visualization , 2003, SoftVis '03.

[14]  Eileen Kraemer,et al.  Proceedings of the 2006 ACM symposium on Software visualization , 2003 .

[15]  Andrian Marcus,et al.  Recovering documentation-to-source-code traceability links using latent semantic indexing , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[16]  Giuliano Antoniol,et al.  Linear complexity object-oriented similarity for clone detection and software evolution analyses , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[17]  Renato De Mori,et al.  Pattern matching for clone and concept detection , 2004, Automated Software Engineering.

[18]  Jane Huffman Hayes,et al.  Helping analysts trace requirements: an objective look , 2004, Proceedings. 12th IEEE International Requirements Engineering Conference, 2004..

[19]  Yann-Gaël Guéhéneuc,et al.  Recovering binary class relationships: putting icing on the UML cake , 2004, OOPSLA.

[20]  Philippe Castagliola,et al.  A Comparison of the Readability of Graphs Using Node-Link and Matrix-Based Representations , 2004 .

[21]  Stéphane Ducasse,et al.  Modeling Software Evolution by Treating History as a First Class Entity , 2005, Electron. Notes Theor. Comput. Sci..

[22]  Andreas Zeller,et al.  Lightweight Defect Localization for Java , 2005, ECOOP.

[23]  Yann-Gaël Guéhéneuc,et al.  Feature identification: a novel approach and a case study , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[24]  Pierre Poulin,et al.  Visualization-based analysis of quality for large-scale software systems , 2005, ASE.

[25]  Norman Wilde,et al.  An approach to feature location in distributed systems , 2006, J. Syst. Softw..