Feature Specification and Refinement with State Transition Diagrams
In this paper, we introduce a graphic specification technique, called state transition diagrams (STD), and show the application to the feature interaction problem. Using a stream-based formal semantics, we provide refinement rules for STDs. Refinements define an implementation relation on STD specifications. We view features as particular refinements which add previously unspecified behavior to a given STD specification. The refinement relation is then used to add features, and to define the notion of conflicting features. Our techniques are demonstrated by a systematic development of an example given in [25].
💡 Research Summary
The paper tackles the long‑standing feature‑interaction problem by introducing a graphic specification technique called State Transition Diagrams (STDs) and grounding it in a rigorous stream‑based semantics. An STD consists of a set of states, input and output alphabets, and a transition relation that maps an input event together with the current state to an output event and a successor state. The authors interpret each transition as a partial function on infinite input streams (Σ^ω) producing output streams (Γ^ω). Consequently, the whole system behavior is modeled as a stream transformer f: Σ^ω → Γ^ω that can be decomposed into the functions represented by individual transitions. This semantic foundation gives STDs a formal footing comparable to process algebras while preserving their intuitive visual appeal.
On top of this semantics the authors define two families of refinement rules. The first family, structural refinement, preserves existing states and transitions but allows the insertion of new transitions, the strengthening of guards, or the refinement of output values. The second family, behavioral refinement, extends the specification by defining reactions for inputs that were previously unspecified, thereby expanding the reachable behavior space. Both families are captured by a binary refinement relation “R ⊑ S”, meaning that R is a more concrete implementation of S. The relation is shown to be reflexive, transitive, and a partial order, which enables systematic reasoning about stepwise development.
Crucially, the paper treats a “feature” as a particular refinement of a base STD. A base diagram B captures the core functionality of the system. Adding a feature F corresponds to applying a set of refinement rules that augment B with new states, transitions, or more detailed guards. The refinement relation F ⊑ B guarantees that the feature does not contradict the already defined behavior; it merely adds previously unspecified behavior. Conflicts between features are identified by examining the refinement lattice: if two features F₁ and F₂ both refine B (F₁ ⊑ B and F₂ ⊑ B) but neither refines the other (¬(F₁ ⊑ F₂) ∧ ¬(F₂ ⊑ F₁)), then they prescribe different reactions to the same input in the same context, which constitutes a conflict. The authors provide an algorithmic procedure for detecting such conflicts by traversing the transition tables of the refined diagrams and checking for overlapping input conditions with divergent outputs or target states.
To demonstrate the practicality of the approach, the paper revisits the example from reference
Comments & Academic Discussion
Loading comments...
Leave a Comment