ABSTRACT
Development environments typically present the software engineer with a structural perspective of an object-oriented system in terms of packages, classes and methods. From a structural perspective it is difficult to gain an understanding of how source entities participate in a system's features at runtime, especially when using dynamic languages such as Smalltalk. In this paper we evaluate the usefulness of offering an alternative, complementary feature-centric perspective of a software system when performing maintenance activities. We present a feature-centric environment combining interactive visual representations of features with a source code browser displaying only the classes and methods participating in a feature under investigation. To validate the usefulness of our feature-centric view, we conducted a controlled empirical experiment where we measured and compared the performance of subjects when correcting two defects in an unfamiliar software system with a traditional development environment and with our feature-centric environment. We evaluate both quantitative and qualitative data to draw conclusions about the usefulness of a feature-centric perspective to support program comprehension during maintenance activities.
- Basili, V.: Evolving and packaging reading technologies. Journal Systems and Software 38(1) (1997) 3--12 Google ScholarDigital Library
- Corbi, T. A.: Program understanding: Challenge for the 1990's. IBM Systems Journal 28(2) (1989) 294--306 Google ScholarDigital Library
- Demeyer, S., Ducasse, S., Mens, K., Trifu, A., Vasa, R.: Report of the ECOOP'03 workshop on object-oriented reengineering (2003)Google Scholar
- Dunsmore, A., Roper, M., Wood, M.: Object-oriented inspection in the face of delocalisation. In: Proceedings of ICSE '00 (22nd International Conference on Software Engineering), ACM Press (2000) 467--476 Google ScholarDigital Library
- Wilde, N., Huitt, R.: Maintenance support for object-oriented programs. IEEE Transactions on Software Engineering SE-18(12) (December 1992) 1038--1044 Google ScholarDigital Library
- Nielsen, J., Richards, J. T.: The Experience of Learning and Using Smalltalk. IEEE Software 6(3) (1989) 73--77 Google ScholarDigital Library
- Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: The story of Squeak, A practical Smalltalk written in itself. In: Proceedings OOPSLA '97, ACM SIGPLAN Notices, ACM Press (November 1997) 318--326 Google ScholarDigital Library
- Cincom Smalltalk (September 2003) http://www.cincom.com/scripts/smalltalk.dll/.Google Scholar
- Mehta, A., Heineman, G.: Evolving legacy systems features using regression test cases and components. In: Proceedings ACM International Workshop on Principles of Software Evolution, New York NY, ACM Press (2002) 190--193 Google ScholarDigital Library
- Eisenbarth, T., Koschke, R., Simon, D.: Locating features in source code. IEEE Computer 29(3) (March 2003) 210--224 Google ScholarDigital Library
- Renggli, L.: Magritte - meta-described web application development. Master's thesis, University of Bern (June 2006)Google Scholar
- Jerding, D., Stasko, J., Ball, T.: Visualizing message patterns in object-oriented program executions. Technical Report GIT-GVU-96-15, Georgia Institute of Technology (May 1996)Google Scholar
- Licata, D., Harris, C., Krishnamurthi, S.: The feature signatures of evolving programs. In: Proceedings IEEE International Conference on Automated Software Engineering, Los Alamitos CA, IEEE Computer Society Press (October 2003) 281--285Google Scholar
- Greevy, O.: Enriching Reverse Engineering with Feature Analysis. PhD thesis, University of Berne (May 2007)Google Scholar
- Philippe Flajolet, Paolo Sipala, J. M. S.: Analytic variations on the common subex-pression problem. In: Automata, Languages, and Programming. Volume 443 of LNCS., Springer Verlag (1990) 220--234 Google ScholarDigital Library
- Hamou-Lhadj, A., Lethbridge, T.: An efficient algorithm for detecting patterns in traces of procedure calls. In: Proceedings of 1st International Workshop on Dynamic Analysis (WODA). (May 2003)Google Scholar
- Kanji, G. K.: 100 Statistical Tests. SAGE Publications (1999)Google Scholar
- Wilcoxon, F.: Individual Comparisons by Ranking Methods. International Biometric Society (1945)Google Scholar
- O'Brien, M., Buckley, J., Exton, C.: Empirically studying software practitioners - bridging the gap between theory and practice. In: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM 2005), IEEE Computer Society Press (2005) Google ScholarDigital Library
- Zeller, A.: Isolating cause-effect chains from computer programs. In: SIGSOFT '02/FSE-10: Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering, New York, NY, USA, ACM Press (2002) 1--10 Google ScholarDigital Library
- Hamou-Lhadj, A., Braun, E., Amyot, D., Lethbridge, T.: Recovering behavioral design models from execution traces. In: Proceedings IEEE European Conference on Software Maintenance and Reengineering (CSMR 2005), Los Alamitos CA, IEEE Computer Society Press (2005) 112--121 Google ScholarDigital Library
- Antoniol, G., Guéhéneuc, Y. G.: Feature identification: a novel approach and a case study. In: Proceedings IEEE International Conference on Software Maintenance (ICSM 2005), Los Alamitos CA, IEEE Computer Society Press (September 2005) 357--366 Google ScholarDigital Library
- Nielson, F.: The typed lambda-calculus with first-class processes. In Odijk, E., Syre, J. C., eds.: Proceedings PARLE '89, Vol II. LNCS 366, Eindhoven, Springer-Verlag (June 1989) 357--373 Google ScholarDigital Library
- Chen, J. B., Lee, S. C.: Generation and Reorganization of Subtype hierarchies. Journal of Object Oriented Programming 8(8) (January 1996) 26--35Google Scholar
- Brade, K., Guzdial, M., Steckel, M., Soloway, E.: Worf: A visualization tool for software maintenance. In: Proceedings of IEEE Workshop on Visual Languages, IEEE Society Press (1992) 148--154Google Scholar
- Greevy, O., Lanza, M., Wysseier, C.: Visualizing live software systems in 3D. In: Proceedings of SoftVis 2006 (ACM Symposium on Software Visualization). (September 2006) Google ScholarDigital Library
- Kleyn, M. F., Gingrich, P. C.: GraphTrace --- understanding object-oriented systems using concurrently animated views. In: Proceedings OOPSLA '88 (International 99 Conference on Object-Oriented Programming Systems, Languages, and Applications. Volume 23., ACM Press (November 1988) 191--205 Google ScholarDigital Library
- Reiss, S. P.: Visualizing Java in action. In: Proceedings of SoftVis 2003 (ACM Symposium on Software Visualization). (2003) 57--66 Google ScholarDigital Library
- Lange, D., Nakamura, Y.: Interactive visualization of design patterns can help in framework understanding. In: Proceedings ACM International Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 1995), New York NY, ACM Press (1995) 342--357 Google ScholarDigital Library
- De Pauw, W., Helm, R., Kimelman, D., Vlissides, J.: Visualizing the behavior of object-oriented systems. In: Proceedings OOPSLA '93. (October 1993) 326--337 Google ScholarDigital Library
- Feature driven browsing
Recommendations
Traceability in model-driven safety critical software engineering
ECMFA-TW '10: Proceedings of the 6th ECMFA Traceability WorkshopEvidence-Based Software Engineering (EBSE) focuses on understanding and delivering software engineering practices, tools and techniques that qualitatively and quantitatively provide value. The principles of EBSE underpin safety critical software ...
FDMD: Feature-Driven Methodology Development
ENASE 2015: Proceedings of the 10th International Conference on Evaluation of Novel Approaches to Software EngineeringSituational Method Engineering (SME) is a branch of software engineering which helps develop bespoke methodologies to fit the specific characteristics of the software project at hand. As in software development, SME too involves rigorous Requirements ...
Comments