The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.03 - May-June (2012 vol.38)
pp: 579-591
David Röthlisberger , Universitát Bern, Bern
Marcel Härry , Universitát Bern, Bern
Walter Binder , University of Lugano (USI), Lugano
Philippe Moret , University of Lugano (USI), Lugano
Danilo Ansaloni , University of Lugano (USI), Lugano
Alex Villazón , Universidad Privada Boliviana (UPB), Cochabamba
Oscar Nierstrasz , Universitát Bern, Bern
ABSTRACT
Modern IDEs such as Eclipse offer static views of the source code, but such views ignore information about the runtime behavior of software systems. Since typical object-oriented systems make heavy use of polymorphism and dynamic binding, static views will miss key information about the runtime architecture. In this paper, we present an approach to gather and integrate dynamic information in the Eclipse IDE with the goal of better supporting typical software maintenance activities. By means of a controlled experiment with 30 professional developers, we show that for typical software maintenance tasks, integrating dynamic information into the Eclipse IDE yields a significant 17.5 percent decrease of time spent while significantly increasing the correctness of the solutions by 33.5 percent. We also provide a comprehensive performance evaluation of our approach.
INDEX TERMS
Object-oriented programming, integrated environments, restructuring, reverse engineering, reengineering, complexity measures, performance measures.
CITATION
David Röthlisberger, Marcel Härry, Walter Binder, Philippe Moret, Danilo Ansaloni, Alex Villazón, Oscar Nierstrasz, "Exploiting Dynamic Information in IDEs Improves Speed and Correctness of Software Maintenance Tasks", IEEE Transactions on Software Engineering, vol.38, no. 3, pp. 579-591, May-June 2012, doi:10.1109/TSE.2011.42
REFERENCES
[1] P. Moret, W. Binder, D. Ansaloni, and A. Villazón, "Visualizing Calling Context Profiles with Ring Charts," Proc. Fifth IEEE Int'l Workshop Visualizing Software for Understanding and Analysis, pp. 33-36, Sept. 2009.
[2] G. Ammons, T. Ball, and J.R. Larus, "Exploiting Hardware Performance Counters with Flow and Context Sensitive Profiling," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, pp. 85-96, 1997.
[3] D. Röthlisberger, M. Härry, A. Villazón, D. Ansaloni, W. Binder, O. Nierstrasz, and P. Moret, "Augmenting Static Source Views in IDEs with Dynamic Metrics," Proc. IEEE Int'l Conf. Software Maintenance, pp. 253-262, 2009.
[4] D. Röthlisberger, M. Härry, A. Villazón, D. Ansaloni, W. Binder, O. Nierstrasz, and P. Moret, "Senseo: Enriching Eclipse's Static Source Views with Dynamic Metrics," Proc. IEEE Int'l Conf. Software Maintenance, pp. 383-384, 2009.
[5] M. Haerry, "Augmenting Eclipse with Dynamic Information," master's thesis, Univ. of Bern, http://scg.unibe.ch/archive/mastersHaer10a.pdf , May 2010.
[6] G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, "Aspect-Oriented Programming," Proc. European Conf. Object-Oriented Programming, pp. 220-242, 1997.
[7] A. Villazón, W. Binder, and P. Moret, "Aspect Weaving in Standard Java Class Libraries," Proc. Sixth Int'l Symp. Principles and Practice of Programming in Java, pp. 159-167, Sept. 2008.
[8] A. Villazón, W. Binder, and P. Moret, "Flexible Calling Context Reification for Aspect-Oriented Programming," Proc. Eighth Int'l Conf. Aspect-Oriented Software Development, pp. 63-74, Mar. 2009.
[9] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W.G. Griswold, "An Overview of AspectJ," Proc. 15th European Conf. Object-Oriented Programming, pp. 327-353, 2001.
[10] W. Binder, J. Hulaas, and P. Moret, "Advanced Java Bytecode Instrumentation," Proc. Fifth Int'l Symp. Principles and Practice of Programming in Java, pp. 135-144, 2007.
[11] D. Röthlisberger, O. Nierstrasz, S. Ducasse, D. Pollet, and R. Robbes, "Supporting Task-Oriented Navigation in IDEs with Configurable HeatMaps," Proc. IEEE 17th Int'l Conf. Program Comprehension), pp. 253-257, 2009.
[12] J. Stasko, "An Evaluation of Space-Filling Information Visualizations for Depicting Hierarchical Structures," Int'l J. Human-Computer Studies, vol. 53, no. 5, pp. 663-694, 2000.
[13] B. Cornelissen, A. Zaidman, A. van Deursen, and B. van Rompaey, "Trace Visualization for Program Comprehension: A Controlled Experiment," Proc. IEEE 17th Int'l Conf. Program Comprehension, pp. 100-109, 2009.
[14] R. Likert, "A Technique for the Measurement of Attitudes," Archives of Psychology, vol. 22, no. 140, pp. 1-55, 1932.
[15] M. Pacione, M. Roper, and M. Wood, "A Novel Software Visualisation Model to Support Software Comprehension," Proc. 11th Working Conf. Reverse Eng., pp. 70-79, Nov. 2004.
[16] E. Arisholm, H. Gallis, T. Dyba, and D.I. Sjoberg, "Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise," IEEE Trans. Software Eng., vol. 33, no. 2, pp. 65-86, Feb. 2007.
[17] S.M. Blackburn, R. Garner, C. Hoffman, A.M. Khan, K.S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S.Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J.E.B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann, "The DaCapo Benchmarks: Java Benchmarking Development and Analysis," Proc. 21st Ann. ACM SIGPLAN Conf. Object-Oriented Programing, Systems, Languages, and Applications, pp. 169-190, Oct. 2006.
[18] M. Dmitriev, "Profiling Java Applications Using Code Hotswapping and Dynamic Call Graph Revelation," Proc. Fourth Int'l Workshop Software and Performance, pp. 139-150, 2004.
[19] NetBeans, "The NetBeans Profiler Project," http:/profiler. netbeans.org/, 2011.
[20] B. Dufour, K. Driesen, L. Hendren, and C. Verbrugge, "Dynamic Metrics for Java," ACM SIGPLAN Notices, vol. 38, no. 11, pp. 149-168, Nov. 2003.
[21] B. Dufour, L. Hendren, and C. Verbrugge, "∗J: A Tool for Dynamic Analysis of Java Programs," Proc. Companion of the 18th Ann. ACM SIGPLAN Conf. Object-Oriented Programming, Systems, Languages, and Applications, pp. 306-307, 2003.
[22] M. Arnold and B.G. Ryder, "A Framework for Reducing the Cost of Instrumented Code," Proc. SIGPLAN Conf. Programming Language Design and Implementation, pp. 168-179, 2001.
[23] J. Pleviak and A.A. Chien, "Precise Concrete Type Inference for Object-Oriented Languages," Proc. Ninth Ann. Conf. Object-Oriented Programming Systems, Language, and Applications, pp. 324-340, 1994.
[24] P. Rapicault, M. Blay-Fornarino, S. Ducasse, and A.-M. Dery, "Dynamic Type Inference to Support Object-Oriented Reengineering in Smalltalk," Proc. Workshop Ion on Object-Oriented Technology, pp. 76-77, 1998.
[25] A. Hamou-Lhadj and T. Lethbridge, "A Survey of Trace Exploration Tools and Techniques," Proc. Conf. Center for Advanced Studies on Collaborative Research, pp. 42-55, 2004.
[26] A. Dunsmore, M. Roper, and M. Wood, "Object-Oriented Inspection in the Face of Delocalisation," Proc. 22nd Int'l Conf. Software Eng., pp. 467-476, 2000.
[27] N. Wilde and R. Huitt, "Maintenance Support for Object-Oriented Programs," IEEE Trans. Software Eng., vol. 18, no. 12, pp. 1038-1044, Dec. 1992.
[28] W. De Pauw, R. Helm, D. Kimelman, and J. Vlissides, "Visualizing the Behavior of Object-Oriented Systems," Proc. Int'l Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 326-337, Oct. 1993.
[29] T. Richner and S. Ducasse, "Using Dynamic Information for the Iterative Recovery of Collaborations and Roles," Proc. 18th Int'l Conf. Software Maintenance, pp. 34-43, 2002.
[30] B. de Alwis and G.C. Murphy, "Answering Conceptual Queries with Ferret," Proc. 30th Int'l Conf. Software Eng., pp. 21-30, 2008.
[31] S.G. Eick, J.L. Steffen, and E.E.S.Jr, "SeeSoft—A Tool for Visualizing Line Oriented Software Statistics," IEEE Trans. Software Eng., vol. 18, no. 11, pp. 957-968, Nov. 1992.
[32] S.P. Reiss, "Visualizing Java in Action," Proc. ACM Symp. Software Visualization, pp. 57-66, 2003.
[33] W. Löwe, A. Ludwig, and A. Schwind, "Understanding Software —Static and Dynamic Aspects," Proc. 17th Int'l Conf. Advanced Science and Technology, pp. 52-57, 2001.
[34] C. Bennett, D. Myers, M.-A. Storey, D.M. German, D. Ouellet, M. Salois, and P. Charland, "A Survey and Evaluation of Tool Features for Understanding Reverse-Engineered Sequence Diagrams," J. Software Maintenance and Evolution, vol. 20, no. 4, pp. 291-315, 2008.
[35] J. Quante, "Do Dynamic Object Process Graphs Support Program Understanding?—A Controlled Experiment," Proc. 16th IEEE Int'l Conf. Program Comprehension, pp. 73-82, 2008.
621 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool