Composing features and resolving interactions

  • Authors:
  • Jonathan D. Hay;Joanne M. Atlee

  • Affiliations:
  • Department of Computer Science, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada;Department of Computer Science, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada

  • Venue:
  • SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

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, “independent” 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 1conflict-free (CF) composition 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 conflict- and violation-free (CVF) composition 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.