91,710 research outputs found
A concrete product derivation in software product line engineering: a practical approach
Software Product Lines enable the development of a perfect family of products by reusing shared assets in a systematic manner. Product derivation is a critical activity in software product line engineering and one of the most pressing issues that a software product line must address. This work introduces an approach for automating the derivation of a product from a software product line. The software product line is part of a product family that evolved from a non-structured approach to managing variability. The automated derivation approach relies on product configurations and the refactoring of feature models. The approach was deployed and evaluated in the automotive domain using a real-world software product line. The outcome demonstrates that the approach generates a product in an automated and successful manner.This work has been supported by FCT – Fundação para a Ciência e Tecnologia within the R&D Units Project Scope: UIDB/00319/2020
Integrating the common variability language with multilanguage annotations for web engineering
Web applications development involves managing a high diversity of files and resources like code, pages or style sheets, implemented in different languages. To deal with the automatic generation of
custom-made configurations of web applications, industry usually adopts annotation-based approaches even though the majority of studies encourage the use of composition-based approaches to implement
Software Product Lines. Recent work tries to combine both approaches to get the complementary benefits. However, technological companies are reticent to adopt new development paradigms
such as feature-oriented programming or aspect-oriented programming.
Moreover, it is extremely difficult, or even impossible, to apply
these programming models to web applications, mainly because of
their multilingual nature, since their development involves multiple
types of source code (Java, Groovy, JavaScript), templates (HTML,
Markdown, XML), style sheet files (CSS and its variants, such as
SCSS), and other files (JSON, YML, shell scripts). We propose to
use the Common Variability Language as a composition-based approach
and integrate annotations to manage fine grained variability
of a Software Product Line for web applications. In this paper, we (i)
show that existing composition and annotation-based approaches,
including some well-known combinations, are not appropriate to
model and implement the variability of web applications; and (ii)
present a combined approach that effectively integrates annotations
into a composition-based approach for web applications. We implement
our approach and show its applicability with an industrial
real-world system.Universidad de Málaga. Campus de Excelencia Internacional AndalucĂa Tech
A Taxonomy of Variability in Web Service Flows
The combination of Software Product Lines (SPL) and Service-Oriented Architectures (SOA) development practices is expected to become a new development paradigm maximizing reuse and business integration. However, multiples issues must be still addressed in order to clarify the connections between both fields. One of the key questions to answer is how SPL practices can be used to support serviceoriented applications. in this context, identifying and managing the points of variability in composite Web services emerges as an inevitable step for making possible such integration. in this position paper we give a first step toward such direction by introducing a comprehensible overview of the main variability points in Web service flows.Ministerio de EducaciĂłn y Ciencia TIN2006-0047
Practical Pairwise Testing for Software Product Lines
International audienceOne key challenge for software product lines is efficiently managing variability throughout their lifecycle. In this paper, we address the problem of variability in software product lines testing. We (1) identify a set of issues that must be addressed to make software product line testing work in practice and (2) provide a framework that combines a set of techniques to solve these issues. The framework integrates feature modelling, combinatorial interaction testing and constraint programming techniques. First, we extract variability in a software product line as a feature model with specified feature interdependencies. We then employ an algorithm that generates a minimal set of valid test cases covering all 2-way feature interactions for a given time interval. Furthermore, we evaluate the framework on an industrial SPL and show that using the framework saves time and provides better test coverage. In particular, our experiments show that the framework improves industrial testing practice in terms of (i) 17% smaller set of test cases that are (a) valid and (b) guarantee all 2-way feature coverage (as opposite to 19.2% 2-way feature coverage in the hand made test set), and (ii) full flexibility and adjustment of test generation to available testing time
MUSA: A Scalable Multi-Touch and Multi-Perspective Variability Management Tool
Variability management is one of the main activities in the Software Product Line Engineering process. Common and varied features of related products are modelled along with the dependencies and relationships among them. With the increase in size and complexity of product lines and the more holistic systems approach to the design process, managing the ever- growing variability models has become a challenge. In this paper, we present MUSA, a tool for managing variability and features in large-scale models. MUSA adopts the Separation of Concerns design principle by providing multiple perspectives to the model, each conveying different set of information. The demonstration is conducted using a real-life model (comprising of 1000+ features) particularly showing the Structural View, which is displayed using a mind-mapping visualisation technique (hyperbolic trees), and the Dependency View, which is displayed graphically using logic gates
Integration of Quality Attributes in Software Product Line Development
Different
approaches
for
building
modern
software
systems
in
complex
and
open
environments
have
been
proposed
in
the
last
few
years.
Some
efforts
try
to
apply
Software
Product
Line
(SPL)
approach
to
take
advantage
of
the
massive
reuse
for
producing
software
systems
that
share
a
common
set
of
features.
In
general
quality
assurance
is
a
crucial
activity
for
success
in
software
industry,
but
it
is
even
more
important
when
talking
about
Software
Product
Lines
since
the
intensive
reuse
of
assets
makes
the
quality
attributes
(a
measurable
physical
or
abstract
property
of
an
entity)
of
the
assets
to
be
transmitted
to
the
whole
SPL
scope.
However,
despite
the
importance
that
quality
has
in
software
product
line
development,
most
of
the
methodologies
being
applied
in
Software
Product
Line
Development
focus
only
on
managing
the
commonalities
and
variability
within
the
product
line
and
not
giving
support
to
the
non--Âż
functional
requirements
that
the
products
must
fit.
The
main
goal
of
this
master
final
work
is
to introduce
quality
attributes
in
early
stages
of
software
product
line
development
processes
by
means
of
the
definition
of
a
production
plan
that,
on
one
hand,
integrates
quality
as
an
additional
view
for
describing
the
extension
of
the
software
product
line
and,
on
the
other
hand
introduces
the
quality
attributes
as
a
decision
factor
during
product
configuration
and
when
selecting
among
design
alternatives.
Our
approach
has
been
defined
following
the
Model--Âż
Driven
Software
Development
paradigm.
Therefore
all
the
software
artifacts
defined
had
its
correspondent
metamodels
and
the
processes
defined
rely
on
automated
model
transformations.
Finally
in
order
to
illustrate
the
feasibility
of
the
approach
we
have
integrated
the
quality
view
in
an
SPL
example
in
the
context
of
safety
critical
embedded
systems
on
the
automotive
domain.González Huerta, J. (2011). Integration of Quality Attributes in Software Product Line Development. http://hdl.handle.net/10251/15835Archivo delegad
Evolving multi-tenant SaaS cloud applications using model-driven engineering
Cloud computing promotes multi-tenancy for efficient resource utilization by sharing hardware and software infrastructure among multiple clients. Multi-tenant applications running on a cloud infrastructure are provided to clients as Software-as-a-Service (SaaS) over the network. Despite its benefits, multi-tenancy introduces additional challenges, such as p artitioning, extensibility, and customizability during the application development. Over time, after the application deployment, new requirements of clients and changes in business environment result application evolution. As the application evolves, its complexity also increases. In multi-tenancy, evolution demanded by individual clients should not affect availability , security , and performance of the application for other clients. Thus, the multi- tenancy concerns add more complexity by causing variability in design decisions. Managing this complexity requires adequate approaches and tools. In this paper, we propose modeling techniques from software product lines (SPL) and model-driven engineering (MDE) to manage variability and support evolution of multi-tenant applications and their requirements. Specifically, SPL was ap p lied to define technological and concep tual variabilities during the application design, where MDE was suggested to manage these variabilities. We also present a process of how MDE can address evolution of multi-tenant applications using variability models
Software evolution in model-driven product line engineering
New requirements and technology changes lead to continuous changes of the assets comprising a
software product line. Since the product line represents a large number of potential products (or
already deployed products) in a given domain, managing these changes becomes a key issue when
dealing with evolution. We present a framework to support the development and evolution of highquality
software product lines. The framework is based on several interrelated models or system
views (eg, functionality, variability, quality) and a production plan defined by model transformations
that generate a software system that meets both functional and quality requirements. We used our
framework to develop a software system for the automotive domain.Abrahao Gonzales, SM.; González Huerta, J.; Insfrán Pelozo, CE.; Ramos Salavert, I. (2012). Software evolution in model-driven product line engineering. Ercim News. 88:41-43. http://hdl.handle.net/10251/46692S41438
Feature Model Differences
International audienceFeature models are a widespread means to represent commonality and variability in software product lines. As is the case for other kinds of models, computing and managing feature model differences is useful in various real-world situations. In this paper, we propose a set of novel differencing techniques that combine syntactic and semantic mechanisms, and automatically produce meaningful differences. Practitioners can exploit our results in various ways: to understand, manipulate, visualize and reason about differences. They can also combine them with existing feature model composition and decomposition operators. The proposed automations rely on satisfiability algorithms. They come with a dedicated language and a comprehensive environment. We illustrate and evaluate the practical usage of our techniques through a case study dealing with a configurable component framework
- …