Implementing distribution and persistence aspects with aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 2nd international conference on Aspect-oriented software development
AOP: Does It Make Sense? The Case of Concurrency and Failures
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Aspects: from promise to reality
Proceedings of the 3rd international conference on Aspect-oriented software development
Resolving feature convolution in middleware systems
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Summarization of dynamic content in web collections
PKDD '04 Proceedings of the 8th European Conference on Principles and Practice of Knowledge Discovery in Databases
Towards just-in-time middleware architectures
Proceedings of the 4th international conference on Aspect-oriented software development
Towards a catalog of aspect-oriented refactorings
Proceedings of the 4th international conference on Aspect-oriented software development
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
Deriving refactorings for AspectJ
Proceedings of the 4th international conference on Aspect-oriented software development
Generic middleware substrate through modelware
Proceedings of the ACM/IFIP/USENIX 2005 International Conference on Middleware
Composing design patterns: a scalability study of aspect-oriented programming
Proceedings of the 5th international conference on Aspect-oriented software development
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Exceptions and aspects: the devil is in the details
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Improving modularity of reflective middleware with aspect-oriented programming
Proceedings of the 6th international workshop on Software engineering and middleware
On the duality of aspect-oriented and feature-oriented design patterns
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
Safe composition of product lines
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
Object-oriented transformations for extracting aspects
Information and Software Technology
On the modularization and reuse of exception handling with aspects
Software—Practice & Experience
Measuring and characterizing crosscutting in aspect-based programs: basic metrics and case studies
FASE'07 Proceedings of the 10th international conference on Fundamental approaches to software engineering
Resolving feature dependency implementations inconsistencies during product derivation
Proceedings of the 6th ECMFA Traceability Workshop
Components meet aspects: Assessing design stability of a software product line
Information and Software Technology
Where the truth lies: AOP and its impact on software modularity
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Aspectizing exception handling: a quantitative study
Advanced Topics in Exception Handling Techniques
Modularizing design patterns with aspects: a quantitative study
Transactions on Aspect-Oriented Software Development I
Investigating framework product lines
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
Aspect-Oriented Programming (AOP) is an emerging paradigm to modularize crosscutting concerns. A series of guidelines to refactor a software system into a common core and a set of variable functionalities have become known as Horizontal Decomposition (HD). In this paper we apply the HD principles to the Prevayler main memory database management system. The objective is to evaluate and refine these principles and to extract patterns of their use through a case study on a popular open-source software system. Our evaluation shows that HD reveals six crosscutting functionalities. The refactoring of these concerns yield 36 different configurations of the Prevayler system which were previously not possible. The refactoring also reduces the core Prevayler code size by 53%, demonstrates a decrease of coupling between core functionality components by 43%, and reduces the lack of cohesion of the core system by 71%. Given the heterogeneous nature of crosscutting displayed in Prevayler, the size and separation of concern metrics have not reduced for the overall refactored system, i.e., for the core composed with the aspects. A posterior analysis of the re-engineering process reveals 22 refactoring patterns that could be readily used by an automatic aspect refactoring tool.