Feature-centric comprehension of software is a prerequisite to incorporating modifications requested by users during software evolution and maintenance. However, feature-centric understanding of large object-oriented programs is difficult to achieve due to size, complexity and implicit cha-racter of mappings between features and source code. In this paper, we address these issues through our unified approach to feature-centric analysis of object-oriented software. Our approach supports discovery of feature-code traceability links and their analysis from three perspectives and at three levels of abstraction. We further improve scalability of analysis by partitioning features into canonical groups. To demonstrate feasibility our approach, we use our NetBeans-integrated tool Featureous for conducting a case study of feature-centric analysis of the JHotDraw project. Lastly, we discuss how Featureous supports program comprehension by means of concrete cognitive design elements.
Informatics: Software Engineering and Applications, Sea 2010, 2010