10 research outputs found
A Systematic Classification and Analysis of NFRs
The main agenda of Requirements Engineering (RE) is the development of tools, techniques and languages for the elicitation, specification, negotiation, and validation of software requirements. However, this development has traditionally been focused on functional requirements (FRs), rather than non-functional requirements (NFRs). Consequently, NFR approaches developed over the years have been fragmental and there is a lack of clear understanding of the positions of these approaches in the RE process. This paper provides a systematic classification and analysis of 89 NFR approaches
An Architecture Maturity Model of Software Product Line
Software architecture has been a key research area in the software engineering community due to its significant role in creating high-quality software. The trend of developing product lines rather than single products has made the software product line a viable option in the industry. Software product line architecture (SPLA) is regarded as one of the crucial components in the product lines, since all of the resulting products share this common architecture. The increased popularity of software product lines demands a process maturity evaluation methodology. Consequently,this paper presents an architecture process maturity model for software product line engineering to evaluate the current maturity of the product line architecture development process in an organization. Assessment questionnaires and a rating methodology comprise the framework of this model. The objective of the questionnaires is to collect information about the SPLA development process. Thus, in general this work contributes towards the establishment of a comprehensive and unified strategy for the process maturity evaluation of software product line engineering. Furthermore, we conducted two case studies and reported the assessment results, which show the maturity of the architecture development process in two organizations
Software Product Line Engineering: Future Research Directions
The recent trend of switching from single software product development tolines of software products in the software industry has made the software product line concept viable and widely accepted methodology in the future. Some of the potential benefits of this approach include cost reduction, improvement in quality and a decrease in product development time. Many organizations that deal in wide areas of operation, from consumer electronics, telecommunications, and avionics to information technology, are using software product lines practice because it deals with effective utilization ofsoftware assets and provides numerous benefits. Software product line engineering is an inter-disciplinary concept. It spans over the dimensions of business, architecture, process and organization. The business dimension of software product lines deals with managing a strong coordination between product line engineering and the business aspects of product line. Software product line architecture is regarded as one of the crucial piece of entity in software product lines. All the resulting products share thiscommon architecture. The organizational theories, behavior and management play critical role in the process of institutionalization of software product line engineering in an organization. The objective of this chapter is to discuss the state of the art of software product line engineering from the perspectives of business, architecture, organizational management and software engineering process. This work also highlights and discusses the future research directions in this area thus providing an opportunity to researchers and practitioners to better understand the future trends and requirements
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
Achieving Autonomic Computing through the Use of Variability Models at Run-time
Increasingly, software needs to dynamically adapt its behavior at run-time in response
to changing conditions in the supporting computing infrastructure and in
the surrounding physical environment. Adaptability is emerging as a necessary underlying
capability, particularly for highly dynamic systems such as context-aware
or ubiquitous systems.
By automating tasks such as installation, adaptation, or healing, Autonomic
Computing envisions computing environments that evolve without the need for human
intervention. Even though there is a fair amount of work on architectures
and their theoretical design, Autonomic Computing was criticised as being a \hype
topic" because very little of it has been implemented fully. Furthermore, given that
the autonomic system must change states at runtime and that some of those states
may emerge and are much less deterministic, there is a great challenge to provide
new guidelines, techniques and tools to help autonomic system development.
This thesis shows that building up on the central ideas of Model Driven Development
(Models as rst-order citizens) and Software Product Lines (Variability
Management) can play a signi cant role as we move towards implementing the key
self-management properties associated with autonomic computing. The presented
approach encompass systems that are capable of modifying their own behavior with
respect to changes in their operating environment, by using variability models as if
they were the policies that drive the system's autonomic recon guration at runtime.
Under a set of recon guration commands, the components that make up the architecture
dynamically cooperate to change the con guration of the architecture to a
new con guration.
This work also provides the implementation of a Model-Based Recon guration
Engine (MoRE) to blend the above ideas. Given a context event, MoRE queries the variability models to determine how the system should evolve, and then it provides
the mechanisms for modifying the system.Cetina Englada, C. (2010). Achieving Autonomic Computing through the Use of Variability Models at Run-time [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/7484Palanci
Elaboración de métricas basada en un framework de atributos para líneas de productos
Una línea de productos es un conjunto de productos relacionados que comparten unas características comunes, así como una variabilidad. Lo anterior facilita la producción masiva de dichos productos además de su adaptación a requisitos particulares. La ingeniería de líneas de productos es un paradigma de producción que permite la personalización masiva de productos. Esto ayuda a una mayor reutilización de componentes, a disminuir el tiempo de desarrollo y a mejorar la calidad final de los productos. Como en cualquier rama de la ingeniería, en la ingeniería de líneas de productos la medición juega un papel clave. Esto permite una mejor gestión de los procesos y los recursos requeridos por estos, así como monitorear la calidad de los productos. Este proceso se implementa mediante el uso de métricas, que permiten tener una medida cuantitativa del grado en el que un sistema, componente o proceso poseen un atributo dado (como costo, mantenibilidad o complejidad). Sin embargo; ni la comunidad académica ni la industria, cuentan con un framework para la aplicación de métricas en líneas de productos. Además, en la ingeniería en general y particularmente en la ingeniería de software, no existe un consenso en la terminología ni en una metodología de medición. Todo esto lleva a que se presenten dificultades, tanto para la definición como para la validación de métricas, en la ingeniería de software y en la ingeniería de líneas de productos. Durante el desarrollo del presente trabajo se propone un framework de medición, enfocado en los atributos, para la ingeniería de líneas de productos. También se define un conjunto de métricas con base en dicho framework. El trabajo propuesto comprende un mapeo sistemático de la literatura sobre la medición en la ingeniería de líneas de productos, un framework de medición centrado en un conjunto de atributos extraídos de la ingeniería de líneas de productos, un conjunto de métricas para líneas de productos y la correspondiente validación de dichas métricas con un análisis teórico.Abstract: A product line is a set of related products that share some common features and variable ones. It allows the massive production of those products besides their adaptation to particular requirements. Product line engineering is a production paradigm that implies mass customization of products. It helps to a greater reuse of components, to decrease the time of development and to improve the final quality of products. Like in any other engineering branch, in product line engineering measurement has a key role. It allows a better management of the processes and the resources required by them, as well as to monitor the quality of the products. This process is implemented through the use of metrics, which allow to have a quantitative measure of the degree in which a system, component or process possesses a given attribute (like cost, maintainability or complexity). However, neither the academy nor the industry have a framework for using metrics in product lines. Although, in engineering but mainly in software engineering, there is not a consensus in a measurement terminology or in a measurement methodology. All this has led to some difficulties in the definition and the validation of metrics in software engineering and in product line engineering. In this work, we propose a measurement framework for product line engineering focused on attributes. We also define a set of metrics based on this framework. The proposed work includes a systematic mapping about measurement in product line engineering, a measurement framework focused on the attributes of the product lines, a set of metrics for product lines and the validation of those metrics with a theoretical analysis.Maestrí
Quality prediction and assessment for product lines
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)2681681-69