J. Software Engineering & Applications, 2010, 3, 614-627
doi:10.4236/jsea.2010.36072 Published Online June 2010 (http://www.SciRP.org/journal/jsea)
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage
Configuration
Abdelrahman Osman Elfaki, Somnuk Phon-Amnuaisuk, Chin Kuan Ho
Center of Artificial Intelligent and Intelligent Computing, Multimedia University, Cyberjaya, Malaysia.
Email: {abdelrahman.osman.06, somnuk.amnuaisuk, ckho}@mmu.edu.my
Received March 21st, 2010; revised April 6th, 2010; accepted April 8th, 2010.
ABSTRACT
Software product Line (SPL) is an emerging methodology for developing software products. Stage-configuration is one
the important processes applying to the SPL. In stage-configuration, different groups and different people make
configuration choices in different stages. Therefore, a successful software product is highly dependent on the validity of
stage-configuration process. In this paper, a rule-based method is proposed for validating stage-configuration in SPL. A
logical representation of variability using First Order Logic (FOL) is provided. Five operations: validation rules,
explanation and corrective explanation, propagation and delete-cascade, filtering and cardinality test are studied as
proposed operations for validating stage-configuration. The relevant contributions of this paper are: implementing
automated consistency checking among constraints during stage-configuration process based on three levels (Variant-
to-variant, variant-to-variation point, and variation point-to-variation point), define interactive explanation and
corrective explanation, define a filtering operation to guide the user within stage-configuration, and define (explicitly)
delete-cascade validation.
Keywords: Software Product Line, Variability, Stage Configuration
1. Introduction
Software Product Line (SPL) has proved to be an effec-
tive strategy to benefit from software reuse [1], allowing
many organizations to reduce development costs and
duration, meanwhile increase product quality [2]. It is an
evolution from software reuse and Commercial Off-
The-Shelf (COTS) methodologies.
Feature Model (FM) [3] appeals to many SPL devel-
opers as essential abstractions that both customers and
developers understand. Customers and engineers usually
speak of product characteristics in terms of those features
the product has or delivers. Therefore, it is natural and
intuitive to express any commonality or variability in
terms of features [4]. Orthogonal Variability Model
(OVM) is another successful approach proposed to docu-
ment variability in SPL [5].
The principal objective for SPL is to configure a suc-
cessful software product from domain-engineering proc-
ess by managing SPL artifacts (variability modeling).
Recently, in [6,7], validation is discussed as important
issue in SPL community. Validating SPL intends to pro-
duce error-free products including the possibility of pro-
viding explanations to the modeler so that errors can be
detected and eliminated. Usually, medium SPL contains
thousands of features [2]. Therefore, validating SPL rep-
resent a challenge because it’s a vital process and non-
feasible to done manually.
The lack of a formal semantics and reasoning support
of FM has hindered the development of validation meth-
ods for FM [8]. The automated validation of FM was
already identified as a critical task in [9-11]. However,
there is still a lack of an automated support for FM vali-
dation.
The configuration is a task of selecting a valid and
suitable set of features for a single system, and it can
become very complicated task [12]. Supporting user’s
needs in generating a valid and suitable solution is the
basic functionality of a configuration system. In SPL,
selecting a solution from domain-engineering process to
use it in application-engineering process is the meaning
of a configuration. As a conclusion, FM represents the
configuration space of a SPL. An application-engineer
may specify a member of a SPL by selecting the desired
features from the FM within the variability constraints
defined by the model, e.g., the choice of exactly one fea-
ture from a set of alternative features. In stage configura-
tion, different groups and different people make configu-
An Interactive Method for Validating Stage Configuration615
ration choices in different stages [13].
2. Preliminaries
2.1 Software Product Line
SPL has been defined by Meyer and Lopez as a set of
products that share a common core technology and ad-
dress a related set of market applications [14]. SPL has
two main processes; the first process is the domain-engi-
neering process that represents domain repository and is
responsible for preparing domain artifacts including
variability. The second process is the application-engin-
eering that aims to consume specific artifact, picking
through variability, with regards to the desired applica-
tion specification. The useful techniques to represent va-
riability are FM and OVM. SPL has various members. A
particular product-line member is defined by a unique
combination of features (if variability modeled using FM)
or a unique combination of variants (if variability model-
ed using OVM). The set of all legal features or variants
combinations defines the set of product line members.
2.2 Feature Model
FM [3] is considered as one of the well-known methods
for modeling SPLs [9]. According to Czarnecki and
Eisenecker [12] the two most popular definitions of FM
are 1) an end user visible characteristic of a system 2) a
distinguishable characteristic of a concept (e.g., system,
component, and so on) that is relevant to some stake-
holders of the concept. Features in FM represent essential
abstractions of the SPL (to both developers and custom-
ers). Customers and developers usually speak of product
characteristics in terms of those features the product has
or delivers. Therefore, it is natural and intuitive to ex-
press any commonality or variability in terms of features
[4]. A FM is a description of the commonalities and dif-
ferences between the individual software systems in a
SPL. In more detail, a FM defines a set of valid feature
combinations. The set of all legal features combinations
defines the set of product line members. Each of such
valid feature combinations can be served as a specifica-
tion of a software product [12,15].
A feature model is a hierarchically structure of fea-
tures and consists of: 1) relationships between a parent
feature and its child features, and 2) dependency con-
straints rules between features, which are inclusion or
exclusion. Czarnecki et al. [13] defined Cardinality-
based feature modeling by integrating a number of exten-
sions to the original FODA notation. According to [13]
there are three different versions of FM: basic FM, car-
dinality FM, and extended FM. Figure 1 illustrates basic
FM. Figure 1 is borrowed from [10]. In any type of FMs
there are there are some common properties such as
(examples are based on Figure 1):
Figure 1. A car software product line represented by basic
feature model
Parent Feature: This feature could be described as a
decision point, in which some choices or decisions
should be taken. A parent feature contains one or more of
child feature(s). As example, transmission is a parent
feature.
Child Feature: A feature belongs to parent feature is
called a child feature, for instance, “Electric” is a child
feature belongs to the parent feature “Engine”.
Common Feature: In a common relationship (between
parent and child features), a child feature follows his
parent feature in any product. For instance, “Engine”,
“Transmission”, and “Body” are common features (be-
longs to the parent feature “Car”), which means it must
be including in any product related to car SPL.
Option Feature: Option feature can follow his parent
feature or not. For instance, “Cruise” is an optional fea-
ture.
Selection process: In selection process, one or more
features could be selected from the parent feature. In
basic FM, this operation is known as alternative, where
one child feature can be included in a product when the
parent feature is included. In cardinality FM, the selec-
tion process organizes by two numbers represent maxi-
mum and minimum numbers allowed to be selected from
parent feature.
Constraint dependency: is known also as cross-tree re-
lation. Require and exclude represent the constraint de-
pendency. In the following require and exclude are de-
fined.
Exclude: feature X excludes Y, means that if X is in-
cluded in a product then Y must not be included and vice
versa.
Require: feature X requires Y, means that if X is in-
cluded in a product then Y must be included.
2.3 Orthogonal Variability Model
Orthogonal Variability Model (OVM) [5] is one of the
useful techniques to represent variability, which provides
a cross-sectional view of the variability through all soft-
ware development artifacts. Figure 2 illustrates OVM for
e-shopping system. Figure 2 borrow from [5]. Variabil-
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration
Copyright © 2010 SciRes. JSEA
616
ity is described (in OVM) by three terms. These terms
are:
Variation Point: a variation point is a point that could
be select one or more of its variants. For instance,
“Member reward” in Figure 2 is a variation point.
Variant: a variant is a choice belonging to specific
variation point. For instance, “https”, “SSL”, and “SET”
are variants belonging to “Secure payment” variation
point.
Constraint dependencies rules: These rules describe
the dependency relation between variation points and
variants. Require and exclude signify the constraint de-
pendency relation in OVM. These relations are: variation
point requiring or excluding another variation point, va-
riant requiring or excluding another variant and variant
requiring or excluding variation point.
3. Related Work
In this section, we survey the works that related to vali-
dation of SPL regardless the method of modeling vari-
ability used. Inside these studies, we highlight the valida-
tion operations of the configuration. At the end, we justify
our contributions.
Schlich and Hein proved the needs and benefits of using
the knowledge-base representation for configuration sys-
tems in [16]. A knowledge-based product derivation pro-
cess [17,18] is a configuration model that includes three
entities of Knowledge Base. The automatic selection
provides a solution for complexity of product line vari-
ability. In contrast to the proposed method, the knowledge
-based product derivation process does not provide ex-
plicit definition of variability notations and for the selec-
tion process. In addition, knowledge-based product deri-
vation process is not focused on validation operations.
Mannion [19] was the first who connect propositional
formulas to FM. Mannion’s model did not concern cross-
tree constraints (Require and Exclude constraints). Zhang
et al. [20] defined a meta-model of FM using Unified
Modeling Language (UML) core package and took Man-
nion's proposal as foundation and suggested the use of an
automated tool support. Zhang’s model satisfies con-
straint dependency checking in the basic level (feature-to-
feature). By define pre-condition and post-condition for
each feature explanation operation was satisfied but there
is no mentioned for propagation. Batory in [21] proposed
a coherent connection between FM, grammar and pro-
positional formulas. Batory’s study represented basic FM
using context–free grammars plus propositional logic.
This connection allows arbitrary propositional constraints
to be defined among features and enables off-the-shelf
satisfible solvers to debug FM. Batory using solvers sat-
isfied constraint dependency checking and explanation
operations only. Sun and Zhang [22] proposed a formal
semantics for the FM using first order logic. Sun used
Alloy Analyzer (tool for analyzing models written in alloy)
to automate constraint dependency checking (feature-to-
1..1
1..3
0..1
1..n
VP
Payment
by
VP
Secure
payment
VP
Shopping
cart view
VP
Member
reward
VP
Item
Search
https
V
SSL
V
SET
V
Member
view
V
Public view
V
Search name
V
Search
number
V
By category
V
By price
V
similarity
search
V
Search tips
V
Credit card
V
Cash
V
e-Cash
V
Transactions
V
Exchange
rew ar ds
V
Collect
rewards
V
Personal
discounts
V
1..2
0..1
Variability model
<<requires>>
Figure 2. OVM represent variability in E-shopping system
An Interactive Method for Validating Stage Configuration 617
feature level) and explanation operations in the configu-
ration process. Asikainen et al. [15] satisfied constraint
dependency checking and explanation by translate the
model into Weigh Constraint Rule Language (WCRL).
WCRL is a general-purpose knowledge representation
language developed based on propositional logic.
Wang et al. [23] proposed Ontology Web Language
(OWL) to Verify FM. Wang used OWL DL ontology to
capture the interrelationships among the features in a FM.
Wang supported constraint dependency checking and
explanation by using FaCT++ (Fast Classification of
Terminologies and RACER (Renamed ABox and Concept
Expression Reasoner) reasoner tools. Falbo et al. [24]
formalized domain-engineering process using ontology.
Falbo et al. mapped the constraint relations in domain
engineering to the synonymous primitive in set theory,
and used hybrid approach based on pure first-order logic,
and set theory for reasoning.
Dedeban [25] used OWL DL and rule based system to
support constraint dependency checking. Dedban’s me-
thod satisfy constraint dependency checking and expla-
nation used FaCT++ reasoner. Shaofeng and Zhang [26]
formalized the FM with description logic to reason con-
straint rules via description logic.
Transforming FM into Unified Modeling Language
(UML) notations, representing, and documenting vari-
ability in SPL is proposed by different methods in litera-
ture. Usability is the main reward for using UML due to
UML standardization. Clauss [27] suggested Object
Constraint Language (OCL) to satisfy constraint depen-
dency rules. Korherr and List [28] proposed a UML 2
profile to model variability. Korherr’s model used OCL to
satisfy the three levels constraint dependency rules. Ziadi
et al. [29,30] used OCL in the form of meta-model level to
satisfy constraint dependency rules. The works in [31-37]
adopted UML (with different views) as a solution for
modeling variability in SPL. These methods implemented
OCL to satisfy dependency constraint rules. Czarnecki
and Antkiewicz [38] proposed a general template-based
approach for mapping FM. Czarnecki and Pietroszek [39]
used object-constraint language (OCL) to validate con-
straint dependency rules.
The use of constraint programming for dealing with
constraint dependency checking and explanation are sug-
gested in [40-42] where FM is translated into a Constraint
Satisfaction Problem (CSP) for automating FM analysis
with a constraint solver. White et al. [43] proposed a
method for automated diagnosis of product-line configu-
ration errors in FM. White’s method starts with transfer-
ring the rules of the FM and the current invalid configu-
ration into a CSP. Later, the solver derives a labeling of
the diagnostic CSP. Finally, the output of the CSP labeling
is transform into a series of recommendations of features
to select or deselect to turn the invalid configuration into a
valid configuration.
Cao et al. [44] developed algorithm to transfer FM into
data structures. This algorithm generates complete feature
instances from a feature diagram under constraints. Cao
used the Generic Modeling Environment (GME) to de-
velop the algorithm. The Cao’s algorithm satisfies con-
straint dependency checking and explanation operations.
Deursern and Klint [45] proposed a feature description
language to describe FM. Using their system constraint
dependency checking and explanation operations are
satisfied. Pohjalainen [46] described subset of regular
expressions that can be used to express a FM. Pohjalainen
presented a compiler for translating a FODA model to a
deterministic finite state machine with support for im-
plementing model constraints via post-augmentation of
the compiled state machines. This model satisfies con-
straint dependency checking and explanation operation.
Cechticky et al. [47] proposed a feature meta-model
and used an XSL-based mechanism to express complex
composition rules for the features. Cechticky et al. de-
scribed a compiler that can translate the constraint model
expressed as a feature diagram into an XSL program and
checks compliance with the constraints at application
model level. Jarzabek and Zhang [48] described a variant
configuration language that allows to instrument domain
models with variation points and record variant depend-
encies. Implementation based on XML and XMI tech-
nologies was also described. Jarzabek’s method satisfies
constraint dependency checking and explanation.
Janota and Kiniry [46] formalized a FM using HOL. As
the best of our knowledge this is the only one work used
HOL for reasoning FM. This formalization satisfied con-
straint dependency checking and explanation operations.
Lengyel et al. [49] proposed an algorithm (to handle con-
straints in FM) based on graph rewriting based topological
model transformation. Implementation is done based on
OCL semantics. Constraint dependency checking is sat-
isfied based on feature-to-feature level.
Comparing with the literature, our propose method (to
satisfy constraint dependency rules, explanation, correc-
tive explanation, propagation and delete cascade, and filt-
ering) is characterized by an interactive mechanism which
is guide users systematically. In addition to constraint
dependency rules (require and exclude), our validation
rules are validate the commonality (is the feature is
common or not), and the cardinality.
4. Modeling Variability Using First Order
Logic
The most popular models for SPL variability modeling
are FM and Orthogonal Variability Model (OVM).
Therefore, the successful validation notations are those
that can validate both FM and OVM. Roos-Frantz [50]
illustrated the differences between FM and OVM. To
overcome the differences we merge the FM and OVM in
the proposed method (benefiting from their advantages),
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration
Copyright © 2010 SciRes. JSEA
618
e.g. a variation point is defined explicitly (mandatory or
optional) and hierarchical structure is supported. This
modeling is a prerequisite process for using the validation
operations. OVM and FM can easily become very com-
plex for validating a medium size system, i.e., several
thousands of variation points and variants are needed.
max: Identifies the maximum number allowed to be se-
lected of specific variation point, e.g. max (payment_by, 4).
min: Identifies the minimum number allowed to be
selected of specific variation poin, e.g. min payment_
by, 1). The common variant(s) in a variation point is/
are not included in maximum-minimum numbers of
selection.
4.1 Upper Layer Representation (FM-OVM)
common: Describe the commonality of variation point,
e.g. common (item-search, yes). If the variation point is
not common, the second slot in the predicate will become
No, as example, common (member reward, no).
Figure 3 represents the upper layer of our proposed
method. Optional and mandatory constraints are defined
in Figure 3 by original FM notations [3] and constraint
dependency rules are described using OVM notations.
The FM-OVM has three layers. Member reward is a
variation point having a personal discount as a variant. A
personal discount is also a variation point for three vari-
ants. A personal discount is a variant and variation point
at the same time.
4.2.2. Variant
The Following two predicates (from the above five
predicates) are used to describe variants:
type: Define the type of feature (variant), e.g.: type
(register, variant).
common: Describe the commonality of variant, e.g.
common(search name, yes). If the variant is not common,
the second slot in the predicate will become No -as ex-
ample-common (by price, no).
4.2 Lower Layer of the Proposed Method
Variation points, variants, and dependency constraint
rules are described using predicates as a lower layer of
the proposed method: (examples are based on Figure 3.
Terms starting by capital letters represent variables and
terms starting by lower letters represent constants):
4.2.3. Constraint Dependency Rules
The following six predicates are used to describe con-
straint rules:
4.2.1. Variation Point requires_v_v: a variant requires another variant, e.g.
requires_v_v (ecash, ssl).
The following five predicates are used to describe each
variation point: excludes_v_v: a variant excludes another variant, e.g.
excludes_v_v(by price, member view).
type: Define the type of feature; variation point, e.g.:
type (view_type,variationpoint), requires_v_vp: a variant requires variation point, e.g.
requires_v_vp (member_view, member_reword).
variants: Identifies the variant of specific variation
point, e.g.: variant (view_type, not registered).
(1..3)
(0..1)
Requires-v-v
Requires-v-vp
requires-vp-vp
(1..2)
(1..4)
(1..2)
(1..3)
Excludes-vp-vp
Excludes-v-vp
Excludes-v-v
transfer
reg isteredSearch
name
Search
number
By
pric e
By
category
Exchange
reward
Collect
reward
Personal
disc ount
Member reward
Member
view
Public view
Shopping -cart-view
Item -s earc h
notregis tered
Security payment
Credit card
Https
Credit card types
Set Ssl
Cit ibankvisa
Payment by
View-type
Special search
e-cashcash
Excludes -v-vp
DescriptionSimilar
(1..2)
(1..2)
30%20%10%
Eshopping
(1..1)
Figure 3. Representation of e-shopping system using the upper layer (FM-OVM)
An Interactive Method for Validating Stage Configuration 619
excludes_v_vp: a variant excludes variation point, e.g.
excludes_v_vp (notregistered, payment_by).
requires_vp_vp: a variation point requires another
variation point, e.g. requires_vp_vp (item_search, view_
ype).
excludes_vp_vp: a variation point excludes another
variation point, e.g. excludes_vp_vp (security_payment,
credit_card_type).
Table 1 shows the lower layer representation of the
variation point view-type and the variant not registered.
The lower layer models variability in one-to-one map-
ping. The predicate variants emphasize this point.
4.3 Generalization
FM-OVM might compose of many levels (variation point
can contain one or more variation points) for example
form Figure 3: variation point member reward has a
variation point personal discount and variation point
personal discount has a variant 30%. A mathematical
representation of this case is: member reward (personal
discount (30%)). The following facts illustrate the mod-
eling of this case:
type(member_reward,variationpoint)רtype(personal_discoun
t,variation-point)רtype(30%,variant)רvariants(me ber _rew ard
,personal_iscount)רvariants(personal_discount,30%).
The following rule sformationdes this
lation:
(tran rule) conclu
re
׊x, y, z: variants(x, y)רvariants(y, z) variants(x, z).
In the next section, we illustrate how the proposed meth-
od can be used for validating stage-configuration in SPL.
5. Operations for Validating
Stage-Configuration in Software
Product Line
5.1 Validation Rules
To validate the configuration process, the proposed me-
thod triggers rules based on constraint dependencies.
With regard to validation process result, the choice is
added to knowledge-base or rejected, then an explanation
of rejection reason is provided and correction actions are
suggested. When a new variant is selected, new predicate
(select or notselect) would be added to the knowledge-
base and the backtracking mechanism validates the entire
Table 1. Snapshot of the lower layer representation
type(view-type, variationpoint). variants(view-type, registered).
variants(view-type, not registered).common (view-type, yes).
min(view-type, 1). max(view-type, 3). requires_p_p(view-ype,
earch_tem). type(not registered, variant).
common(not registered, no). excludes_v_vp(not registered, payment by).
Table 2. Predicates represent constraint dependency rules in
the proposed method
requires_v_v: Variant requires
variant equire_v_v(x,y)| x,y
{V}; V= variant
The selection of a variant V1
requires the selection of another
variant V2 independent of the
variation points the variants are
associated with. e.g. requires_v
_v (ecash, ssl).
excludes_v_v: Variant excludes
variant exclude_v_v(x,y)| x,y
{V}; V= variant
The selection of a variant V1
excludes the selection of the
related variant V2 independent of
the variation points the variants
are associated with. e.g. ex-
cludes_v_v(By price, member
view).
requires_v_vp: Variant requires
variation point require_v_vp
(x,y)| x,y {V,VP}; V= vari-
ant.Vp=variation point
The selection of a variant V1
requires the consideration of a
variation point VP2. e.g. re-
quires_v_vp (member_view,
member_reward).
excludes_v_vp: Variant ex-
cludes variation point ex-
cludes_v_vp (x,y) |x,y {V,
VP}; V = variant. VP=variation
point
The selection of a variant V1
excludes the consideration of a
variation point VP2. e.g. ex-
cludes_v_vp (not registered,
payment_by).
requires_vp_vp: Variation
point requires variation point
require_ vp_ vp (x,y) | x,y
{VP}; VP= variation point
A variation point requires the
consideration of another varia-
tion point in order to be realized.
e.g. requires_vp_vp (item_
search, view_type).
excludes_vp_vp Variation
point excludes variation point
excludes_vp_vp (x,y)|x,y
{VP}; VP= var- iation point
The consideration of a variation
point excludes the consideration
of another variation point. e.g.
excludes_vp_vp (security_
payment, credit_card_type).
knowledge-base. At the end of the configuration process,
select and not notselect predicates represent the product.
Table 3 shows the abstract representation of the main
rules.
Rule 1:
For all variant x and variant y; if x requires y and x is
selected, then y is selected.
Rule 2:
For all variant x and variant y; if x excludes y and x is
selected, then y is assigned by notselect predicate.
Rule 3:
For all variant x and variation point y; if x requires y
and x is selected, then y is selected. This rule is applica-
e as well if the variationoint is selected first: bl p
׊ x, y: type(x, variant) ר type(y, variationpoint) ר re-
quire_v_vp(x, y) ר select(y) select(x)
For all variant x and variation point y; if x requires y
and y is selected, then x is selected.
Rule 4:
For all variant x and variation point y; if x excludes y
and x is selected, then y assigned by notselected predi-
ate. c
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration
620
Ta le 3. Abstract presentation of the mainles
bre ru
x, y: type(x, variant) type(y, variant) require_v_v(x, y) רselect(x) select(y) 1 ׊ר ר
2 ׊ ר(x
x, y: type(x, variant) type(y, variationpoint) require_v_vp(x, y) ר lect(x) lect(y)
x, y: type(x, variant) type(y, variant) ר exclude_v_v(x ,y) ר select) notselect(y)
3 ׊ ררse se
x, y: type(x, variant) ר type( variationpoint) ר exclude_v_vp(x, y) ר select(x) noect(y) 4 ׊y, tsel
x, y: type(x, variationpoint) type(y, variationpoint) require_vp_vp(x, y) רselect(x) select(y) 5 ׊רר
x, y: type(x, variationpoint) ר type(y, variationpoint) ר exclude_vp_vp(x, y select(x) notselect(y) 6 ׊) ר
xy: type(x, variant) type(y, variationpoint) select(x) ר variants(y, x) select(y) 7 ׊, רר
׊y:type(x, variant) pe(y, variationpoint) select(y) ר viants(y, x) ect(x) 8 ׌x ר tyר ar sel
x, y: type(x, variant) type(y, variationpoint) notselect(y) רvarits(y, x) notselect(x) 9 ׊רר an
x, y: type(x, variant) ר typ(y, variationpoin common(x,yes) ר variants(y, x) ר select(y) select(x) 10 ׊et) ר
y: type(y, variationpo ר common(y,yes) elect(y) 11 ׊int) s
x, y: type(x, variant) type(y, variationpoint) variants(y, x) select(x) sum(y,(x)) max(y,z) 12 ׊ררר ฺ
׊ x, y: type(x, variant) ר type(y, variationpoint) רvariants(y, x) רselect(x) sum(y,(x)) min(y,z) 13
Th in
x, y: type(x, variant) type(y, variationpoint) ex-
clue_v_vp(x, y) select( notselect(x)
is rule is applicable as well, if the variation pot is
selected first:
׊ רר
dרy)
׊ x, y: type(x, variant) ר type(y, variationpoint) ר ex-
clude_v_vp(x, y) ר select(y) notselect(x)
For all variant x and variation point y; if x excludes y
and y selected, then x is assigned by notselect predicate.
Rule 5:
For all variation point x and variation point y, if x re-
quires y and x selected, then y is selected.
Rule 6:
For all variation point x and variation point y, if x ex-
cludes y and x is selected, then y is assigned by notselect
predicate.
Rule 7:
For all variant x and variation point y, where x belongs
to y and x is selected, that means y is selected.
This rule determines the selection of variation point if
one of its variants was selected.
Rule 8:
For all variation point y there exists of variant x, if y
selected and x belongs to y then x is selected.
This rule states that if a variation point was selected, then
there is variant(s) belong to this variation point must be
selected.
Rule 9:
For all variant x and variation point y; where x belongs
to y and y defined by predicate notselect(y), then x is as-
signed by notselect predicate. This rule states that if a
variation point was excluded, then none of its variants
must select.
Rule 10:
For all variant x and variation point y; where x is a
common, x belongs to y and y is selected, then x is se-
lected. This rule states that if a variant is common and its
variation point selected then it is selected.
Rule 11:
For all variation point y; if y is common, then y is se-
lected. This rule states that if a variation point is common
then it is selected in any product.
Rule 12:
For all variant x and variation point y; where x belongs
to y and x is selected, then the summation of x must not
be less than the maximum number allowed to be selected
from y.
Rule 13:
For all variant x and variation point y; where x belongs
to y and x is selected, then the summation of x must not
be greater than the minimum number allowed to be se-
-lected from y.
The notselect predicate prevents feature to be selected,
e.g. rule 9.
Rules 12 and 13 validate the number of variants’ se-
lection considering the maximum and minimum condi-
tions in variation point definition (cardinality definition).
The predicate sum(y, (x)) returns the summation number
of selected variants belongs to variation point y. From
ese rules, the full common variant (variant included in
y product) can e efined as:
th
anb d
׊x,y:type(x,variant)רtype(y,variationpoint)רvariants(y,x)
רcommon(y,yes)רcommon(x,yes) full_common(x)
A full common variant is a common variant belongs to
common variation point. A common variation point in-
cluded in any product (rule 11), a common variant be-
longs to selected variation point is selected (rule 10).
The proposed rules (to validate the configuration) are
based on two layers. The upper layer is a variation point
layer where each rule applied to variation point reflect
into all its variants, e.g. if variant excludes variation
point that means this variant excludes all the variants that
belong to this variation point, rule (9). The lower layer is
a variant layer where each rule is applied for specific
variant.
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration621
5.2 Explanation and Corrective Explanation
This operation is defined (in this paper) for highlighting
the sources of errors within configuration process.
The general pattern that represents failure to select one
feature in the configuration process is:
Feature A excludes Feature B and Feature A is se-
lected then Feature B failed to select.
In the proposed method, there are two possibilities for
the feature: variation point or variant and three possibili-
ties for the exclusion: variant excludes variant, variant
excludes variation point or variation point excludes va-
riation point. Definition 1 describes these possibilities in
the form of rules.
Definition 1:
Selection of variant n, select (n), fails due to selection
variant x, select(x, in threof )e cases:
׊x,y,n:type(x,variant)רselect(x)רtype(y,variationpoint) רvaria-
nts(y,x)רtype (n,v ari ant )רexcludes_v_vp(n,y) notselect(n).
If the variant x is selected, and it belongs to the varia-
tion point y, this means y is selected (rule 7), and the
variant n excludes the variation point y, this means n as-
signed by notselect predicate (rule 4 is applied also if the
riation point is seleed). vact
׊x,y,z,n:type(x,variant)רselect(x)רtype(y,variationpoint)רvaria
nts(y,x)רvariants(z,n) excludes_vp_vp(y,z) notselect(n).
If the variant x is selected and x belongs to the varia-
tion point y, that means y is selected (rule 7), and if the
variation point y excludes the variation point z, this
means z is assigned by notselect predicate (rule 6), and
the variant n belongs to variation point z, this means n is
signed by notselecpredicate (rule 9). as t
׊x,n: type(x,variant)רselect(x)רtype(n,variant)רexcludes_v_v
(x,n)notselect(n).
If the variant x is selected, and x excludes the variant n,
which means n is assigned by notselect predicate (rule 2).
In addition to defining the source of error, these rules can
be used to prevent the errors. The predicate notselect(n)
validate users by preventing selection.
Example 1
Suppose the user selects memebr_view before entering
a new selection and request to select by price, the system
rejects the choice and directs the user to deselect mem-
ber_view first. Table 4 describes example 1. This exam-
ple represents rule (3). The example illustrates how the
proposed method guides users to solve the rejection rea-
son. In addition to that, it can be used to prevent rejection
reasons; example 2 explains this.
Example 2
The user asks to select the variant http s , the system
accepts the choice and adds notselect(credit_card_types)
to the knowledge-base to validate future selections. Ta-
ble 5 describes example 2. Selection of the variant Https
Table 4. Example 1
? select (by price).
You have to deselect memebr_view
Table 5. Example 2
? select (Https).
Yes
notselect (credit_card_types) added to knowledge base.
from security_payment variation point leads to the selec-
tion of security_payment (rule 7), and secu rity_payment
excludes credit_card_types variation point, which means
credit_card_types must not be selected (rule 6). The
predicate notselect(credit_card_types) prevents the se-
lection of its variants according to rule 9.
The proposed method guides user step by step (in each
choice), if the user’s choice is invalid immediately reject
it and suggest the correct actions (corrective explanation),
see example 1. Moreover, notselect predicate can be as-
signed to some features according to user’s selection, see
example 2. The notselect predicate prevents user from
future errors.
5.3 Filtering
Filtering operation guides the user to develop his product
based on predefined conditions.
Example 3
Suppose price was defined as an extra-functional fea-
ture to security_payment variation point in Figure 3. As
a result three new predicates (price(https,100), price (ssl,
200), and price(set,350)) were added. We want to ask
about the feature with price greater than 100 and less
than 250 (price(X, Y), Y > 100, Y < 250), the system
triggers the variant ssl with price 200. Table 6 describes
example 3.
5.4 Propagation and Delete-Cascade
In this operation, some features are automatically se-
lected (or deselected).
The general pattern that represents selection of feature
based on selection of another feature is:
Feature A requires feature B and feature A is selected
then feature B is auto-selected.
In the proposed method, there are two possibilities for
the feature: variation point or variant and three possibili-
ties for the requiring: variant requires variant, variant
requires variation point or variation point requires varia-
tion point. Definition 2 describes these possibilities in the
form of rules.
Definition 2:
Selection of variant n, select(n), is propagated fromse-
letion of variant x, select(x), in three cases: c
i.׊x,y,z,n:type(x,variant)רvariants(y,x)רselect(x)רrequires_vp_
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration
622
Table 6. Example 3
? price(X, Y), Y > 100, Y< 250.
X = ssl
Y = 200
vp(y,z)רtype(n,variant)רvariants(z,n)רcommon(n,yes)
autoselect(n).
If x is a variant and x belongs to the variation point y
and x is selected, that means y is selected (rule 7), and the
variation point y requires a variation point z, that means z
is selected also (rule 5), and the variant n belongs to the
variation point z and the variant n is common that means
the variant n is selected (rule 10).
ii.׊x,n:type(x,variant)רtype(n,variant)רselect(x)רrequires_v_v(
x,n) autoselect(n).
If the variant x is selected and it requires the variant n,
that means the variant n is selected, (rule 1). The selec-
tion of variant n propagated from the selection of variant x.
iii.׊x,z,n: type (x,v ari ant )רselect(x)רtype(z,variationpoint)רrequ
ires_v_vp(x,z)רtype(n,variant)רvariants(z,n)רcommon(n,yes)
autoselect(n).
If the variant x is selected and it requires the variation
point z that means the variation point z is selected (rule 3),
and the variant n is common and belongs to the variation
point z that means the variant n is selected (rule 10). The
selection of variant n propagated from the selection of
variant x.
Example 4
Suppose the user enters this choice, select(register),
the system answered yes (acceptance of user selection) ,
user announced by selection of the variant search_name,
as propagated from selection of the variant register. This
example illustrates case 1: view_type variation point re-
quires item_search variation point and search _name is
common variant belongs to the variation point item_
search. The direct selection of variant register makes
view_ type variation point selected (rule 7), and the se-
lection of view_type variation point makes the item_
search variation point selected (rule 5), then the common
variant search_name ( belongs to item_search variation
point) is selected (rule 10). The main result of this exam-
ple is the additions of two new facts select (register) and
autoselect (search_name) to the knowledge base. Table
7 illustrates example one.
Delete-Cascade Operation:
This operation validates configuration process in the
execution time. The following scenario describes the
problem: If the variant x is selected in time N and x re-
quires two variants y and k, then the solution (at time N)
= {x, y, k}. In time (N + 1), the variant m is selected, and
m excludes x, then x is remove from the solution. The
solution at time (N + 1) = {m, y, k}. The presence of the
variants y and k is not a real selection. Rule 2 (Subsection
5.1) assign notselect predicate (to the excluded variant)
as a result from the exclusion process. The following
rules added to the knowledge base to implement delete-
cascade.
i.׊x,y:type(x,variant)רtype(y,variant)רrequires_v_v(y,x)רautos
elect(x) רselect(y) ר notselect(y) notselect(x).
ii.׊x,y:type(x,variant)רtype(y,variant) רrequires_v_v(y,x)רauto
select(x) רautoselect(y) ר notselect(y) notselect(x).
For all variants x, and y; if the variant y is requires x, y
is selected or auto selected, x is auto selected and y as-
signed by notselect predicated, that means y is excluded
within the configuration process, and x was selected ac-
cording to selection of y (propagation) then the presence
of x after exclusion of y is not true. The output for this
operation is the assigning of the variant x with notselect
predicate. This assigning permits backtracking mecha-
nism to perform delete-cascade operation to verify the
products.
5.5 Cardinality Test
Cardinality test operation validates the cardinality of
each selected variation point. At the begging of this op-
eration, all auto-selected variants must be assigned by
select predicate, which constructs all selected variants in
the configuration process assign by select predicate.
The following rule assiges select predicate to all auto-
lected variantses.
׊x: autoselect(x) select(x).
The following rule converts all selected variants be-
longing to the variation point y to a list, i.e. the list con-
ins only variants belongg to one variation point: tain
׊y,x:variants(y,x),select(x) list(y,[x]).
The following rules test the maximum and minimum
rdinality for each selected variation pointca.
׊y,x,len,m: length(list(y,[x]),len) ר max(y,m) ר len > m
ror. er
׊y,x,len,m: length(list(y,[x]),len) ר min(y,m) ר len < m
error.
In the above two rules, the length of a list compares
against cardinality of its variation point and alert mes-
sages triggers out in case of error.
6. Implementation and Scalability Testing
In this section, technical details are present and discuss.
Table 8 shows an interactive configuration program. All
programs are implemented based on prolog SWI soft-
ware.
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration623
The program in Table 8 guides user step by step to com-
plete his selections. First, user enters his choice (the
variant X). Later, two subroutines validate the selection.
The first subroutine (interactive_validate_require) works
to figure out all variants required by the selected variant
X based on the three constraints: variant requires variant,
variant requires variation point, and variation point re-
quires variation point. The second subroutine (interacttive_
validate_exclude) works to figure out all variants excluded
by the selected variant X based on the three constraints:
variant excludes variant, variant excludes variation point,
and variation point excludes variation point.
Table 9 shows a program to generate the maximum
product. A maximum product defined as a product contains
all variant in SPL considering the constraint dependency
rules [42].
The program to generate the maximum product (Table
9) contains five subroutines: sel_common, sel_variant,
validate_exclude, del_cascade, and make_product. In the
following, each subroutine is discussed:
sel_common: this subroutine selects the common vari-
ants, i.e., common variant belonging to common varia-
tion point.
sel_variant: select all the variants (that are not se-
lected before as common variants) are the mission of this
subroutine.
validate_exclude: This subroutine validates exclude
constraint. In subroutine, all variants are compared
against each other. The excluded variant is assigned by
notselect predicate.
del_cascade: this subroutine implements the de-
lete-cascade operation that is defined in Subsection 5.4 in
this paper.
Table 7. Example 4
? select (view_type.register).
Yes
You selected also…. search_name
Table 8. An interactive configuration program
sel:-
read(X),
interactive_validate_exclude(X),
interactive_validate_require(X).
interactive_validate_require(X):-
type(N,variant), X \==N,
((requires_v_v(X,N), write(' you have to de select '), write(N),nl);
( variants(M,N), requires_v_vp(X,M), common(N,yes),write(' you
have to select '), write(N),nl);
(variants(Y,X), variants(M,N), requires_vp_vp(Y,M), common
(N,yes), write (' you have to select '), write(N).
interactive_validate_exclude(X):-
type(N,variant), X \==N,
((excludes_v_v(X,N), write(' you have to de select '), write(N),nl);
( variants(M,N), excludes_v_vp(X,M),write(' you have to deselect '),
write(N),nl) ;
(variants(Y,X), variants(M,N), excludes_vp_vp(Y,M),write(' you
have to deselect '),write(N).
Table 9. A program to generate the maximum product
max_product:-
sel_common,
sel_variant,
validate_exclude,
del_cascade,
make_product.
sel_common:-
variants(Y,X),
common(Y,yes),
common(X,yes),
write('select'),write('('), write(X), write(').').
sel_variant:-
type(X, variant),
not(select(X)),
write('select'),write('('), write(X), write(').').
validate_exclude:-
select(N), select(X), X \==N,
((excludes_v_v(X,N), write('notselect'),write('('), write(X), write (').'), nl);
(variants(M,N),excludes_v_vp(X,M),write('notselect'),write('('),
write(X), write(').'),nl) ;
(variants(Y,X), variants(M,N), excludes_vp_vp (Y,M),write ('notse-
lect'), write('('), write(X), write(').'),nl)).
del_cascade:-
select(N),
requires_v_v(M,N),
notselect(M), % that means M was selected and then deleted
write('notselect'),write('('), write(N), write(').').
make_product:-
write('S/wproduct.'),
select(X),not(notselect(X)),
write(X),write(', ').
make_product: This subroutine print out the maximum
product. The maximum product is represented by all
variant assigned by select predicate and not assign by
notselect predicate.
6.1 Scalability Test
Scalability is a key factor in measuring the applicability
of the techniques dealing with variability modeling in
SPL [51]. The output time is a measurement key for sca-
lability. A system consider scalable for specific problem
if it can solve this problem in a reasonable time. In the
following, we describe the method of our experiments:
Generate the domain engineering as a data set: Do-
main engineering is generated in terms of predicates
(variation points, and variants). We generated four sets
containing 1000, 1500, 3000, and 50000 variants. White
et al. [43] defines 5000 features as a suitable number to
mimic industrial SPL. Variants are defined as numbers
represented in sequential order, as example: In the first
set (1000 variants) the variants are: 1, 2, 3,…, 1000. In
the last set (5000 variants) the variants are: 1, 2, 3, …,
5000. The number of variation point in each set is equal
to number of variant divided by five, which means each
variation point has five variants. As example in the first
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration
624
set (1000 variants) number of variation points equal 1000.
Each variation point defined as sequence number having
the term vp as postfix, e.g. vp12.
Define the assumptions: We have three assumptions:
1) each variation point and variant has a unique name, 2)
each variation point is orthogonal, and 3) all variation
points have the same number of variants.
Set the parameters: The main parameters are the num-
ber of variants and the number of variation points. The
remaining eight parameters (common variants, common
variation points, variant requires variant, variant excludes
variant, variation point requires variation point, variation
point excludes variation points, variant requires variation
point, and variant excludes variation point) are defined as
a percentage. The number of the parameters related to
variant (such as; common variant, variant requires vari-
ant, variant excludes variant, variant requires variation
point, and variant excludes variation point) is defined as
a percentage of the number of the variants. The number
of parameters related to variation point (such as; varia-
tion point requires variation point) is defined as a per-
centage of the number of variation points. We found that
the maximum ratio of constraint dependency rules used
in literature is 25% [51]. Therefore, we defined the ratio
of the parameters in our experiments as 25%. Table 10
represents snapshots of an experiment’s dataset, i.e., the
domain engineering in our experiments.
Calculate the output: we tested two programs for each
program, we made thirty experiments, and calculated the
execution time as average. The experiments were done
with the range (1000-50000) variant, and percentage
range of 25%.
Experimental platform:
The experiments were performed on a computer with
an Intel centrino Duo 1.73GHZ CPU, 2 gigabytes of
memory, Windows XP home edition. In the following
parts, the results are presented. The results show the exe-
cution time compared with number of variants, number
of variation points, and the parameters.
6.1.1. Test Scalability of a Program to Validate
Product in Interactive Mode
In this subsection, we test the scalability of interactive
configuration program (Table 8). Instead of read the
user’s input one by one, we define additional parameter,
the predicate select(c), where c is random variant. This
predicate simulates the user’s selection. Number of select
predicate (defined as a percentage of number of variant)
is added to the domain engineering (dataset) for each ex-
periment. Table 11 contains a program to validate the
product in interactive mode. This program is modifica-
tion of the program in Table 8. This modification allows
us to test the scalability.
Table 12 shows the result of scalability test for a pro-
gram to validate product in interactive mode.
6.1.2. Test Scalability of a Program to Define the
Maximum Product
In this subsection, the scalability test for a program to
define the maximum product is discussed. Table 13
shows the results.
In [51] the execution time for 200-300 features is 20 min
after applying atomic sets to enhance the scalability. With
compare to the literature, our proposed method is scalable.
7. Conclusions and Future Work
In this paper, a method to validate SPL in stage-con-
Table 10. Snapshot of experiment’s dataset
type(vp1,variationpoint).type(1,variant).
variants(vp1,1).
common(570,yes).
Common(vp123,yes).
requires_v_v(7552,2517).
requires_vp_vp(vp1572,vp1011).
excludes_vp_vp(vp759,vp134).
excludes_v_v(219,2740).
requires_v_vp(3067,vp46).
excludes_v_vp(5654,vp1673).
Table 11. A program to validate product in interactive mode
sel:-
interactive_validate_exclude,
interactive_validate_require.
interactive_validate_exclude:-
select(N), select(X), X \==N,
((excludes_v_v(X,N), write(' you have to de select '), write(N),nl);
( variants(M,N), excludes_v_vp(X,M),write(' you have to deselect '),
write(N),nl) ;
(variants(Y,X), variants(M,N), excludes_vp_vp(Y,M),write(' you
have to deselect '), write (N), nl)).
interactive_validate_require:-
type(N,variant), select(X), not(select(N)),
((requires_v_v(X,N), write(' you have to de select '), write(N),nl);
( variants(M,N), requires_v_vp(X,M), common (N,yes), write (' you
have to select '), write(N),nl);
(variants(Y,X), variants(M,N), requires_vp_vp(Y,M), com- mon
(N,yes), write (' you have to select '), write(N),nl)).
Table 12. Results of scalability test for a program to vali-
date product in interactive mode
Number of variants Time (Min)
1000 0.4
1500 1.6
3000 12.8
5000 59.6
Table 13. Results of scalability test for a program to gener-
ate the maximum product
Number of variants Time (Min)
1000 1.98
1500 6.85
3000 54
5000 251
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration625
figuration process is presented. Firstly, modeling vari-
ability using FOL predicates was proposed. By this mod-
eling, we can get formalized variability specifications,
support and validate selection process within variability
more precisely. The proposed method provides auto-
mated consistency checking among constraints (during
configuration process) based on three levels (i.e. variant-
to-variant, variant-to-variation point, and variation point-
to-variation point). The proposed method guides users
interactively step-by-step (in each choice). If the user’s
choice is invalid, immediately is rejected and correction
actions are suggested (corrective explanation). Moreover,
the proposed method can be used to correct future selec-
tions using notselect predicate (rule 9). All variants se-
lected directly (by user) assigned by select predicate. All
variants selected using propagation process assigned by
autoselect predicate. The delete-cascade operation vali-
dates auto-select variants. Before cardinality test, all
variants in the configured product converted to assign by
select predicate. Finally, cardinality test validate the
number of selection of each variation point.
Many methods are applying empirical results to test
scalability by generating random FMs [43,52-54]. Com-
paring with literature, our test range (1000–5000 variants)
is sufficient to test scalability. The proposed method is
limited to work only in certain environment, i.e. where
constraint dependency rules are well known in all cases.
We plan to complete the proposed method by defining
operations for validating SPL in static mode. In addition,
we plan to implement our method in real life case from
industry.
REFERENCES
[1] J. Bosch, “Maturity and Evolution in Software Product
Lines,” Proceedings of the Second International Software
Product Line Conference, Springer LNCS, San Diego, Vol.
2379, 19-22 August 2002, pp. 257-271.
[2] P. Clements and L. Northrop, “Software Product Lines:
Practices and Patterns,” Addison Wesley, Boston, 2001.
[3] K. Kang, J. Hess, W. Novak and S. Peterson, “Feature
Oriented Domain Analysis (FODA) Feasibility Study,”
Technical Report No. CMU/SEI-90-TR-21, Software En-
gineering Institute, Carnegie Mellon University, 1990.
[4] K. Kang, J. Lee and P. Donohoe, “Feature-Oriented Prod-
uct Line Engineering, IEEE Software, Vol. 19, No. 4,
2002, pp. 58-65.
[5] K. Pohl, G. Böckle and F. van der Linden, “Software
Product Line Engineering Foundations Principles and
Techniques,” Springer, Verlag Heidelberg Germany,
2005.
[6] D. Benavides, A. Ruiz-Cort´es, D. Batory and P. Heymans,
First International Workshop on Analyses of Software
Product Lines (ASPL’08), Limerick, Ireland, 2008.
[7] D. Benavides, A. Metzger and U. Eisenecker, “Third
International Workshop on Variability Modelling of Soft-
ware-intensive Systems,” ICB-Research Report No. 29,
University of Duisburg Essen, Duisburg, 2009.
[8] H. Wang, H. Li, J. Sun, H. Zhang and J. Pan, “Verifying
Feature Models Using OWL,” Journal of Web Semantics:
Science, Services and Agents on the World Wide Web, Vol.
5, No. 2, 2007, pp. 117-129.
[9] D. Batory, D. Benavides and A. Ruiz-Cortés, “Automated
Analyses of Feature Models: Challenges Ahead,” Com-
munications of the ACM (Special Section on Software
Product Lines), 2006.
[10] K. Czarnecki and U. Eisenecker, “Generative Program-
ming: Methds, Tools, and Applications,” Addison-Wesley,
Boston, 2002.
[11] T. Massen and H. Litcher, “Determining the Variation
Degree of Feature Models,” Software Product Lines Con-
ference, LNCS 3714, Rennes, 2005, pp. 82-88.
[12] T. Asikainen, T. Männistö and T. Soininen, “Using a
Configurator for Modelling and Configuring Software
Product Lines Based on Feature Models,” Proceedings of
the Workshop on Software Variability Management for
Product Derivation, Software Product Line Conference
(SPLC3), Boston, 2004.
[13] K. Czarnecki, S. Helsen and U. Eisenecker, “Staged Con-
figuration Using Feature Models,” Proceedings of Third
International Conference of Software Product Lines
SPLC2004, Boston, 2004.
[14] H. Meyer and H. Lopez, “Technology Strategy in a Soft-
ware Products Company, Product Innovation Manage-
ment,” Blackwell Publishing, Vol. 12, No. 4, 1995, pp.
294-306.
[15] T. Asikainen, T. Mnnistand and T. Soininen, “Represent-
ing Feature Models of Software Product Families Using a
Configuration Ontology,” Proceedings of the General
European Conference on Artificial Intelligence (ECAI)
Workshop on Configuration, Berlin, 2004.
[16] M. Schlick and A. Hein, “Knowledge Engineering in
Software Product Lines,” Proceedings of the 14th Euro-
pean Conference on Artificial Intelligent Workshop on
Knowledge-Based Systems for Model-Based Engineering,
Berlin, 2000.
[17] L. Hotez and T. Krebs, “Supporting the Product Deriva-
tion Process with a Knowledge Base Approach,” Pro-
ceedings of the 25th International Conference on Software
Engineering ICSE2003, Oregon, 2003.
[18] L. Hotez and T. Krebs, “A Knowledge Based Product
Derivation Process and Some Idea How to Integrate Prod-
uct Development,” Proceedings of the Software Variabil-
ity Management Workshop, Groningen, The Netherlands,
2003.
[19] M. Mannion, “Using First-Order Logic for Product Line
Model Validation,” Proceedings of the Second Software
Product Line Conference SPLC2, San Diego, 2002.
[20] W. Zhang, H. Zhao and H. Mei, “A Propositional Logic-
Based Method for Verification of Feature Models,” The
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration
626
6th International Conference on Formal Engineering
Methods ICFEM04, LNCS 3308, 2004, pp. 115-130.
[21] D. Batory, “Feature Models, Grammars, and Propositional
Formulas,” Proceedings of the 9th International Software
Product Lines Conference SPLC05, Rennes France, 2005.
[22] J. Sun and H. Zhang, “Formal Semantics and Verification
for Feature Modeling,” Proceedings of the 10th IEEE In-
ternational Conference on Engineering of Complex Com-
puter Systems (ICECCS05), Shanghai, 2005.
[23] H. Wang, H. Li, J. Sun, H. Zhang and J. Pan, “A Semantic
Web Approach to Feature Modeling and Verification,”
Proceedings of Workshop on Semantic Web Enabled
Software Engineering (SWESE’05), Galway, 2005.
[24] R. Falbo, G. Guizzardi and K. Duarte, “An Ontological
Approach to Domain Engineering,” Proceedings of 14th
International Conference on Software Engineering and
Knowledge Engineering, Ischia, 2002.
[25] V. Dedeban, “Ontology-Driven and Rules-Based System
for Management and Pricing of Family of Product,”
Master Thesis, Norwegian University of Science and
Technology Department of Computer and Information
Science, Norway, 2007.
[26] F. Shaofeng and N. Zhang, “Feature Model Based on
Description Logics,” Proceedings of 10th International
Conference on Knowledge-Based and Intelligent Infor-
mation and Engineering Systems KES2006, Springer-
Verlag Berlin Heidelberg, 2006, pp. 1144-1151.
[27] M. Clauss, “Modeling Variability with UML,” GCSE 2000
-Young Researchers Workshop, 3rd GCSE, Erfurt, 2001.
[28] B. Korherr and B. List, “A UML 2 Profile for Variability
Models and their Dependency to Business Processes,”
18th International Workshop on Database and Expert
Systems Applications, IEEE, Regensburg, 2007.
[29] T. Ziadi, J. Jezequel and F. Fondement, “Product Line
Derivation with UML,” Software Variability Management
Workshop, Groningen, Netherlands, 2003, pp. 94-102.
[30] T. Ziadi and J. Jézéquel, “Product Line Engineering with
the UML: Deriving Products,” Chapter in Software Prod-
uct Lines, Springer, 2006, pp. 557-586.
[31] E. Oliveira, I. Gimenes, E. Huzita and J. Maldonado, “A
Variability Management Process for Software Product
Lines,” The 2005 Conference of the Centre for Advanced
Studies on Collaborative Research, IBM Centre for Ad-
vanced Studies Conference, Toranto, Ontario, 2005, pp.
225-241.
[32] S. Robak, B. Franczyk and K. Politowicz, “Extending the
UML for Modelling Variability for System Families,” In-
ternational Journal of Applied Mathematics and Computer
Science, Vol.12, No. 2, 2002, pp. 285-298.
[33] A. Schnieders, “Modeling and Implementing Variability in
State Machine Based Process Family Architectures for
Automotive Systems,” The 3rd International Workshop on
Software Engineering for Automotive Systems ICSE06,
Shanghai, 2006.
[34] H. Gomaa and E. Shin, “Automated Software Product
Line Engineering and Product Derivation,” The 40th An-
nual Hawaii International Conference on System Sciences,
Big Island, Hawaii, 2007.
[35] I. Philippow, M. Riebisch and K. Boell, “The Hyper/UML
Approach for Feature Based Software Design,” The 4th
AOSD Modeling with UML Workshop Collocated 6th In-
ternational Conference on the Unified Modeling Language
UML, San Francisco, 2003.
[36] M. Riebisch, K. B¨ollert, D. Streitferdt and I. Philippow,
“Extending Feature Diagrams with UML Multiplicities,
6th World Conference on Integrated Design & Process
Technology (IDPT2002), California, 2002.
[37] D. Streitferdt, M. Riebisch and I. Philippow, “Details of
Formalized Relations in Feature Models Using OCL,”
10th IEEE International Conference on Engineering of
Computer–Based Systems (ECBS 2003), Huntsville, IEEE
Computer Society, 2003, pp. 45-54.
[38] K. Czarnecki and M. Antkiewicz, “Mapping Features to
Models: A Template Approach Based on Superimposed
Variants, Proceedings of the 4th International Conference
on Generative Programming and Component Engineering
GPCE’05, Tallinn, Estonia, 2005.
[39] K. Czarnecki and K. Pietroszek, “Verifying Feature-Based
Model Templates against Well-Formedness OCL Con-
straints,” Proceedings of the 5th International Conference
on Generative Programming and Component Engineering
GPCE’06, Oregon, 2006.
[40] D. Benavides, A. Ruiz-Cort´es and P. Trinidad, “Auto-
mated Reasoning on Feature Models,” 17th International
Conference (CAiSE05), Porto, 2005, pp. 491-503.
[41] D. Benavides, S. Segura, P. Trinidad and A. Ruiz-Cort´es,
“Using Java CSP Solvers in the Automated Analyses of
Feature Models,” Post-Proceedings of the Summer School
on Generative and Transformational Techniques in Soft-
ware Engineering (GTTSE), LNCS 4143, 2006.
[42] D. Benavides, “On the Automated Analysis of Software
Product Line Using Feature Models, A Framework for
Developing Automated Tool Support,” Ph.D. Dissertation,
University of Sevilla, Sevilla, 2007.
[43] J. White, D. Schmidt, D. Benvides, P. Trinidad and A.
Ruiz-Cortes, “Automated Diagnosis of Product Line Con-
figuration Errors on Feature Models,” Proceedings of 12th
International Conference of Software Product Line, Lim-
erick Irland, 2008.
[44] F. Cao, B. Bryant and C. Carol, “Automating Fea-
ture-Oriented Domain Analysis,” Proceedings of Interna-
tional Conference on Software Engineering Research and
Practice (SERP’03), 2003, pp. 944-949.
[45] A. Deursen and P. Klint, “Domain-Specific Language
Design Requires Feature Descriptions,” Journal of Com-
puting and Information Technology, Vol. 10, No. 1, 2002,
pp. 1-17.
[46] M. Janota and J. Kiniry, “Reasoning about Feature Models
in Higher-Order Logic,” Proceedings of the 11th Interna-
tional Software Product Line Conference (SPLC07),
Kyoto, 2007.
[47] V. Cechticky, A. Pasetti, O. Rohlik and W. Schaufelber-
ger, “XML-Based Feature Modeling,” Proceedings of the
Copyright © 2010 SciRes. JSEA
An Interactive Method for Validating Stage Configuration
Copyright © 2010 SciRes. JSEA
627
8th International Conference on Software Reuse (ICSR-8),
Madrid, 2004.
[48] S. Jarzabek and H. Zhang, “XML-Based Method and Tool
for Handling Variant Requirements in Domain Models,”
5th IEEE International Symposium on Requirements En-
gineering RE01, IEEE Press, Toronto, 2001. pp. 116-173.
[49] L. Lengyel, T. Levendovszky and H. Charaf, “Constraint
Handling in Feature Models,” Proceedings of 5th Inter-
national Symposium of Hungarian Researchers on Com-
putational Intelligence, Budapest, 2004.
[50] F. Roos-Frantz, “A Preliminary Comparison of Formal
Properties on Orthogonal Variability Model and Feature
Models,” Proceedings of the 3rd International Workshop
on Variability Modeling of Software-Intensive Systems,
Sevilla, 2009.
[51] S. Segura, “Automated Analysis of Feature Models Using
Atomic Sets,” The 1st International Workshop on Analy-
ses of Software Product Lines (ASPL’08), Collocated with
SPLC08, Limerick Ireland, 12-15 September 2008.
[52] P. Trinidad, D. Benavides, A. Dura´n, A. Ruiz-Cortes and
M. Toro, “Automated Error Analysis for the Agilization of
Feature Modeling,” Systems and Software, Vol. 81, No. 6,
2008, pp. 883-896.
[53] P. Trinidad, D. Benavides, A. Ruiz-Cort´es, S. Segura and
A. Jimenez, “FAMA Framework,” 12th Software Product
Lines Conference (SPLC), Limerick, 2008.
[54] H. Yan, W. Zhang, H. Zhao and H. Mei, “An Optimization
Strategy to Feature Models’ Verification by Eliminating
Verification-Irrelevant Features and Constraints,” Book
Chapter in Formal Foundations of Reuse and Domain
Engineering, Springer Berlin/Heidelberg, 2007, pp. 65-75.