This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
The SEXTANT Software Exploration Tool
September 2006 (vol. 32 no. 9)
pp. 753-768
In this paper, we discuss a set of functional requirements for software exploration tools and provide initial evidence that various combinations of these features are needed to effectively assist developers in understanding software. We observe that current tools for software exploration only partly support these features. This has motivated the development of Sextant, a software exploration tool tightly integrated into the Eclipse IDE that has been developed to fill this gap. By means of case studies, we demonstrate how the requirements fulfilled by Sextant are conducive to an understanding needed to perform a maintenance task.

[1] A. Dunsmore, M. Roper, and M. Wood, “The Role of Comprehension in Software Inspection,” J. Systems and Software, vol. 52, nos.2-3, pp. 121-129, 2000.
[2] A. von Mayrhauser and A.M. Vans, “Program Comprehension during Software Maintenance and Evolution,” Computer, vol. 28, no. 8, pp. 44-55, Aug. 1995.
[3] J. van Gurp and J. Bosch, “Design Erosion: Problems and Causes,” J. Systems and Software, vol. 61, no. 2, pp. 105-119, 2002.
[4] S.K. Card, J.D. Mackinlay, and B. Shneiderman, Readings in Information Visualization: Using Vision to Think. Morgan Kaufmann, 1999.
[5] M. Petre and A.F. Blackwell, “Mental Imagery in Program Design and Visual Programming,” Int'l J. Human-Computer Studies, vol. 51, no. 1, pp. 7-30, 1999.
[6] B.A. Price, R. Baecker, and I.S. Small, “A Principled Taxonomy of Software Visualization,” J. Visual Languages and Computing, vol. 4, no. 3, pp. 211-266, 1993.
[7] R. Kazman and S.J. Carrière, “View Extraction and View Fusion in Architectural Understanding,” Proc. Int'l Conf. Software Reuse, pp.290-299, 1998.
[8] M. Lanza and S. Ducasse, “Polymetric Views—A Lightweight Visual Approach to Reverse Engineering,” IEEE Trans. Software Eng., vol. 29, no. 9, pp. 782-795, Sept. 2003.
[9] H.A. Müller, S.R. Tilley, and K. Wong, “Understanding Software Systems Using Reverse Engineering Technology Perspectives from the Rigi Project,” Proc. Conf. Centre for Advanced Studies Collaborative Research, pp. 217-226, 1993.
[10] M.-A.D. Storey and H.A. Müller, “Manipulating and Documenting Software Structures Using SHriMP Views,” Proc. Int'l Conf. Software Maintenance, pp. 275-284, 1995.
[11] M.-A.D. Storey, K. Wong, F.D. Fracchia, and H.A. Müller, “On Integrating Visualization Techniques for Effective Software Exploration,” Proc. Symp. Information Visualization, pp. 38-45, 1997.
[12] Y.-F.R. Chen, G.S. Fowler, E. Koutsofios, and R.S. Wallach, “Ciao: A Graphical Navigator for Software and Document Repositories,” Proc. Int'l Conf. Software Maintenance, pp. 66-75, 1995.
[13] J.-M. Favre, “GSEE: A Generic Software Exploration Environment,” Proc. Int'l Workshop Program Comprehension, pp. 233-244, 2001.
[14] D. Janzen and K. De Volder, “Navigating and Querying Code Without Getting Lost,” Proc. Int'l Conf. Aspect-Oriented Software Development, pp. 178-187, 2003.
[15] S. Robitaille, R. Schauer, and R.K. Keller, “Bridging Program Comprehension Tools by Design Navigation,” Proc. Int'l Conf. Software Maintenance, pp. 22-32, 2000.
[16] S.E. Sim, C.L.A. Clarke, R.C. Holt, and A.M. Cox, “Browsing and Searching Software Architectures,” Proc. Int'l Conf. Software Maintenance, pp. 381-390, 1999.
[17] J. Singer, T. Lethbridge, N. Vinson, and N. Anquetil, “An Examination of Software Engineering Work Practices,” Proc. Conf. Centre for Advanced Studies Collaborative Research, pp. 209-223, 1997.
[18] S. Bassil and R.K. Keller, “Software Visualization Tools: Survey and Analysis,” Proc. Int'l Workshop Program Comprehension, pp. 7-17, 2001.
[19] R. Mosemann and S. Wiedenbeck, “Navigation and Comprehension of Programs by Novice Programmers,” Proc. Int'l Workshop Program Comprehension, pp. 79-87, 2001.
[20] P. Eades, W. Lai, K. Misue, and K. Sugiyama, “Preserving the Mental Map of a Diagram,” Proc. Int'l Conf. Computational Graphics and Visualization Techniques, pp. 24-33, 1991.
[21] M. Eichberg, M. Haupt, M. Mezini, and T. Schäfer, “Comprehensive Software Understanding with SEXTANT,” Proc. Int'l Conf. Software Maintenance, pp. 315-324, 2005.
[22] M.-A.D. Storey, F.D. Fracchia, and H.A. Müller, “Cognitive Design Elements to Support the Construction of a Mental Model During Software Exploration,” J. Systems and Software, vol. 44, no. 3, pp.171-185, 1999.
[23] I. Zayour and T.C. Lethbridge, “A Cognitive and User Centric Based Approach for Reverse Engineering Tool Design,” Proc. Conf. Centre for Advanced Studies Collaborative Research, p. 16-30, 2000.
[24] M.-A.D. Storey, K. Wong, and H.A. Müller, “How Do Program Understanding Tools Affect How Programmers Understand Programs?” Science of Computer Programming, vol. 36, no. 2-3, pp.183-207, 2000.
[25] B. Shneiderman, Software Psychology: Human Factors in Computer and Information Systems. Winthrop, 1980.
[26] R. Brooks, “Towards a Theory of the Comprehension of Computer Programs,” Int'l J. Man-Machine Studies, vol. 18, pp. 543-554, 1983.
[27] D.C. Littman, J. Pinto, S. Letovsky, and E. Soloway, “Mental Models and Software Maintenance,” Proc. Workshop Empirical Studies of Programmers, pp. 80-98, 1986.
[28] E. Soloway, R. Lampert, S. Letovsky, D. Littman, and J. Pinto, “Designing Documentation to Compensate for Delocalized Plans,” Comm. ACM, vol. 31, no. 11, pp. 1259-1267, 1988.
[29] C.L. Corritore and S. Wiedenbeck, “An Exploratory Study of Program Comprehension Strategies of Procedural and Object-Oriented Programmers,” Int'l J. Human-Computer Studies, vol. 54, no. 1, pp. 1-23, 2001.
[30] Hibernate, http:/www.hibernate.org, 2006.
[31] L.G. DeMichiel, “Enterprise JavaBeans Specification,” version 2.1, Sun Microsystems, 2003.
[32] M. Eichberg, M. Mezini, K. Ostermann, and T. Schäfer, “XIRC: A Kernel for Cross-Artifact Information Engineering in Software Development Environments,” Proc. Working Conf. Reverse Eng., pp.182-191, 2004.
[33] A. von Mayrhauser and A.M. Vans, “Program Understanding Needs during Corrective Maintenance of Large Scale Software,” Proc. Int'l Computer Software and Applications Conf., pp. 630-637, 1997.
[34] W. Harrison, H. Ossher, S. SuttonJr., and P. Tarr, “Concern Modeling in the Concern Manipulation Environment,” Research Report RC23344, IBM Research, 2004.
[35] A.J. Ko, H. Aung, and B.A. Myers, “Eliciting Design Requirements for Maintenance-Oriented IDEs: A Detailed Study of Corrective and Perfective Maintenance Tasks,” Proc. Int'l Conf. Software Eng., pp. 126-135, 2005.
[36] “Eclipse,” http:/www.eclipse.org, 2006.
[37] J. Sillito, K. De Volder, B. Fisher, and G. Murphy, “Managing Software Change Tasks: An Exploratory Study,” Proc. Int'l Symp. Empirical Software Eng., pp. 23-32, 2005.
[38] Software Visualization: Programming as a Multi-Media Experience, J.Stasko, J. Domingue, M.H. Brown and B.A. Price, eds., chapter30, pp. 453-480, MIT Press, 1998.
[39] M.P. Robillard and G.C. Murphy, “Concern Graphs: Finding and Describing Concerns Using Structural Program Dependencies,” Proc. Int'l Conf. Software Eng., pp. 406-416, 2002.
[40] B. Kullbach and A. Winter, “Querying as an Enabling Technology in Software Reengineering,” Proc. European Conf. Software Maintenance and Reeng., pp. 42-50, 1999.
[41] S. Boag, D. Chamberlin, M.F. Fernández, D. Florescu, J. Robie, and J. Siméon, “XQuery 1.0: An XML Query Language,” http://www.w3.org/TRxquery/, 2005.
[42] R. Lintern, J. Michaud, M.-A. Storey, and X. Wu, “Plugging-In Visualization: Experiences Integrating a Visualization Tool with Eclipse,” Proc. Symp. Software Visualization, pp. 47-56, 2003.
[43] M. Haupt, M. Mezini, C. Bockisch, T. Dinkelaker, M. Eichberg, and M. Krebs, “An Execution Layer for Aspect-Oriented Programming Languages,” Proc. Int'l Conf. Virtual Execution Environments, pp. 142-152, June 2005.
[44] B. Alpern, D. Attanasio, J. Barton, M. Burke, P. Cheng, J.-D. Choi, A. Cocchi, S. Fink, D. Grove, M. Hind, S.F. Hummel, D. Lieber, V. Litvinov, T. Ngo, M. Mergen, V. Sarkar, M. Serrano, J. Shepherd, S. Smith, V.C. Sreedhar, H. Srinivasan, and J. Whaley, “The Jalapeno Virtual Machine,” IBM Systems J., vol. 39, no. 1, 2000.
[45] T. Schäfer, M. Eichberg, and M. Mezini, “Towards Exploring Cross-Cutting Concerns,” Proc. Linking Aspect Technology and Evolution Workshop (LATE '05), http://www.st.informatik.tu-darmstadt. de/ database/publications/dataConcernExploration.pdf?id=118 , 2005.
[46] “BAT,” http://www.st.informatik.tu-darmstadt.de BAT, 2006.
[47] J.I. Maletic, M.L. Collard, and A. Marcus, “Source Code Files as Structured Documents,” Proc. Int'l Workshop Program Comprehension, 2002.
[48] E. Mamas and K. Kontogiannis, “Towards Portable Source Code Representations Using XML,” Proc. Working Conf. Reverse Eng., pp.172-182, 2000.
[49] G. McArthur, J. Mylopoulos, and S. Ng, “An Extensible Tool for Source Code Representation Using XML,” Proc. Working Conf. Reverse Eng., pp. 199-208, 2002.
[50] M. Eichberg, D. Germanus, M. Mezini, L. Mrokon, and T. Schäfer, “QScope: An Open, Extensible Framework for Measuring Software Projects,” Proc. European Conf. Software Maintenance and Reeng., pp. 113-122, 2006.
[51] “MOF 2.0/XMI Mapping Specification,” version 2.1, Object Management Group, http://www.omg.org/docs/formal05-09-01. pdf , 2005.
[52] G.C. Murphy, M. Kersten, M.P. Robillard, and D. Cubranic, “The Emergent Structure of Development Tasks,” Proc. European Conf. Object-Oriented Programming, Springer, pp. 33-48, 2005.
[53] D. Janzen and K. De Volder, “Programming with Crosscutting Effective Views,” Proc. European Conf. Object-Oriented Programming, pp. 195-218, 2004.
[54] M. Petre, “Why Looking Isn't Always Seeing: Readership Skills and Graphical Programming,” Comm. ACM, vol. 38, no. 6, pp. 33-44, 1995.
[55] S.R. Tilley, K. Wong, M.-A.D. Storey, and H.A. Müller, “Programmable Reverse Engineering,” Int'l J. Software Eng. and Knowledge Eng., vol. 4, no. 4, pp. 501-520, 1994.
[56] D.J. Gilmore and T.R. Green, “Comprehension and Recall of Miniature Programs,” Int'l J. Man-Machine Studies, vol. 21, no. 1, pp. 31-48, 1984.
[57] T. Schäfer and M. Mezini, “Towards More Flexibility in Software Visualization Tools,” Proc. Int'l Workshop Visualizing Software for Program Understanding and Analysis, pp. 64-69, 2005.
[58] M. Lanza, “Codecrawler—Lessons Learned in Building a Software Visualization Tool,” Proc. European Conf. Software Maintenance and Reeng., pp. 409-418, 2003.
[59] A.O. Mendelzon and J. Sametinger, “Reverse Engineering by Visualizing and Querying,” Software—Concepts and Tools, vol. 16, no. 4, pp. 170-182, 1995.
[60] J.-M. Favre, “A New Approach to Software Exploration: Back-Packing with GSEE,” Proc. European Conf. Software Maintenance and Reeng., p. 251-262, 2002.

Index Terms:
Software exploration, program comprehension, reverse engineering, software maintenance, software visualization.
Citation:
Thorsten Sch?fer, Michael Eichberg, Michael Haupt, Mira Mezini, "The SEXTANT Software Exploration Tool," IEEE Transactions on Software Engineering, vol. 32, no. 9, pp. 753-768, Sept. 2006, doi:10.1109/TSE.2006.94
Usage of this product signifies your acceptance of the Terms of Use.