Composing features and resolving interactions


One of the accepted techniques for developing and maintaining feature-rich applications is to treat each feature as a separate concern. However, most features are not separate concerns because they override and extend the same basic service. That is, &#8220;independent&#8221; features are coupled to one another through the system's basic service. As a result, seemingly unrelated features subtly interfere with each other when trying to override the system behaviour in different directions. The problem is how to coordinate features' access to the service's shared variables. This paper proposes coordinating features via feature composition. We model each feature as a separate labelled-transition system and define a <i>1conflict-free (CF) composition</i> operator that prevents enabled transitions from synchronizing if they interact: if several features' transitions are simultaneously enabled but have conflicting actions, a non-conflicting subset of the enabled transitions are synchronized in the composition. We also define a <i>conflict- and violation-free (CVF) composition</i> operator that prevents enabled transitions from executing if they violate features' invariants. Both composition operators use priorities among features to decide whether to synchronize transitions.

DOI: 10.1145/355045.355061

Extracted Key Phrases

2 Figures and Tables


Citations per Year

72 Citations

Semantic Scholar estimates that this publication has 72 citations based on the available data.

See our FAQ for additional information.

Cite this paper

@inproceedings{Hay2000ComposingFA, title={Composing features and resolving interactions}, author={Jonathan D. Hay and Joanne M. Atlee}, booktitle={SIGSOFT FSE}, year={2000} }