|
ABSTRACT
After more than 10 years, Aspect-Oriented Programming (AOP) is still a controversial idea. While the concept of aspects appeals to everyone's intuitions, concrete AOP solutions often fail to convince researchers and practitioners alike. This discrepancy results in part from a lack of an adequate theory of aspects, which in turn leads to the development of AOP solutions that are useful in limited situations. We propose a new theory of aspects that can be summarized as follows: concerns are latent topics that can be automatically extracted using statistical topic modeling techniques adapted to software. Software scattering and tangling can be measured precisely by the entropies of the underlying topic-over-files and files-over-topics distributions. Aspects are latent topics with high scattering entropy. The theory is validated empirically on both the large scale, with a study of 4,632 Java projects, and the small scale, with a study of 5 individual projects. From these analyses, we identify two dozen topics that emerge as general-purpose aspects across multiple projects, as well as project-specific topics/concerns. The approach is also shown to produce results that are compatible with previous methods for identifying aspects, and also extends them. Our work provides not only a concrete approach for identifying aspects at several scales in an unsupervised manner but, more importantly, a formulation of AOP grounded in information theory. The understanding of aspects under this new perspective makes additional progress toward the design of models and tools that facilitate software development.
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
|
|
 |
2
|
Sushil Bajracharya , Trung Ngo , Erik Linstead , Yimeng Dou , Paul Rigor , Pierre Baldi , Cristina Lopes, Sourcerer: a search engine for open source code supporting structure-based search, Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, October 22-26, 2006, Portland, Oregon, USA
[doi> 10.1145/1176617.1176671]
|
| |
3
|
Sushil Bajracharya, Trung Ngo, Erik Linstead, Yimeng Dou, Paul Rigor, Pierre Baldi, and Cristina Lopes. A study of ranking schemes in Internet-scale code search. Technical report, UCI Institute for Software Research, 2007.
|
| |
4
|
Elisa Baniassad , Paul C. Clements , Joao Araujo , Ana Moreira , Awais Rashid , Bedir Tekinerdogan, Discovering Early Aspects, IEEE Software, v.23 n.1, p.61-70, January 2006
[doi> 10.1109/MS.2006.8]
|
| |
5
|
|
| |
6
|
Ted J. Biggerstaff , Bharat G. Mitbander , Dallas Webster, The concept assignment problem in program understanding, Proceedings of the 15th international conference on Software Engineering, p.482-498, May 17-21, 1993, Baltimore, Maryland, United States
|
| |
7
|
|
| |
8
|
|
| |
9
|
|
| |
10
|
|
 |
11
|
Nelio Cacho , Claudio Sant'Anna , Eduardo Figueiredo , Alessandro Garcia , Thais Batista , Carlos Lucena, Composing design patterns: a scalability study of aspect-oriented programming, Proceedings of the 5th international conference on Aspect-oriented software development, March 20-24, 2006, Bonn, Germany
[doi> 10.1145/1119655.1119672]
|
| |
12
|
|
| |
13
|
|
| |
14
|
M. Ceccato , M. Marin , K. Mens , L. Moonen , P. Tonella , T. Tourwe, A Qualitative Comparison of Three Aspect Mining Techniques, Proceedings of the 13th International Workshop on Program Comprehension, p.13-22, May 15-16, 2005
[doi> 10.1109/WPC.2005.2]
|
| |
15
|
|
 |
16
|
|
| |
17
|
|
| |
18
|
|
| |
19
|
Marc Eaddy , Thomas Zimmermann , Kaitlin D. Sherwood , Vibhav Garg , Gail C. Murphy , Nachiappan Nagappan , Alfred V. Aho, Do Crosscutting Concerns Cause Defects?, IEEE Transactions on Software Engineering, v.34 n.4, p.497-515, July 2008
[doi> 10.1109/TSE.2008.36]
|
 |
20
|
Fernando Castor Filho , Nelio Cacho , Eduardo Figueiredo , Raquel Maranhão , Alessandro Garcia , Cecília Mary F. Rubira, Exceptions and aspects: the devil is in the details, Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering, November 05-11, 2006, Portland, Oregon, USA
[doi> 10.1145/1181775.1181794]
|
| |
21
|
|
 |
22
|
Alessandro Garcia , Cláudio Sant'Anna , Eduardo Figueiredo , Uirá Kulesza , Carlos Lucena , Arndt von Staa, Modularizing design patterns with aspects: a quantitative study, Proceedings of the 4th international conference on Aspect-oriented software development, p.3-14, March 14-18, 2005, Chicago, Illinois
[doi> 10.1145/1052898.1052899]
|
| |
23
|
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
|
| |
24
|
J. Hannemann and G. Kiczales. Overcoming the prevalent decomposition of legacy code. In Workshop Advanced Separation of Concerns, ICSE'01, 2001.
|
 |
25
|
Jan Hannemann , Gregor Kiczales, Design pattern implementation in Java and aspectJ, Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, November 04-08, 2002, Seattle, Washington, USA
|
| |
26
|
|
| |
27
|
Andy Kellens, Kim Mens, and Paolo Tonella. A survey of automated code-level aspect mining techniques. In Transactions on Aspect-Oriented Software Development IV. Springer Berlin / Heidelberg, 2007. 10.1007/978-3-540-77042-8_6.
|
| |
28
|
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Mehmet Akcsit and Satoshi Matsuoka, editors, phEuropean Conference on Object-Oriented Programming, volume 1241 of phLNCS, pages 220--242. Springer Verlag, 1997.
|
| |
29
|
Gregor Kiczales , Erik Hilsdale , Jim Hugunin , Mik Kersten , Jeffrey Palm , William G. Griswold, An Overview of AspectJ, Proceedings of the 15th European Conference on Object-Oriented Programming, p.327-353, June 18-22, 2001
|
| |
30
|
|
 |
31
|
|
| |
32
|
|
| |
33
|
Uira Kulesza , Claudio Sant'Anna , Alessandro Garcia , Roberta Coelho , Arndt von Staa , Carlos Lucena, Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study, Proceedings of the 22nd IEEE International Conference on Software Maintenance, p.223-233, September 24-27, 2006
[doi> 10.1109/ICSM.2006.48]
|
| |
34
|
|
| |
35
|
Erik Linstead, Paul Rigor, Sushil Bajracharya, Cristina Lopes, and Pierre Baldi. Mining internet-scale software repositories. NIPS 2007: Advances in Neural Information Processing Systems 20, 0, 2008.
|
 |
36
|
|
| |
37
|
Cristina Videira Lopes. AOP: A historical perspective (what's in a name?). In Robert Filman, Tzilla Elrad, Siobhan Clarke, and Mehmet Aksit, editors, Aspect-Oriented Software Development, chapter 5, pages 97--122. Addison Wesley, 2004.
|
| |
38
|
Cristina Videira Lopes and Sushil Krishna Bajracharya. Assessing aspect modularizations using design structure matrix and net option value. Transactions on Aspect-Oriented Software Development, 1: 1--35, 2006.
|
| |
39
|
|
| |
40
|
|
| |
41
|
|
| |
42
|
|
 |
43
|
|
 |
44
|
|
 |
45
|
David Shepherd , Jeffrey Palm , Lori Pollock , Mark Chu-Carroll, Timna: a framework for automatically combining aspect mining analyses, Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering, November 07-11, 2005, Long Beach, CA, USA
[doi> 10.1145/1101908.1101937]
|
 |
46
|
|
| |
47
|
|
| |
48
|
Claire Tristram. Untangling code. MIT Technology Review: Ten Emerging technologies that will change the world, February 2001.
|
 |
49
|
|
 |
50
|
Robert J. Walker , Elisa L. A. Baniassad , Gail C. Murphy, An initial assessment of aspect-oriented programming, Proceedings of the 21st international conference on Software engineering, p.120-130, May 16-22, 1999, Los Angeles, California, United States
[doi> 10.1145/302405.302458]
|
| |
51
|
Carl Zetie. Aspect-oriented programming considered harmful. Forrester Research, April 2005.
|
 |
52
|
|
CITED BY 2
|
|
Erik Linstead , Sushil Bajracharya , Trung Ngo , Paul Rigor , Cristina Lopes , Pierre Baldi, Sourcerer: mining and searching internet-scale software repositories, Data Mining and Knowledge Discovery, v.18 n.2, p.300-336, April 2009
|
|
|
Erik Linstead , Lindsey Hughes , Cristina Lopes , Pierre Baldi, Exploring Java software vocabulary: A search and mining perspective, Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation, p.29-32, May 16-16, 2009
|
|