The concept assignment problem in program understanding
ICSE '93 Proceedings of the 15th international conference on Software Engineering
An initial assessment of aspect-oriented programming
Proceedings of the 21st international conference on Software engineering
IEEE Transactions on Software Engineering
A study on exception detection and handling using aspect-oriented programming
Proceedings of the 22nd international conference on Software engineering
Exploiting the map metaphor in a tool for software evolution
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Formal Concept Analysis: Mathematical Foundations
Formal Concept Analysis: Mathematical Foundations
Concern graphs: finding and describing concerns using structural program dependencies
Proceedings of the 24th International Conference on Software Engineering
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
AOP: Does It Make Sense? The Case of Concurrency and Failures
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
What's the code?: automatic classification of source code archives
Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining
The Journal of Machine Learning Research
MUDABlue: An Automatic Categorization System for Open Source Repositories
APSEC '04 Proceedings of the 11th Asia-Pacific Software Engineering Conference
Aspect-Oriented Analysis and Design
Aspect-Oriented Analysis and Design
Aspect Mining through the Formal Concept Analysis of Execution Traces
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Identifying Aspects Using Fan-In Analysis
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
An Information Retrieval Approach to Concept Location in Source Code
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
Summarization of dynamic content in web collections
PKDD '04 Proceedings of the 8th European Conference on Principles and Practice of Knowledge Discovery in Databases
A Qualitative Comparison of Three Aspect Mining Techniques
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Using language clues to discover crosscutting concerns
MACS '05 Proceedings of the 2005 workshop on Modeling and analysis of concerns in software
Extending Dynamic Aspect Mining with Static Information
SCAM '05 Proceedings of the Fifth IEEE International Workshop on Source Code Analysis and Manipulation
On the Use of Clone Detection for Identifying Crosscutting Concern Code
IEEE Transactions on Software Engineering
Timna: a framework for automatically combining aspect mining analyses
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
IEEE Software
Composing design patterns: a scalability study of aspect-oriented programming
Proceedings of the 5th international conference on Aspect-oriented software development
How Crosscutting Concerns Evolve in JHotDraw
STEP '05 Proceedings of the 13th IEEE International Workshop on Software Technology and Engineering Practice
Isolating and relating concerns in requirements using latent semantic analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Mining Aspects from Version History
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
On the Use of Line Co-change for Identifying Crosscutting Concern Code
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
Quantifying the Effects of Aspect-Oriented Programming: A Maintenance Study
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
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
Exceptions and aspects: the devil is in the details
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Efficiently mining crosscutting concerns through random walks
Proceedings of the 6th international conference on Aspect-oriented software development
Semantic clustering: Identifying topics in source code
Information and Software Technology
A Clustering Technique for Early Detection of Dominant and Recessive Cross-Cutting Concerns
EARLYASPECTS '07 Proceedings of the Early Aspects at ICSE: Workshops in Aspect-Oriented Requirements Engineering and Architecture Design
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Mining Eclipse Developer Contributions via Author-Topic Models
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Identifying, Assigning, and Quantifying Crosscutting Concerns
ACoM '07 Proceedings of the First International Workshop on Assessment of Contemporary Modularization Techniques
On some criteria for comparing aspect mining techniques
Proceedings of the 3rd workshop on Linking aspect technology and evolution
Do Crosscutting Concerns Cause Defects?
IEEE Transactions on Software Engineering
A survey of automated code-level aspect mining techniques
Transactions on aspect-oriented software development IV
Assessing aspect modularizations using design structure matrix and net option value
Transactions on Aspect-Oriented Software Development I
Sourcerer: mining and searching internet-scale software repositories
Data Mining and Knowledge Discovery
Is Structural Subtyping Useful? An Empirical Study
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Exploring Java software vocabulary: A search and mining perspective
SUITE '09 Proceedings of the 2009 ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation
Software Cartography: thematic software visualization with consistent layout
Journal of Software Maintenance and Evolution: Research and Practice - Working Conference on Reverse Engineering (WCRE 2008)
Software traceability with topic modeling
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Identifying crosscutting concerns using historical code changes
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Recommending source code examples via API call usages and documentation
Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Security versus performance bugs: a case study on Firefox
Proceedings of the 8th Working Conference on Mining Software Repositories
Automated topic naming to support cross-project analysis of software maintenance activities
Proceedings of the 8th Working Conference on Mining Software Repositories
Modeling the evolution of topics in source code histories
Proceedings of the 8th Working Conference on Mining Software Repositories
Applying a dynamic threshold to improve cluster detection of LSI
Science of Computer Programming
Proceedings of the 50th Annual Southeast Regional Conference
Analyzing and mining a code search engine usage log
Empirical Software Engineering
Detecting similar software applications
Proceedings of the 34th International Conference on Software Engineering
Inferring developer expertise through defect analysis
Proceedings of the 34th International Conference on Software Engineering
Do crosscutting concerns cause modularity problems?
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Proceedings of the 2013 International Conference on Software Engineering
An exploratory analysis of mobile development issues using stack overflow
Proceedings of the 10th Working Conference on Mining Software Repositories
A statistical semantic language model for source code
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Combining concern input with program analysis for bloat detection
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Sourcerer: An infrastructure for large-scale collection and analysis of open-source code
Science of Computer Programming
Improving software modularization via automated analysis of latent topics and dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Studying software evolution using topic models
Science of Computer Programming
Static test case prioritization using topic models
Empirical Software Engineering
Empirical Software Engineering
Hi-index | 0.00 |
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.