2007 · 170 citations · 26 references
ComputingComputer ScienceFeature EngineeringProgramming LanguagesSoftware EngineeringApplication Programming InterfacesDatabase ManagementFeature ConstructionSoftware ArchitectureSoftware DesignAspect-oriented ProgrammingCase Study EvaluationCode ReadabilityFeature RefactoringReadability
Software product lines aim to create highly configurable programs from a set of features. Common belief and recent studies suggest that aspects are well-suited for implementing features. We evaluate the suitability of AspectJ with respect to this task by a case study that refactors the embedded database system Berkeley DB into 38 features. Contrary to our initial expectations, the results were not encouraging. As the number of aspects in a feature grows, there is a noticeable decrease in code readability and maintainability. Most of the unique and powerful features of AspectJ were not needed. We document where AspectJ is unsuitable for implementing features of refactored legacy applications and explain why.
26
Feature oriented refactoring of legacy applications
Jia Liu, Don Batory, Christian Lengauer · 2006 · 256 citations
Scalable extensibility via nested inheritance
Nathaniel Nystrom, Stephen Chong, Andrew C. Myers · 2004 · 150 citations