Role model designs and implementations with aspect-oriented programming
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Computing Surveys (CSUR)
On the representation of roles in object-oriented and conceptual modelling
Data & Knowledge 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
Locating Features in Source Code
IEEE Transactions on Software Engineering
Roles and Aspects: Similarities, Differences, and Synergetic Potential
OOIS '02 Proceedings of the 8th International Conference on Object-Oriented. Information Systems
Evolving Object-Oriented Designs with Refactorings
ASE '99 Proceedings of the 14th IEEE international conference on Automated software engineering
Refactoring to Patterns
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
Software—Practice & Experience - Research Articles
A Qualitative Comparison of Three Aspect Mining Techniques
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Understanding Concerns in Software: Insights Gained from Two Case Studies
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
Aspect-oriented programming and modular reasoning
Proceedings of the 27th international conference on Software engineering
Refactoring a Java Code Base to AspectJ: An Illustrative Example
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
On the Use of Clone Detection for Identifying Crosscutting Concern Code
IEEE Transactions on Software Engineering
Refactoring the Aspectizable Interfaces: An Empirical Assessment
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
Representing concerns in source code
ACM Transactions on Software Engineering and Methodology (TOSEM)
Tool-Supported Refactoring of Existing Object-Oriented Code into Aspects
IEEE Transactions on Software Engineering
Identifying, Assigning, and Quantifying Crosscutting Concerns
ICSEW '07 Proceedings of the 29th International Conference on Software Engineering Workshops
A New k-means Based Clustering Algorithm in Aspect Mining
SYNASC '06 Proceedings of the Eighth International Symposium on Symbolic and Numeric Algorithms for Scientific Computing
Modules for crosscutting models
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
Analysing Object Type Hierarchies to Identify Crosscutting Concerns
FGIT '09 Proceedings of the 1st International Conference on Future Generation Information Technology
Hi-index | 0.00 |
A key step in the evolution of a Java system towards the aspect oriented paradigm is the identification of crosscutting concerns that need to be refactored. This paper proposes an approach to identify concerns and the crosscutting among them in existing Java systems. A meta-model is defined to represent concerns as sets of Type Fragments (where a Type Fragment is a portion of a Type in terms of its members, properties and relationships). The approach exploits the concept of Role: each Role is associated to a concern and the system source code is analyzed to find the Type Fragments implementing it. All the Roles that contribute to implement a same semantic concern are grouped together by a clustering algorithm based on a combination of a structural and a lexical distance. Each cluster of Roles (and thus the Type Fragments associated to them) is assigned to a single more abstract concern. Crosscutting is detected looking for scattering and tangling of Type Fragments within the identified concerns. The structural information about the Type Fragments assigned to each concern and the crosscutting relationships among the concerns can be used to drive the refactoring towards aspects. The results from a case study where the approach has been applied to several software systems are presented and discussed.