Design and use of software architectures: adopting and evolving a product-line approach
Design and use of software architectures: adopting and evolving a product-line approach
Feature-Oriented Programming and the AHEAD Tool Suite
Proceedings of the 26th International Conference on Software Engineering
A semantics for advice and dynamic join points in aspect-oriented programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Aspect-oriented programming and modular reasoning
Proceedings of the 27th international conference on Software engineering
A gentle introduction to semantic subtyping
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A disciplined approach to aspect composition
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Feature oriented refactoring of legacy applications
Proceedings of the 28th international conference on Software engineering
Open modules: modular reasoning about advice
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
EffectiveAdvice: disciplined advice with explicit effects
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Reducing combinatorics in testing product lines
Proceedings of the tenth international conference on Aspect-oriented software development
Behavioral refinement of non-deterministic state transition diagrams based on behavior elimination
Proceedings of the 17th International Software Product Line Conference co-located workshops
Hi-index | 0.00 |
In this paper, we consider semantic refinement for feature-oriented programming where components are built from features and weavings, which we use to adapt one feature to the context of another one. We address the question of semantic reasoning about multiple weavings. If we know the effect of feature A on X and of feature B on X, what can we conclude about adding both A and B to X? For this, we define conservative weavings which do not modify the state of another feature. We show that composition of several such weavings is however not compositional as it does not preserve semantics. In particular, weavings must consider that other weavings have already been applied. This explains why it is considerably more difficult to reason about multiple aspect weavings. We show criteria on the dependencies between weavings which allow modular, semantics-preserving application of weavings. This is formalized in a calculus for feature composition and also extended to conditional refinements.