Faceted Navigation for Software Exploration

Much of developers' time is spent in exploring and understanding an unfamiliar software space. In this paper, we present a novel approach that characterizes the code fragments along several orthogonal dimensions in order for developers to navigate complex software spaces in a flexible manner. Central to our approach are hierarchical faceted categories (HFC), which have become especially successful in supporting exploratory web search activities. We apply the HFC approach for exploring a sizeable open-source software system. Our preliminary evaluation shows that HFC are promising in supporting software exploration tasks.

[1]  Yijun Yu,et al.  On Goal-based Variability Acquisition and Analysis , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[2]  Susan T. Dumais,et al.  Fast, Flexible Filtering with Phlat — Personal Search and Organization Made Easy , 2006 .

[3]  Nan Niu,et al.  Information foraging as a foundation for code navigation: NIER track , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[4]  Kevin Li,et al.  Faceted metadata for image search and browsing , 2003, CHI '03.

[5]  Emily Hill,et al.  Automatically capturing source code context of NL-queries for software maintenance and reuse , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[6]  Angela M. Dean,et al.  Design and analysis of experiment , 2013 .

[7]  Jean-Marie Favre G/sup SEE/: a Generic Software Exploration Environment , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[8]  Marti A. Hearst,et al.  Nearly-Automated Metadata Hierarchy Creation , 2004, NAACL.

[9]  Brad A. Myers,et al.  An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks , 2006, IEEE Transactions on Software Engineering.

[10]  Daniel Tunkelang,et al.  Faceted Search , 2009, Synthesis Lectures on Information Concepts, Retrieval, and Services.

[11]  Nancy G. Leveson Intent Specifications: An Approach to Building Human-Centered Specifications , 2000, IEEE Trans. Software Eng..

[12]  Peter Freeman,et al.  Classifying Software for Reusability , 1987, IEEE Software.

[13]  Nan Niu,et al.  Extracting and Modeling Product Line Functional Requirements , 2008, 2008 16th IEEE International Requirements Engineering Conference.

[14]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem , 1994, CACM.