Change impact analysis for object-oriented programs
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Composing crosscutting concerns using composition filters
Communications of the ACM
ACM Transactions on Software Engineering and Methodology (TOSEM)
A formal approach for specification and classification of software components
SEKE '02 Proceedings of the 14th international conference on Software engineering and knowledge engineering
Mondrian: an agile information visualization framework
SoftVis '06 Proceedings of the 2006 ACM symposium on Software visualization
A Change-based Approach to Software Evolution
Electronic Notes in Theoretical Computer Science (ENTCS)
Change-oriented software engineering
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Encapsulating and exploiting change with changeboxes
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
A tutorial on feature oriented programming and the AHEAD tool suite
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Intensional changes: modularizing crosscutting features
Proceedings of the 2010 ACM Symposium on Applied Computing
Intensional changes avoid co-evolution!
Proceedings of the 7th Workshop on Reflection, AOP and Meta-Data for Software Evolution
Separation of concerns in feature diagram languages: A systematic survey
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
A growing trend in software construction advocates the encapsulation of software building blocks as features which better match the specification of requirements. As a result, programmers find it easier to design and compose different variations of their systems. Feature-oriented programming (FOP) is the research domain that targets this trend. We argue that the state-of-the-art techniques for FOP have shortcomings because they specify a feature as a set of building blocks rather than a transition that has to be applied on a software system in order to add that feature's functionality to the system. We propose to specify features as sets of first-class change objects which can add, modify or delete building blocks to or from a software system. We evaluate this approach by implementing a simple text editor in a feature-oriented way and use the implementation to produce four different program variations. This shows that our approach contributes to FOP on three levels: expressiveness, composition verification and bottom-up feature-oriented development.