Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
net/publication/262962369
CITATIONS READS
73 978
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Andreas Metzger on 12 June 2014.
Permission to make digital or hard copies of part or all of this work for
personal or classroom use is granted without fee provided that copies are 1
As in most of the SPLE literature, we use the terms application
not made or distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. Copyrights for third-
and (software-intensive) system synonymously.
2
party components of this work must be honored. For all other uses, http://splc.net/fame.html
contact the Owner/Author. Copyright is held by the owner/author(s). 3
http://www.sei.cmu.edu/productlines/
FOSE '14, May 31 - June 07 2014, Hyderabad, India 4
Our paper classification is available online at
ACM 978-1-4503-2865-4/14/05. http://www.sse.uni-due.de/en/fose14/
http://dx.doi.org/10.1145/2593882.2593888
Product Domain Engineering
Management Life-cycle
Domain Engineering
Domain Domain
Domain Domain
Requirements Quality
Design Realization
Engineering Assurance
Domain Artefact Definition
Trace Links
Product Line Platform (Domain Artifacts)
Application Application
Application Application Application Engineering
Requirements Quality Life-cycle
Design Realization
Engineering Assurance
Application Derivation
Application n Artifacts
Application 1 Artifacts
To structure the technical SPLE research achievements and chal- artifacts (e.g., component models, class diagrams) and test arti-
lenges, we use a standardized framework for software product line facts (e.g., test cases, test data).
The application engineering process (shown in the lower half of
engineering briefly described in Section 2. Following this frame-
work, we discuss the achievements and open research challenges
in the area of variability modelling and management in Section 3. Figure 1) is responsible for deriving concrete applications from
Section 4 summarizes the achievements and open research chal- the domain artifacts. To this end, application engineering ex-
lenges in the area of domain engineering. Section 5 describes the ploits the variability of the domain artifacts by binding (resolv-
achievements and open research challenges in the area of applica- ing) the variability according to the needs and requirements for
tion engineering. Major trends in software engineering and tech- a particular application. Domain artifacts are thereby reused in
nology will lead to new research challenges. We elaborate on application engineering to derive a set of product line applica-
those challenges in Section 6. tions.
By dividing the overall development process into domain engi-
2. FOUNDATIONS neering and application engineering, two key concerns are sepa-
Figure 1 depicts a well-established SPLE framework, which has rated: (1) to build a robust product line platform, (2) to efficiently
recently been adopted as part of the ISO/IEC standard #26550 create individual, customer-specific or market-specific applica-
(“Software and systems engineering: Reference model for product tions based on the product line platform.
line engineering and management”). This framework has been
defined based on the outcomes of the European SPLE research The product line platform encompasses all domain artifacts of the
projects ESAPS, CAFÉ, and FAMILIES. It is described in greater product line.5 Important parts of the product line platform are the
detail in [1]. We employ this framework in the remainder of the domain requirements and the product line architecture, which is
paper to cluster and summarize the research achievements in the often called the reference architecture of the product line [1], [5].
field. The key elements of the framework are described below. The product line architecture provides a common, high-level
structure for all product line applications. The domain require-
2.1 Two Product Line Processes ments define the common and variable features, functions and
To facilitate the efficient development of a diversity of applica- qualities of the product line.
tions which share a set of commonalities, SPLE differentiates
The activities executed during domain and application engineering
between two complementary development processes:
typically do not follow a sequential (“waterfall-like”) order even
The domain engineering process (shown in the upper half of though the visualization of the framework depicted in Figure 1
Figure 1) is responsible for defining the commonality and the
variability of the product line, as well as for developing the do-
main artifacts. Domain artifacts “realize” commonality and var-
5
The term “platform” has slightly different meanings in other
iability. They include, among others, requirements artifacts areas (e.g., see [1]).
(e.g., use case diagrams, requirements models), architectural
might imply so. In general, any type of life-cycle or process model 2.3 Product Line Variability vs.
(e.g., V-model, spiral model, agile models) can be used in a soft-
ware product line setting. The execution order of activities and the Software Variability
activities themselves therefore depend on the development process Quite often SPLE research contributions do not clearly differenti-
used in an organization. Moreover, like in single systems devel- ate between product line variability and software variability.
opment, quality assurance activities should commence from the Software variability refers to the ability of software systems or
start of development and should accompany all activities in do- artifacts to be efficiently extended, changed, customized or con-
main and application engineering. figured [11], [12]. Most modelling and programming languages
Similarly, there is no strict sequence in executing the domain and provide mechanism for software variability. Examples include
the application engineering processes [7], [1]: abstract super-classes allowing different specializations, interfaces
V1 V2
Variant
WiFi MobileBroadband
Trace
Link
«VariationPoint»
Integer Communication Integer
Communication
«Variant» «Variant»
ShortInteger BigInteger WiFi MobileBroadband ShortInteger BigInteger
WiFi MobileBroadband
ity, product line variability needs to be explicitly defined to em- stereotypes for UML diagrams (e.g., activity diagrams, state
power and support the communication, discussion, management charts, or component diagrams [14], [15]), and domain-specific
and analysis of product line variability. languages [16].
3.1 Modeling Product Line Variability For the integrated documentation of product line variability fea-
There are two principle ways in SPLE research and practice to ture models are most commonly used (e.g., see [6]). A feature
explicitly document product line variability: model is a tree or a directed acyclic graph of features7. A feature
Over the last years, the SPLE community has collected a large set Software ecosystems constitute a recent development to general-
of variability models. These models are publically available and ize the notion of multi-software product lines. Software ecosys-
may be used for empirical studies and as benchmark for variabil- tems open up software product lines to external developers to
ity analysis. For example, the SPLOT10 repository contains over extend and use the product line platform or even extend the appli-
400 feature models from both industry and academia. cations released by the product line owner [33], [6].
Open research challenges in variability analysis include: Open research challenges in product management include:
Metrics for performance prediction: How to predict the actual Scope optimization: How to optimize the scope of a product
performance of analysis techniques for a given variability mod- line with regard to features and domain artifacts [29]? Besides
el? What are appropriate metrics to measure the structural com- considering economic and market aspects, scoping has to con-
plexity or size of variability models? Can empirical relations – sider technical aspects like the life-cycle management of fea-
based on such metrics – be established between the structure of tures and their realization in domain artifacts (including archi-
the variability model and the resources required by a solver? tectural complexity) and has to take the economic viability of
How to leverage performance prediction to select the best solver the whole product line and its artifacts into account.
for analyzing certain characteristics for a given variability mod- Artifact-interrelations in multi-level product lines: How to
el? How to develop SPLE-specific heuristics for further improv- establish trace links across multi-level product line hierarchies
ing analysis performance? and their artifacts? Existing solutions have addressed individual
Large-scale, realistic variability models: Very few large-scale artifact types, such as requirements or components. How to
variability models from industrial practice are publically availa- manage trace links across all product line artifacts in a hierar-
ble, even though many such models exist [22]. Most of the chical product line setting? How to bi-directionally synchronize
large-scale variability models available (e.g., in the SPLOT re- those trace links and the artifacts, e.g., in case of changes and
pository) have been generated randomly or by mimicking prop- evolution of artifacts in a sub-line? How to propagate variability
erties of realistic but rather small models found in the literature constraints, which arise in a sub-product line, to a higher level
[17]. Using further real-world variability models as benchmarks product line? How to align the product lines of suppliers and
(even in an anonymized form) is essential for establishing em- vendors? How to leverage management techniques for multi-
pirical evidence (in addition to theoretical) for variability mod- level product lines to handle software ecosystems?
eling and analysis techniques. Making large-scale, real-world
variability models available is thus still an open issue.
4.2 Domain Requirements Engineering
Domain requirements engineering encompasses all activities for
4. DOMAIN ENGINEERING eliciting, negotiating, documenting, validating, and managing the
common and variable requirements for the product portfolio envi-
4.1 Product Management sioned by product management. To identify all relevant common
The main task of product management in SPLE is product line and variable requirements, product line requirements engineers
scoping [27]. One facet of product line scoping is the definition of have to involve a larger number of stakeholders than for single
the product portfolio, i.e., the set of applications offered for a systems and have to consider additional requirements sources and
certain market segment by a particular business unit or company. constraints [1]. For example, a product line may address multiple
Further facets commonly include the definition of which set of customer groups and thus requirements engineers need to involve
features, as well as which set of domain artifacts can be economi- representatives of those groups. Support for the elicitation and
documentation of common and variable requirements has thus
been a focus of past research [34], [35].
10
http://www.splot-research.org/
The amount of commonality and variability defined in domain methods have been advocated in the past [40]. The focus of re-
requirements engineering has a huge impact on all other product search has recently shifted from design methods to techniques for
line engineering activities, both in domain and application engi- modelling variability in the architecture (see Section 3.1).
neering. A high percentage of common features and common
domain requirements in a product line typically require lower Traditionally, product line architecture approaches have been
effort for designing and realizing the product line. Moreover, component-based. In such a setting, variability is realized as
common requirements and domain artifacts are essential to engi- component compositions [41] and/or by introducing variation
neering a product line platform that is stable yet flexible enough. points into the components themselves [42].
On the other hand, the extent of variable requirements determines More recently, aspect-oriented architectures have been proposed
the potential number of different applications that can be derived to better address cross-cutting features. Cross-cutting features are
from the product line and thus has significant impact on whether encapsulated into modular units, the aspects, and composed by
all goals and needs of the envisioned customers and/or market means of aspect-oriented mechanisms such as advices, join-points
segments may be satisfied [1]. If a set of differing but related and point-cuts [43]. Traditional aspect-oriented modelling and
requirements is identified, two principle ways to treat those re- programming concepts may cause problems during software
quirements exist. Those requirements may be defined as variable product line evolution. Anything could be an aspect, and an aspect
in the domain requirements. Or, those requirements may be har- could address any kind of modification of a model or program.
monized or generalized and thereby defined as a common domain Thus, the traditional aspect-oriented modelling concepts are too
requirement. Determining how to treat those requirements is generic in a product line setting. To address this problem, re-
clearly a tradeoff decision that has to be made in concert with searchers have started investigating the use of emerging aspect-
product management and scoping. oriented mechanisms, such as XPIs [44].
Like in single system development, the requirements of software Most recently, service-oriented architectures have been consid-
product lines tend to change frequently. Surprisingly, research in ered by the SPLE community. In contrast to a component, which
product line evolution has mainly focused on the evolution of represents a comprehensive piece of software that is part of the
variability models, as well as design and realization artifacts, yet software product line, a service represents functionality with
has mostly neglected changes in requirements [36], [37], [38]. associated quality characteristics (typically defined in a service-
Open research challenges in domain requirements engineering level agreement) offered by a service provider via a service inter-
include: face [45]. The service itself or the service provider can change as
long as the functionality and the service-level agreement remain
Interrelation between scoping and requirements engineer- the same. Key research results for service-oriented product line
ing: How to facilitate continuous interactions between domain architectures include feature-model-based approaches for service
requirements engineering and product management? For exam- variability modelling [46] and approaches for reusing and combin-
ple, additional common or variable requirements elicited during ing services into service-oriented product line applications [47].
domain requirements engineering could lead to different scop-
Quality attributes (such as performance, availability, security or
ing decisions. Or, as a result of requirements validation, scoping
safety) have been considered during variability modelling, e.g.,
decisions could be questioned. More generally, how is scoping
using extended feature models [48]. Although variation in quality
and requirements engineering aligned to support a smooth defi-
requirements has been addressed in domain requirements models,
nition of an optimal set of common and variable requirements
quality attributes in domain design models have rarely been con-
[1], [29]?
sidered. An exception is the consideration of performance and
Interrelation between requirements engineering and other availability in domain design [12].
development activities: In single system development, the def-
Open research challenges in domain design include:
inition of the requirements and the definition of the software
architecture are tightly intertwined (e.g., see [39]). Require- Building resilient service-oriented product lines: How to
ments serve as the basis for the design of the system architec- design service-oriented reference architectures that are resilient
ture. Conversely, findings made during architectural design also to dynamic changes in services provided by third parties [49],
influence the definition of the requirements. How to handle the [45]? Third party services are typically provided on a contractu-
intertwining of requirements engineering and design in software al basis (e.g., expressed in terms of service level agreements).
product line engineering? Even though contract violation may imply penalties for the ser-
Impact of requirements changes: How to assess the impact of
vice provider, this does not guarantee that the functionality and
quality will be delivered. As a consequence, product line engi-
requirements changes on the commonality and variability of the
neers have only limited control over changes of provisioned
product line? When and how to evolve domain design and reali-
services in terms of their functionality or quality, as well as their
zation artifacts as a result of requirements changes? How to
complete failure or even discontinuation – a key difference to
evolve a common requirement into a set of variable ones and
the use of components [45]. How can adaptation mechanisms
how to propagate this change to design, realization, test, etc.? If
from single system engineering be adapted to a product line set-
we are able to handle the evolution of requirements well, we
ting? How to build variable architectures that can cope with
might have an easier job with the evolution of other develop-
changes in service availabilities during runtime?
ment artifacts. Can well-documented requirements changes
guide and structure the changes for other domain and applica- Delayed design decision and variability: Decisions about
tion artifacts? product line variability, i.e., decisions made by product man-
agement, and architectural decisions, i.e., fundamental decisions
4.3 Domain Design made during the design of the reference architecture often over-
Domain design encompasses all activities for defining the refer- lap or influence each other [50]. During domain design, archi-
ence architecture of the product line. Numerous SPLE design tects may decide to delay design decisions to application engi-
neering. For each delayed design decision they define a varia- bility typically results in an m:n mapping of variability and code
tion point and a set of design alternatives (variants). How to fragments. How to handle this m:n mapping? How to support
manage the interaction between such delayed design decisions the step-wise refinement of product line variability to software
and product line variability in the product line architecture? variability? Can scripting languages be extended to manage the
SPLE and cloud computing: What are the consequences of
step-wise refinement and the m:n mapping between product line
variability and software variability?
cloud computing on SPLE? How can SPLE architectures be
made cloud-aware? Can we build on research results from sin- 4.5 Domain Quality Assurance
gle system development to deal with cloud-awareness in an Quality assurance of domain artifacts is essential for successful
SPLE setting? product line engineering. A fault in a domain artifact may affect
Variability in quality attributes: Introducing variability in all applications of the product line in which this artifact is reused.
quality attributes on top of functional variability has a signifi- Quality assurance techniques from single-system engineering
cant impact on the product line architecture, especially since cannot be directly applied to domain artifacts. As an example, a
domain requirements specification can define a variable require-
ment r, that is related to variant v1, and a variable requirement r
quality attributes are typically the key driver for architectural
decisions. How to handle variability in quality attributes during
related to variant v2. Performing a consistency check of the do-
main requirements specification R = {r, r} using quality assur-
domain design? How to take tradeoff decisions between varia-
bility in functionality and in quality attributes when designing
ance techniques from single system development would identify a
contradiction between r and r. Yet, if the variants v1 and v2 are
the software product line architecture?
Mapping of product line variability and software variabil- 4.5.2 Domain Testing
ity: The realization of product line variability often affects more As in the development of single systems, the aim of testing in
than one code fragment and thus cross-cuts realization artifacts. SPLE is to execute the software to uncover the evidence of de-
Conversely, a realization artifact can (in parts) implement more fects. Research on domain testing has delivered techniques for
than one product line variability. Thus, the realization of varia- developing reusable test cases in domain engineering, and reusing
and executing these test cases in application engineering (see models define the decisions to be taken to derive an application of
Section 5.4). Key results include techniques for defining test cases the product line [19]. To this end, a decision model documents the
for different types of tests, including system, integration, and possible decisions, their impacts as well as their ordering and,
performance tests [59], [60]. possibly, their pre-conditions. Variability is indirectly modelled in
a decision model through the decisions that need to be taken to
In addition, domain testing aims to uncover evidence of defects in resolve variability. To guide users during these decision process-
domain artifacts before these artifacts are reused in application es, tools have been suggested [67]. In the extreme, fully automat-
engineering. Due to the variability defined in the domain artifacts, ed approaches have been devised that aim at optimal feature selec-
testing all potential product line applications (i.e., all potential tion; e.g., using search-based techniques [68].
combination of the common and variable artifacts) during domain
engineering is impossible [61]. Typical domain testing strategies In practice, individual applications often cannot be fully realized
thus reduce the number of artifact combinations by using pair- by reusing domain artifacts alone [8], [9]. Quite often, there are
wise [62] or t-wise testing strategies [63] or by focusing on im- some application-specific requirements that cannot be satisfied by
portant features and feature combinations [64]. reusing domain requirements and thus have to be realized during
application engineering. The handling of application-specific
Open research challenges in domain quality assurance include: deviations from product line requirements has received very little
Causes for failures: Initial progress has been made to identify attention despite its frequent occurrence in practice. A potential
the root causes for inconsistencies in variability models [65]. solution is to define such application-specific deviations as appli-
How to extend such approaches to surface root causes for faults cation-specific variation and document this variation, in addition
and failures in other domain artifacts such as requirements, de- to the variability bindings, in the application variability model [8].
sign artifacts, and code (cf., [66])? Open challenges in application requirements engineering are:
Inter-model verification: Current product line verification Eliciting application-specific requirements: Some early re-
techniques mainly focus on single artifact models. How to veri- search contributions exist that support the elicitation of applica-
fy inter-model consistency during domain engineering? tion-specific requirements. The mere selection of pre-defined
Empirical evidence: Controlled experimentation is an estab- features is certainly not a satisfying answer. So how to make use
lished research methodology to evaluate testing techniques in of variability during requirements elicitation? How to enrich or
single system development. With a few exceptions, product line adapt traditional elicitation approaches to leverage product line
testing research has not yet provided reproducible empirical re- variability? How to extend decision-model-based approaches to
sults [59]. How to establish empirical evidence of the efficiency include application-specific deviations from domain require-
and effectiveness of domain testing techniques? ments?
Empowering additional quality assurance techniques during Handling application-specific deviations: Customer-specific
domain engineering: So far, research for domain quality assur- requirements that cannot be fulfilled by the commonality or the
ance has focused on formal verification and testing. Almost no variability defined in the product line (i.e., which cannot be
research contributions exist to tailor or extend other successful mapped to domain artifacts) have to be documented and man-
quality assurance techniques from single software development aged in an appropriate way. How to document application-
to the product line setting such as reviews, walkthroughs, or specific extensions to requirements? How to check their impact
perspective-based reading. This is surprising, since such tech- on the defined domain requirements? How to map application-
niques have proven to be very effective in single system devel- specific deviations back to the domain requirements without
opment. So, can reviews, walkthroughs and perspective-based impeding the efficiency of reusing product line artifacts? How
reading techniques be applied in a software product line setting? to evaluate and predict the consequences of application-specific
Is an adaptation of those techniques needed? How to facilitate requirements deviations early enough? How to evaluate poten-
the validation of variability and commonality and the associated tial alternatives with regard to the domain requirements and the
trade-off decisions? Can we gather empirical evidence of the variability of the product line? How to evaluate the impact of
effectiveness of those quality assurance techniques in an SPLE application-specific deviations on later application engineering
setting? phases like design, testing and maintenance?
[68] A. Sayyad, T. Menzies and H. Ammar, "On the Value of [82] J. Kramer and J. Magee, "Self-Managed Systems: an
User Preferences in Search-based Software Engineering: A Architectural Challenge," in ICSE 2007 Workshop on the
Case Study in Software Product Lines," in 35th Int'l Future of Software Engineering (FOSE 2007), Minneapolis,
Conference on Software Engineering (ICSE 2013), San USA, 2007.
Francisco, USA, 2013. [83] M. Hinchey, S. Park and K. Schmid, "Building Dynamic
[69] M. Galster, P. Avgeriou, D. Weyns and T. Männistö, Software Product Lines," IEEE Computer, vol. 45, no. 10,
"Variability in Software Architecture: Current Practice and pp. 22-26, 2012.
Challenges," ACM SIGSOFT Software Engineering Notes, [84] P. Sawyer, N. Bencomo, J. Whittle, E. Letier and A.
vol. 36, no. 5, pp. 30-32, 2011. Finkelstein, "Requirements-Aware Systems: A Research
[70] E. Cirilo, U. Kulesza, A. Garcia, D. Cowan, P. Alencar and Agenda for RE for Self-adaptive Systems," in 18th Int'l
C. Lucena, "Configurable Software Product Lines: Requirements Engineering Conference (RE 2010), Sydney,
Supporting Heterogeneous Configuration Knowledge," in Australia, 2010.
13th Int'l Conference on Software Reuse (ICSR 2013), Pisa, [85] P. Sawyer, R. Mazo, D. Diaz, C. Salinesi and D. Hughes,
Italy, 2013. "Using Constraint Programming to Manage Configurations
[71] C. Elsner, P. Ulbrich, D. Lohmann and W. Schröder- in Self-Adaptive Systems," IEEE Computer, vol. 45, no. 10,
Preikschat, "Consistent Product Line Configuration across pp. 56-63, 2012.
File Type and Product Line Boundaries," in 14th Int'l [86] D. Sykes, D. Corapi, J. Magee, J. Kramer, A. Russo and K.
Software Product Line Conference (SPLC 2010), Jeju Island, Inoue, "Learning Revised Models for Planning in Adaptive
South Korea, 2010. Systems," in 35th Int'l Conference on Software Engineering
[72] G. Perrouin, J. Klein, N. Guelfi and J.-M. Jezequel, (ICSE 2013), San Francisco, USA, 2013.
"Reconciling Automation and Flexibility in Product [87] G. Perrouin, B. Morin, F. Chauvel, F. Fleurey, J. Klein, Y.
Derivation," in 12th Int'l Software Product Line Conference Le-Traon, O. Barais and J.-M. Jezequel, "Towards Flexible
(SPLC 2008), Limerick, Ireland, 2008. Evolution of Dynamically Adaptive Systems," in 34th Int'l
[73] R. Rabiser, P. O’Leary and I. Richardson, "Key Activities for Conference on Software Engineering (ICSE 2012), Zurich,
Product Derivation in Software Product Lines," Journal of Switzerland, 2012.
Systems and Software, vol. 84, no. 2, pp. 285-300, 2011. [88] R. Capilla, J. Bosch, P. Trinidad, A. Ruiz-Cortés and M.
[74] V. Stricker, A. Metzger and K. Pohl, "Avoiding Redundant Hinchey, "An Overview of Dynamic Software Product Line
Testing in Application Engineering," in 14th Int'l Software Architectures and Techniques," Journal of Systems and
Product Line Conference (SPLC 2010), Jeju Island, South Software, vol. 91, pp. 3-23, May 2014.
Korea, 2010. [89] J. Rubin and M. Chechik, "Combining Related Products into
[75] J. Rubin, A. Kirshin, G. Botterweck and M. Chechik, Product Lines," in 15th Int'l Conference on Fundamental
"Managing Forked Product Variants," in 16th Int'l Software Approaches to Software Engineering (FASE 2012), Tallinn,
Product Line Conference (SPLC 2012), Salvador, Brazil, Estonia, 2012.
2012. [90] S. She, R. Lotufo, T. Berger, A. Wasowski and K. Czarnecki,
[76] L. Atzori, A. Iera and G. Morabito, "The Internet of Things: "Reverse Engineering Feature Models," in 33rd Int'l
A Survey," Computer Networks, vol. 54, no. 15, pp. 2787- Conference on Software Engineering (ICSE 2011), Waikiki,
2805, 2010. USA, 2011.