<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Feature-Oriented Modelling in BIP: A Case Study</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Cecylia Bocovich Joanne Atlee University of Waterloo</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>-In this paper, we investigate the usage of BehaviourInteraction-Priority version 2 (BIP2), a component-based modelling framework, for specifying feature-oriented systems. We evaluate BIP2 in the context of the Feature Interaction Problem and quantify the amount of work needed to add features to an existing system (i.e., in terms of rework to existing features, and work to identify and specify interactions). We present the results of a case study on a telephony system with five optional features where we found that the amount of work depends heavily on how features are interconnected. We identify three different design methodologies for interconnecting features, and propose one that reduces the amount of work and rework needed to add new features to an existing system.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
    </sec>
    <sec id="sec-2">
      <title>In software engineering, an increasingly popular strategy</title>
      <p>to decompose a complex system into smaller subproblems is
to perform feature-based decomposition, which is a type of
functional decomposition of the system. A feature is a unit of
functionality that can be developed and evolved independently.
However, the composition of separately designed features to
produce a final product often leads to unexpected or
undesirable behaviours. A feature interaction (FI) occurs whenever
the presence of one feature alters the behaviour of another.
For example, a user may subscribe to a telephony feature that
automatically forwards her calls to another number; she may
also subscribe to a second feature that screens calls against
a list of blocked numbers. If each feature is specified and
developed without knowledge or consideration of the other
feature, the outcome is not clear when both are activated in the
same scenario. A call could be screened before it is forwarded,
or it could instead be screened against the list of blocked
numbers at the forwarding destination.</p>
      <p>
        To be safe, a developer must consider how a new feature
might interact with existing features. To be thorough, all
combinations of existing features need to be considered. As
the number of features grows, the number of feature
combinations that must be analyzed for possible interactions grow
exponentially — until the work of integrating a new feature
is dominated by the analysis and resolution of feature
interactions. In systems with high variability, the Feature Interaction
Problem, the task of analyzing every possible combination
of composed features and resolving any discovered feature
interactions, becomes intractable with existing methods [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        Many techniques and tools have been developed to minimize
the work of the developer in discovering and resolving feature
interactions [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. One such strategy is the use of
specialized modelling languages for the design and verification of
composed systems. Behaviour-Interaction-Priority version
2 (BIP2) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is a framework for the design of
componentbased systems. BIP2 allows the designer to decompose a
complex system into a collection of interconnected components.
      </p>
      <p>Given that the BIP2 formalism is designed to support
component-based modularity, and given that BIP2 has explicit
language constructs for specifying how feature combinations
ought to synchronize and how conflicts and nondeterminism
ought to be resolved, we investigated how to use BIP2 to
address the Feature Interaction Problem. We performed a
case study in which we used BIP2 to model a telephony
system with five features. We aimed to answer the following
questions in our investigation: (1) Is it possible to model
features independently and integrate them into the system
without changing existing features? (2) How much work (and
rework) is required to integrate a new feature into an existing
system model? (3) How much work is required to specify
interactions among features, and what is the overall complexity
of the resulting system model?</p>
      <p>Answers to these questions depend heavily on the design
methodology used to define component interfaces and to
interconnect components. We identify three distinct design
methodologies for composing features, and we evaluate the
amount of developer work that is needed to integrate new
features and resolve feature interactions in each approach. An
interesting side effect of this work is that we have shown how
BIP2 – whose strength is in modelling components that are
designed to know about each other and to work together – can
be used to model components that do not know about each
other and to compose them so that they can work together.</p>
    </sec>
    <sec id="sec-3">
      <title>II. OVERVIEW OF BIP</title>
      <p>
        Behaviour-Interaction-Priority (BIP) is a component-based
language for modelling complex systems [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In BIP, the
behaviour of a system is modelled as a collection of individual
components, each of which is responsible for a subset of the
system’s behaviour. As the name suggests, BIP provides three
layers of specification to the model: the Behaviour of system
components, the Interactions 1 between these components, and
the Priorities between multiple possible execution paths. In this
paper, we use the second iteration of this framework, BIP2 [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
and will refer to this version from this point forward.
      </p>
      <p>1Given how the term interaction is overloaded, we use the acronym FI to
refer to a traditional feature interaction (any difference in feature behaviour,
intended or not, due to the presence of other features). We reserve the
qualified term interaction to refer to a BIP2 interaction (an explicitly specified
communication and synchronization among connected components).</p>
      <sec id="sec-3-1">
        <title>A. The Behaviour Layer</title>
        <p>Each component in a BIP2 model defines a subset of a
system’s overall functionality. In this paper, our system
consists of a base component that provides basic call-processing
functionality (i.e., on-demand voice connections between two
users), a set of optional feature components that extend or
override this functionality, and a component that represents
the system’s environment (i.e., telephone users).</p>
        <p>The most basic BIP2 component is an atom. The internal
operation of each atom is modelled as a Petri net. An atom’s
current state is represented by the set of currently occupied
places and the values of the atom’s variables. Transitions
between places in the net update the atom’s variables and the
set of occupied places. A transition from a set of previously
occupied places to a set of newly occupied places may be
optionally labelled with a guard, an update function, and
a port. A guard is a predicate over the atom’s variables,
and a transition is enabled and executed only if the system
state satisfies the guard. After transitioning, the variables
are updated as dictated by the update function. Ports trigger
transitions in synchronization with other components, and are
used in the specification of the interaction layer. Ports restrict
transitions similar to guards; a transition labelled by a port
relies on an interaction with another component to execute.</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. The Interaction Layer</title>
        <p>Components interface with each other through ports that are
linked together by connectors. A connector links at most one
port from each of the two or more components it connects: the
effect is to synchronize the transitions in each of the connected
components that are labelled with the linked ports. The ports
in a connector may be either triggering ports (i.e., senders)
or synchronizing ports (i.e., receivers). When a transition
labelled with a sender (denoted by a primed port name, e.g.,
busy’) is enabled, a synchronized execution step that involves
a subset of the enabled receiving transitions in the connected
components will execute. The subset of transitions that execute
is determined by the guards and the priority ordering of the
connector’s interactions.</p>
        <p>Each interaction in a connector consists of a triggering
port(s) and some subset of the connector’s synchronizing ports.
Interactions may be labelled with guard and transfer functions
in the same manner as component transitions, restricting which
of the components will participate in the synchronized step.
The variables in these functions are the data variables exported
by the components’ ports. Upon execution, the interaction’s
transfer function updates the variables in participant atoms,
allowing components to exchange information.</p>
        <p>For example, in a telephony model, the connectors between
the basic-call service components of multiple users define the
ways in which the services may interact throughout the process
of a call. Likewise, the connectors between a user component
and its basic-call component define how a user interacts with
her own call service.</p>
      </sec>
      <sec id="sec-3-3">
        <title>C. Priorities</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>To combat nondeterminism and enforce scheduling policies,</title>
      <p>BIP2 provides priorities as a means to choose between
multiple enabled execution paths. Nondeterminism arises when
there are multiple simultaneously enabled interactions, each
leading to a different overall system state. Normally, if there
is more than one connector with an enabled interaction, there
are no guarantees about which interaction will execute. We
can control the outcome by specifying priorities in one of
two ways: (1) at the component level by specifying that port
p1 has a higher priority than port p2 with p1 &gt; p2, or (2)
at the interaction level by specifying that interactions in the
connector C1 have priority over interactions in the connector
C2 with the priority C1 : &gt; C2 : .</p>
      <p>The simplest way to resolve all nondeterminism is to define
a complete ordering on the transitions that lead from each
state. Our basic-call service atom requires a total of 26
priorities to resolve conflicts from simultaneously enabled
interactions and avoid inconsistent states. Priorities play a large
role in the resolution of feature interactions.</p>
    </sec>
    <sec id="sec-5">
      <title>III. TELEPHONY CASE STUDY</title>
    </sec>
    <sec id="sec-6">
      <title>We conducted a case study on a telephony system to assess</title>
      <p>the extent to which BIP2 combats the Feature Interaction
Problem. In this section, we outline the basic structure of our
telephony system, the features involved, and the criteria we
used to evaluate the design methodologies we developed.</p>
      <p>A feature-oriented BIP2 telephony model consists of three
parts: (1) a basic-call service (modelled as an atomic
component), (2) a set of optional features to which a user may
subscribe that extend or modify the functionality of the basic-call
service (each of which is modelled as an atomic component),
and (3) the user (modelled as an atomic component).</p>
      <p>
        Each user’s basic-call service (BCS) allows that user to
place and receive calls. The places in the BCS component,
together with its variables, reflect the possible states of an
outgoing or incoming call. The ports of the component reflect
the ways in which users and features may interact with or
extend the functionality of the BCS (e.g., taking the phone
off the hook, or dialing a number), and the ways in which
the BCS of one user interacts with the BCSs of other users
(e.g., establishing a connection). Our case study includes five
optional features, taken from the specifications for the Feature
Interaction Contest [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]:
      </p>
      <p>Call Forwarding (CF): The subcriber may specify a
forwarding number. All calls to the subscriber will then be
forwarded to this number.</p>
      <p>Call Forwarding on Busy (CFB): If the subscriber receives
a call when she is involved in another call, the feature will
redirect the new call to a predetermined forwarding number.</p>
      <p>Call Waiting (CW): If the subscriber receives a call when
she is involved in another call, she may choose to put the
original call on hold, answer the new call, and then toggle
between the two calls.</p>
      <p>Terminating Call Screening (TCS): This feature allows
its subscriber to specify a list of blocked numbers. Any call
aouritgoimnaattiincgallfyr.om a number on this list will be terminated BCS A bbuussyy BCS B bbuussyy BCS C</p>
      <p>
        Three-Way Calling (TWC): This feature allows a sub- DIDALIAL CALLING DIDAILAL CALLING
sccormibmeruntoicaadtidona hthaisrdbeuesneretsotaabnlisehxeisdt,inagnycaulls.eOrnmcaeythcrheoes-weatyo INCALL busy isBiussByusy isiNsNotoBtBusuysy isBiussByusy isiNsNotoBtBusuysy
leaTvhe,e reBsIuPl2tinfgraimn eawtorarkditciloanimalstwtoo-swuapypocratllccoomnpfiognuernatti-obna.sed WOANWOIHTANOIFHTOOOFKROOKR INCALL WOANWOIHTANOIFHTOOOFKROOKR INCALL
modelling with an emphasis on inter-component interactions. busy' busy' isNisoBtBuussyy isBusy isNisoBtBuussyy isBusy
The primary goal of our case study was to assess these claims callWaitingConnector
in the context of feature-oriented modelling and feature
interactions (FIs). We evaluated BIP2’s suitability for modelling 2nd busySignalConnector
feature-oriented systems on three main points: IDLE HOLD Y New Priority:
1) oCfomapcoomsepdlemteomdeoldceolmofpltehxeittye:leTphhoenoyvesyrasltle mco m(i.pel.e,xtihtye 2nd HisONLoDtBuXsy CW b&lt;ucsaylSlWiganitainlCgoCnonnencetcotro:*r:*
BCS together with the user model and optional features
for each user). Fig. 1: The integration of CW in the reuse approach (partial
2) New feature integration: The amount of work that models are shown for brevity). The original connector is shown
a developer must perform to add a new feature to an in red and dashed, and the new connector, containing the 2nd
existing system. We look at the difficulty of design port from the CW component is shown in blue and solid.
decisions when composing new features in terms of
limitations on the number or type of ports in existing
components, transitions within the BCS component, and override: CFB, CW, and TWC override the progression of a
the types of existing connectors. We strive to adhere to call when the subscriber is busy, while CF and TCS override
the principles of feature-oriented development. That is, the progression of an incoming call.
the addition of a new feature to the system should not A call progresses through interactions with other basic-call
require the modification of the BCS or existing features. services and users. To integrate a new feature in the reuse
3) FI Resolution: The difficulty of detecting and resolving approach, we first identify the interactions in the existing
FIs in terms of how the modeller discovers conflicting components that it overrides. We then expand the connector(s)
features and the number of changes they must make in that contain these interactions to include ports in the new
the model to resolve these FIs. feature’s component. Interactions that involve the new feature’s
Our secondary goal was to identify design methodologies synchronizing or triggering ports are then given higher priority
or patterns for modelling and connecting BIP2 components in than the pre-existing interactions.
feature-oriented systems. In the next section we present three We show the integration of CW to an existing BIP2 model
different feature-oriented modelling strategies and evaluate in Figure 1. If User A is in a call, the (red) interaction normally
each of them based on the criteria above. For a more complete terminates subsequent incoming calls by synchronizing the
description of our modelling strategies complete with BIP2 busy0 port of User A’s BCS with the isBusy port of the
models and code, see our extended technical report [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. caller’s BCS, causing the caller to transition to its WAIT FOR
ONHOOK place. If User A subscribes to CW, this interaction
IV. DESIGN METHODOLOGIES is replaced with a new interaction (blue) that instead allows the
caller to proceed to the INCALL state. The CW feature keeps
track of which of the subscriber’s calls is currently on hold.
      </p>
      <p>The new interaction is given higher priority, thereby replacing
the old functionality.</p>
    </sec>
    <sec id="sec-7">
      <title>Each of our design methodologies approaches the problem</title>
      <p>of feature composition and integration with the base system
in a different way, resulting in different interactions, different
degrees of model complexity, and different types of decisions
the modeller must make during composition. We give a
summary of our evaluations in Table I.</p>
      <sec id="sec-7-1">
        <title>B. Rewire Approach</title>
      </sec>
      <sec id="sec-7-2">
        <title>A. Reuse Approach</title>
        <p>In the reuse approach, new features are integrated into
the base component by reusing existing components and
expanding the connectors between basic-call services and
users to include the new feature component, and replacing
the default interactions with new ones that slightly alter the
progression of a call. The inspiration for this approach stems
from the idea that a feature overrides existing functionalities
provided by the base service. Our case study features can
naturally be described in terms of the BCS functionalities they
While the reuse approach allows for the independent
development of features and resists changes to the BCS
components, the design and integration of a feature is limited by
the ports and transitions of existing components. Furthermore,
a system with many features that override the same
functionalities may result in very large connectors that contain ports
from many different components. These connectors are more
difficult to specify and define priorities for, as all combinations
of enabled ports must be considered. We designed the rewire
approach to give the modeller more freedom to modify existing
ringing
ringTone
blocked
forwarding</p>
        <p>allowed
components with the expectations of easier design decisions
and simple components and interaction specifications.</p>
        <p>In the rewire approach, new features may entail new
functionality (i.e., new ports and transitions) in the pre-existing
model of the BCS. When integrating a feature, we first decide
the changes the feature makes to the progression of states
inside the BCS, and add new transitions and label them with
new ports that will be connected to the new feature component.
Finally, we design the feature component, and specify the
interactions of a new connector that synchronizes transitions
in the modified BCS components and the feature component.</p>
        <p>In Figure 2, we give an example of the changes made to
a BCS component when integrating CF and TCS, both of
which modify the progression of an incoming call. In TCS,
a new call interacts with the TCS feature component through
ports that first check and then allow or block the call. New
transitions and new ports (shown in purple) are involved in
new interactions with the connected TCS component.</p>
        <p>The rewire approach results in feature-specific connectors
that are small and similar in behaviour. Fortunately, BIP2
allows modellers to specify connector types to ease the
specification of many, similar connectors. This further reduces the
work of the modeller and the complexity of the overall model
in the rewire approach. Unfortunately, the advantages of the
rewire approach come at the cost of violating the principles
of feature-oriented development: existing components must be
extended with new transitions that react to events on new ports.</p>
      </sec>
      <sec id="sec-7-3">
        <title>C. Pipe-and-Filter Approach</title>
        <p>The reuse and rewire approaches exemplify the challenge of
feature-oriented modelling in BIP. There is a trade-off between
modelling freedom versus modularity; by refusing to change
existing components, we restrict the ways in which other
components can interact with them. To bridge the gap between
these two strategies, we adapted an approach that standardizes
how components interact with each other.</p>
        <p>disconnecting ringing ringTone forwarding allowed check
RINGING</p>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>We took inspiration for our third approach from the Dis</title>
      <p>
        tributed Feature Composition (DFC) architecture developed by
Zave and Jackson [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] for the development and composition of
telephony features. In DFC, each user’s features are connected
sequentially in a pipeline, and communications from one user
to another propagate through a sequence of features as a call
is placed from one BCS to another. Thus, the execution of
features is serialized, with each feature triggering the next
feature in the pipeline. As a result, DFC provides a default
resolution of FIs by imposing a priority ordering on the
execution of features, determined by the feature’s positions
in the sequence (e.g., the last feature in the pipeline provides
a final response to a user request).
      </p>
      <p>In our pipe-and-filter approach, we standardize the
triggering and synchronizing ports on each feature, making it much
easier to interconnect features without knowledge of their
internal structure. Synchronized transitions within components
are triggered not just by communications on the ports of
connectors, but by the specific data conveyed in the
communications. Specifically, we designed a new BCS that standardizes
the messages that are sent among components. Messages fall
into one of three main types: messages that establish a call,
busy messages that indicate the other service is currently
unavailable, and disconnect messages that indicate one of the
participants wishes to terminate a call. Every component has
two ports: a synchronizing port in for receiving incoming
messages, and a triggering port out for sending outgoing
messages. Every interaction between an out and in port passes
the following data: (1) The enumerated message type (CONN,
BUSY, or TERM), (2) the id of the component that sent the
message, and (3) the id of the component that is the designated
recipient of the message.</p>
      <p>In Figure 3, we show the composition of two BCS
components with a TCS feature component. A user’s features
are arranged and connected in a sequence between her BCS
and the feature sequences of other users. Messages “flow”
through the pipeline one component at a time. Each
component synchronizes with the previous component in the chain;
decides whether to react to the received data by modifying the
message; and then propagates the message further, either by
passing it to the next feature or back to the previous feature.</p>
      <p>The standardization of port types and interactions, along
features’ compliance to the rule that all components must
propagate messages either forward or backward through the
pipeline, allows features and BCS components to be oblivious
of the behaviour and existence of other components, while
still reacting predictably to received communications. Features
can be designed independently and in parallel. This provides
a greater degree of modularity than the rewire approach,
which requires modifications to existing components, as well
as the reuse approach, which requires knowledge of existing
components. Additionally, every feature has the same ports
and is linked to other components with the same connectors,
further reducing the work of the modeller.</p>
      <p>BCS A
out {src = myNum;
dest := targetNum;
code := CONN;}</p>
      <p>We performed a case study to evaluate each strategy on
three main points: the complexity of the overall model (in
terms of the number of feature places and transitions, as well
as modifications to the BCS and the number and complexity
of connectors used to compose the overall model), the work
of integrating a new feature into the existing model (in terms
of additional feature components, connectors, priorities, and
design decisions that require knowledge of existing
components), and the difficulty of detecting and resolving feature
interactions (in terms of analyzing existing components and
the rework required to remove undesired behaviour). We
summarized our quantitative data from the case study in Table I.</p>
      <p>We found that each approach exhibits complexity in a
different aspect of the modelling process, as shown in Table I.
The reuse approach has more complex connectors and
interaction specifications, whereas the rewire approach adds model
complexity in the form of monolithic implementations of
features in the BCS component, which violates the principles
of feature-oriented design and increases the chance of
introducing errors in BCS behaviour. The pipe-and-filter approach
introduces complexity in yet another area, requiring more
complex feature components to formulate specialized behaviour
in response to standardized messages. Feature components in
the pipe-and-filter approach require more data variables, and
transitions require guard and update functions that react to and
modify the component and message data variables.</p>
      <p>The integration and resolution of new features require
varying amounts of knowledge, work, and design decisions
in each of the three approaches. The reuse approach requires
the modeller to design new features within the constraints
of existing ports and transitions in the BCS. In contrast, the
rewire approach affords the modeller more freedom, yet
complicates the BCS model and violates the principles of
featureoriented design. In fact, both of our first two approaches
require significant knowledge of, and possible modifications
to, existing components. In feature-oriented systems with a
continuously evolving set of features, it is advantageous for
a feature developer to not know about the other features in
the model. It is this obliviousness and separation of concerns
that allows features to be developed in isolation and by third
parties, and to be more easily integrated into an existing
system without requiring significant rework of existing features
or their connectors. The pipe-and-filter strategy is the most
effective in supporting feature obliviousness. Not only does
every feature have the same interface, but the connector types
and their interactions are standardized. What is left to the
modeller is to determine the order of connected features in
the pipeline, and to instantiate the connectors to realize this
pipeline. As a result, the composition of features and resolution
of FIs was almost trivial.</p>
      <p>We have shown that in BIP2, where specifications of
ports, connectors, and interactions require some knowledge
of the internal workings and ports of other components,
feature-oriented modelling is possible with the pipe-and-filter
approach. In this approach, individual features may remain
agnostic to other features, only requiring knowledge of the
base component during their development and composition.</p>
    </sec>
    <sec id="sec-9">
      <title>V. RELATED WORK</title>
    </sec>
    <sec id="sec-10">
      <title>Since the framing of the Feature Interaction Problem in</title>
      <p>
        1989 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], there have been myriad attempts to minimize the
effort of the developer in composing systems that are prone
to a large number of FIs [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Off-line techniques aid the
developer during the design and development of the system.
      </p>
      <p>
        Techniques for detecting FIs reduce the effort of the
developer in discovering problematic compositions of
features and pinpointing the sources of undesired
behaviour that need to be resolved [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>Filtering approaches limit the variability of a system
by removing problematic or unlikely combinations of
composed model has three users, each with a basic-call service, where one user has subscribed to all five optional features.
features from analysis, thereby reducing the number of</p>
    </sec>
    <sec id="sec-11">
      <title>FIs a developer needs to consider to those in a small set of feasible products [13], [14], [15].</title>
    </sec>
    <sec id="sec-12">
      <title>On-line techniques for coordinating feature execution re</title>
      <p>
        solve FIs as they occur at runtime. Hay and Atlee proposed a
specification and composition model that uses feature priority
to automatically resolve FIs during composition [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
Distributed Feature Composition (DFC) developed by Zave and
Jackson [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] connects features in a pipe-and-filter architectures,
avoiding FIs architecturally by serializing the features’
executions. In contrast, BIP provides modellers with the flexibility
to specify how features are connected and prioritized.
      </p>
      <p>
        There have been previous case studies to evaluate the
modelling capabilities of BIP. Basu et al. performed a case
study on wireless sensor networks [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] to assess the suitability
of BIP2 in modelling distributed systems with heterogeneous
components. Bourgos et al. conducted a case study on the
modelling of a MJPEG decoder [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to test the use of BIP2
in analyzing the performance of embedded applications on
different hardware platforms. While these case studies provide
evidence for the flexibility of BIP and its applicability to
a wide variety of hardware and software systems, to our
knowledge, there are no existing studies that analyze the use
of BIP in the context of the Feature Interaction Problem. We
provide both an analysis of its use to compose and analyze
features and a comparison of design strategies for specifying
feature-oriented systems in BIP.
      </p>
    </sec>
    <sec id="sec-13">
      <title>VI. CONCLUSION</title>
      <p>In summary, we investigated the effectiveness of BIP2 for
modelling feature-rich systems, with particular attention to the
amount of work needed to compose features, the amount of
re-work needed to evolve a model to integrate new features,
and the degree of complexity of the resulting model. Each
of the three strategies that we studied has its advantages and
its weaknesses. Ultimately, when considering which strategies
help to address the Feature Interaction Problem, the
pipe-andfilter approach is the more effective design methodology: (1)
it supports and preserves feature modularity, even when new
features are added to the system, and (2) the amount of work
and re-work needed to add a new feature is substantially less
than in the other two strategies.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>T.</given-names>
            <surname>Bowen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Dworack</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Chow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Griffeth</surname>
          </string-name>
          , G. Herman, and Y.
          <string-name>
            <surname>-J. Lin</surname>
          </string-name>
          , “
          <article-title>The feature interaction problem in telecommunications systems</article-title>
          ,”
          <source>in Proceedings of the 7th International Conference on Software Engineering for Telecommunication Switching Systems (SETSS)</source>
          ,
          <year>1989</year>
          , pp.
          <fpage>59</fpage>
          -
          <lpage>62</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Calder</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kolberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. H.</given-names>
            <surname>Magill</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Reiff-Marganiec</surname>
          </string-name>
          , “
          <article-title>Feature interaction: a critical review and considered forecast</article-title>
          ,” Computer Networks: The
          <source>International Journal of Computer and Telecommunications Networking</source>
          , vol.
          <volume>41</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>115</fpage>
          -
          <lpage>141</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Basu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bensalem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bozga</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Combaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jaber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.-H.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sifakis</surname>
          </string-name>
          , “
          <article-title>Rigorous component-based system design using the bip framework</article-title>
          ,
          <source>” IEEE Software</source>
          , vol.
          <volume>28</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>41</fpage>
          -
          <lpage>48</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Verimag</surname>
          </string-name>
          , “Bip2 documentation, release
          <year>2015</year>
          .
          <volume>04</volume>
          (
          <issue>rc7</issue>
          ) [online],” Available: http://www-verimag.imag.fr/TOOLS/DCS/bip/doc/latest/pdf/BIP2. pdf (
          <issue>accessed November 5</issue>
          ,
          <year>2015</year>
          ),
          <source>Tech. Rep.</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kolberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. H.</given-names>
            <surname>Magill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Marples</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Reiff-Marganiec</surname>
          </string-name>
          , “Second feature interaction contest,”
          <source>in Proceedings of Feature Interaction Workshop</source>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Calder</surname>
          </string-name>
          and
          <string-name>
            <given-names>E. H.</given-names>
            <surname>Magill</surname>
          </string-name>
          , Eds. IOS Press,
          <year>2000</year>
          , pp.
          <fpage>293</fpage>
          -
          <lpage>310</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bocovich</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Atlee</surname>
          </string-name>
          , “
          <article-title>Feature-oriented modelling in BIP: A case study,” cs</article-title>
          .uwaterloo.ca/ cbocovic/bip.pdf,
          <source>Tech. Rep. CS-2016-04</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Jackson</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Zave</surname>
          </string-name>
          , “
          <article-title>Distributed feature composition: a virtual architecture for telecommunications services</article-title>
          ,
          <source>” IEEE Transactions on Software Engineering</source>
          , vol.
          <volume>24</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>831</fpage>
          -
          <lpage>847</lpage>
          ,
          <year>October 1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Keck</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Kuehn</surname>
          </string-name>
          , “
          <article-title>The feature and service interaction problem in telecommunications systems: a survey</article-title>
          ,
          <source>” IEEE Transactions on Software Engineering</source>
          , vol.
          <volume>24</volume>
          , no.
          <issue>10</issue>
          , pp.
          <fpage>779</fpage>
          -
          <lpage>796</lpage>
          ,
          <year>October 1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>K. H.</given-names>
            <surname>Braithwaite</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Atlee</surname>
          </string-name>
          , “
          <article-title>Towards automated detection of feature interactions,” in Feature Interactions in Telecommunications Systems</article-title>
          . IOS Press,
          <year>1994</year>
          , pp.
          <fpage>36</fpage>
          -
          <lpage>59</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>C.</given-names>
            <surname>Prehofer</surname>
          </string-name>
          , “
          <article-title>An object-oriented approach to feature interaction,” in Feature Interactions in Telecommunications Systems IV</article-title>
          . IOS Press,
          <year>1997</year>
          , pp.
          <fpage>313</fpage>
          -
          <lpage>325</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>B.</given-names>
            <surname>Stepien</surname>
          </string-name>
          , “
          <article-title>Feature description and feature interaction analysis with use case maps and lotos,” in Feature Interactions in Telecommunications Systems VI</article-title>
          . IOS Press,
          <year>2000</year>
          , pp.
          <fpage>274</fpage>
          -
          <lpage>289</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Apel</surname>
          </string-name>
          , A. von Rhein, T. Thu¨m, and C. Ka¨stner, “
          <article-title>Feature-interaction detection based on feature-based specifications,” Computer Networks</article-title>
          , vol.
          <volume>57</volume>
          , no.
          <issue>12</issue>
          , pp.
          <fpage>2399</fpage>
          -
          <lpage>2409</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Heisel</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Souquieres</surname>
          </string-name>
          , “
          <article-title>A heuristic approach to detect feature interactions in requirements,” in Feature Interactions in Telecommunications Systems V</article-title>
          . IOS Press,
          <year>1998</year>
          , pp.
          <fpage>165</fpage>
          -
          <lpage>171</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Bredereke</surname>
          </string-name>
          , “
          <article-title>Families of formal requirements in telephone switching,” in Feature Interactions in Telecommunications Systems VI</article-title>
          . IOS Press,
          <year>2000</year>
          , pp.
          <fpage>257</fpage>
          -
          <lpage>273</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>D. O.</given-names>
            <surname>Keck</surname>
          </string-name>
          , “
          <article-title>A tool for the identification of interaction-prone call scenarios,” in Feature Interactions in Telecommunications Systems V</article-title>
          . IOS Press,
          <year>1998</year>
          , pp.
          <fpage>276</fpage>
          -
          <lpage>290</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>J.</given-names>
            <surname>Hay</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Atlee</surname>
          </string-name>
          , “
          <article-title>Composing features and resolving interactions</article-title>
          ,”
          <source>in Proceedings of ACM SIGSOFT Foundations of Software Engineering (FSE)</source>
          ,
          <year>2000</year>
          , pp.
          <fpage>110</fpage>
          -
          <lpage>119</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Basu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Mounier</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Poulhie`s, J</article-title>
          . Pulou, and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sifakis</surname>
          </string-name>
          , “
          <article-title>Using BIP for modeling and verification of networked systems - a case study on Tiny OS-based networks</article-title>
          ,
          <source>” in Proceedings of the Sixth IEEE International Symposium on Network Computing and Applications</source>
          , Cambridge, USA,
          <year>July 2007</year>
          , pp.
          <fpage>257</fpage>
          -
          <lpage>260</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>P.</given-names>
            <surname>Bourgos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Basu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bensalem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Huang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sifakis</surname>
          </string-name>
          , “
          <article-title>Integrating architectural constraints in application software by source-to-source transformation in BIP,”</article-title>
          <source>Verimag Research Report, Tech. Rep. TR-2011- 1</source>
          ,
          <year>January 2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>