|
ABSTRACT
Many maintenance tasks address concerns, or features, that are not well modularized in the source code comprising a system. Existing approaches available to help software developers locate and manage scattered concerns use a representation based on lines of source code, complicating the analysis of the concerns. In this paper, we introduce the Concern Graph representation that abstracts the implementation details of a concern and makes explicit the relationships between different parts of the concern. The abstraction used in a Concern Graph has been designed to allow an obvious and inexpensive mapping back to the corresponding source code. To investigate the practical tradeoffs related to this approach, we have built the Feature Exploration and Analysis tool (FEAT) that allows a developer to manipulate a concern representation extracted from a Java system, and to analyze the relationships of that concern to the code base. We have used this tool to find and describe concerns related to software change tasks. We have performed case studies to evaluate the feasibility, usability, and scalability of the approach. Our results indicate that Concern Graphs can be used to document a concern for change, that developers unfamiliar with Concern Graphs can use them effectively, and that the underlying technology scales to industrial-sized programs.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
A. V. Aho. Pattern matching in strings. In R. V. Book, editor, Formal Language Theory: Perspectives and Open Problems, pages 325-347, New York, 1980. Academic Press.
|
| |
2
|
|
| |
3
|
|
 |
4
|
Sergey Butkevich , Marco Renedo , Gerald Baumgartner , Michal Young, Compiler and tool support for debugging object protocols, Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications, p.50-59, November 06-10, 2000, San Diego, California, United States
|
| |
5
|
|
| |
6
|
|
| |
7
|
|
 |
8
|
Jong-Deok Choi , David Grove , Michael Hind , Vivek Sarkar, Efficient and precise modeling of exceptions for the analysis of Java programs, Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.21-31, September 06-06, 1999, Toulouse, France
|
| |
9
|
|
| |
10
|
|
| |
11
|
|
| |
12
|
|
| |
13
|
|
| |
14
|
William G. Griswold , Jimmy J. Yuan , Yoshikiyo Kato, Exploiting the map metaphor in a tool for software evolution, Proceedings of the 23rd International Conference on Software Engineering, p.265-274, May 12-19, 2001, Toronto, Ontario, Canada
|
 |
15
|
|
 |
16
|
|
| |
17
|
The Jikes bytecode toolkit. IBM, March 2000. http://www.alphaworks.ibm.com/tech/jikesbt.
|
| |
18
|
|
 |
19
|
Patrick D. O'Brien , Daniel C. Halbert , Michael F. Kilian, The Trellis programming environment, Conference proceedings on Object-oriented programming systems, languages and applications, p.91-102, October 04-08, 1987, Orlando, Florida, United States
|
| |
20
|
|
 |
21
|
|
| |
22
|
M. P. Robillard. The Jex home page. http://www.cs.ubc.ca/~mrobilla/jex.
|
| |
23
|
|
 |
24
|
Frank Tip , Jong-Deok Choi , John Field , G. Ramalingam, Slicing class hierarchies in C++, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.179-197, October 06-10, 1996, San Jose, California, United States
|
| |
25
|
Robert J. Walker , Gail C. Murphy , Jeffrey Steinbok , Martin P. Robillard, Efficient mapping of software system traces to architectural views, Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research, p.12, November 13-16, 2000, Mississauga, Ontario, Canada
|
| |
26
|
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352-357, July 1984.
|
| |
27
|
N. Wilde, J. A. Gomez, T. Gust, and D. Strasburg. Locating user functionality in old code. In Proceedings of the Conference on Software Maintenance, pages 200-205. IEEE Computer Society, November 1992.
|
CITED BY 54
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Charles Zhang , Hans-Arno Jacobsen, PRISM is research in aSpect mining, Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, October 24-28, 2004, Vancouver, BC, CANADA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vineet Sinha , Rob Miller , David Karger, Incremental exploratory visualization of relationships in large codebases for program comprehension, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vineet Sinha , Rob Miller , David Karger, Incremental exploratory visualization of relationships in large codebases for program comprehension, Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Otávio Augusto Lazzarini Lemos , Daniel Carnio Junqueira , Marco Aurélio Graciotto Silva , Renata Pontin de Mattos Fortes , John Stamey, Using aspect-oriented PHP to implement crosscutting concerns in a collaborative web system, Proceedings of the 24th annual conference on Design of communication, October 18-20, 2006, Myrtle Beach, SC, USA
|
|
|
|
|
|
David Shepherd , Zachary P. Fry , Emily Hill , Lori Pollock , K. Vijay-Shanker, Using natural language program analysis to locate and understand action-oriented concerns, Proceedings of the 6th international conference on Aspect-oriented software development, March 12-16, 2007, Vancouver, British Columbia, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|