279 research outputs found
Derivation and consistency checking of models in early software product line engineering
Dissertação para obtenção do Grau de Doutor em
Engenharia InformáticaSoftware Product Line Engineering (SPLE) should offer the ability to express the derivation of product-specific assets, while checking for their consistency. The derivation of product-specific assets is possible using general-purpose programming languages in combination with techniques
such as conditional compilation and code generation. On the other hand, consistency checking can be achieved through consistency rules in the form of architectural and design guidelines, programming conventions and well-formedness rules. Current approaches present four shortcomings: (1)
focus on code derivation only, (2) ignore consistency problems between the variability model and other complementary specification models used in early SPLE, (3) force developers to learn new, difficult to master, languages to encode the derivation of assets, and (4) offer no tool support.
This dissertation presents solutions that contribute to tackle these four shortcomings. These solutions are integrated in the approach Derivation and Consistency Checking of models in early SPLE (DCC4SPL) and its corresponding tool support.
The two main components of our approach are the Variability Modelling Language for Requirements(VML4RE), a domain-specific language and derivation infrastructure, and the Variability Consistency Checker (VCC), a verification technique and tool. We validate DCC4SPL demonstrating that it is appropriate to find inconsistencies in early SPL model-based specifications and to specify the derivation of product-specific models.European Project AMPLE, contract IST-33710; Fundação para a Ciência e Tecnologia - SFRH/BD/46194/2008
Software diversity: state of the art and perspectives
International audienceDiversity is prevalent in modern software systems to facilitate adapting the software to customer requirements or the execution environment. Diversity has an impact on all phases of the software development process. Appropriate means and organizational structures are required to deal with the additional complexity introduced by software variability. This introductory article to the special section "Software Diversity--Modeling, Analysis and Evolution" provides an overview of the current state of the art in diverse systems development and discusses challenges and potential solutions. The article covers requirements analysis, design, implementation, verification and validation, maintenance and evolution as well as organizational aspects. It also provides an overview of the articles which are part of this special section and addresses particular issues of diverse systems development
A Code Tagging Approach to Software Product Line Development:An Application to Satellite Communication Libraries
International audienceSoftware product line engineering seeks to systematise reuse when developing families of similar software systems so as to minimise development time, cost and defects. To realise variability at the code level, product line methods classically advocate usage of inheritance, components, frameworks, aspects or generative techniques. However, these might require unaffordable paradigm shifts for developers if the software was not thought at the outset as a product line. Furthermore, these techniques can be conflicting with a company's coding practices or external regulations. These concerns were the motivation for the industry- university collaboration described in this paper in which we developed a minimally intrusive coding technique based on tags. The approach was complemented with traceability from code to feature diagrams which were exploited for automated configuration. It is supported by a toolchain and is now in use in the partner company for the development of flight grade satellite communica- tion software libraries
Model driven product line engineering : core asset and process implications
Reuse is at the heart of major improvements in productivity and quality in Software Engineering. Both Model Driven Engineering (MDE) and Software Product Line Engineering (SPLE) are software development paradigms that promote reuse. Specifically, they promote systematic reuse and a departure from craftsmanship towards an industrialization of the software development process. MDE and SPLE have established their benefits separately. Their combination, here called Model Driven Product Line Engineering (MDPLE), gathers together the advantages of both.
Nevertheless, this blending requires MDE to be recasted in SPLE terms. This has implications on both the core assets and the software development process. The challenges are twofold: (i) models become central core assets from which products are obtained and (ii) the software development process needs to cater for the changes that SPLE and MDE introduce. This dissertation proposes a solution to the first challenge following a feature oriented approach, with an emphasis on reuse and early detection of inconsistencies. The second part is dedicated to assembly processes, a clear example of the complexity MDPLE introduces in software development processes. This work advocates for a new discipline inside the general software development process, i.e., the Assembly Plan Management, which raises the abstraction level and increases reuse in such processes. Different case studies illustrate the presented ideas.This work was hosted by the University of the Basque Country (Faculty
of Computer Sciences). The author enjoyed a doctoral grant from the
Basque Goverment under the “Researchers Training Program” during the
years 2005 to 2009. The work was was co-supported by the Spanish Ministry
of Education, and the European Social Fund under contracts WAPO
(TIN2005-05610) and MODELINE (TIN2008-06507-C02-01)
Requirements Modelling and Design Notations for Software Product Lines
Although feature modelling is a frequently used
approach to the task of modelling commonality and
variability within product lines, there is currently no
standard modelling notation or methodology. On the
assumption that the commonality/variability model will
be used as a basis for architecture design, our
modelling notation allows features to be augmented
with behavioural detail, captured using the UCM path
notation. This gives rise to models that capture
commonality and variability in behaviour as well as in
product features, and are thus more valuable for
downstream design activities. This paper outlines the
modelling notation and describes ongoing work on the
characterisation of variability points within models
based on this notation, and on the relationships between
model fragments and solution domain techniques such
as design patterns or variability realisation techniques.
It also describes preliminary work, aimed at evolving an
intelligent tool that can characterise feature and
behavioural model fragments and suggest design and
realisation methods
Type Safe Extensible Programming
Software products evolve over time. Sometimes they evolve by adding new
features, and sometimes by either fixing bugs or replacing outdated
implementations with new ones. When software engineers fail to anticipate such
evolution during development, they will eventually be forced to re-architect or
re-build from scratch. Therefore, it has been common practice to prepare for
changes so that software products are extensible over their lifetimes. However,
making software extensible is challenging because it is difficult to anticipate
successive changes and to provide adequate abstraction mechanisms over
potential changes. Such extensibility mechanisms, furthermore, should not
compromise any existing functionality during extension. Software engineers
would benefit from a tool that provides a way to add extensions in a reliable
way. It is natural to expect programming languages to serve this role.
Extensible programming is one effort to address these issues.
In this thesis, we present type safe extensible programming using the MLPolyR
language. MLPolyR is an ML-like functional language whose type system provides
type-safe extensibility mechanisms at several levels. After presenting the
language, we will show how these extensibility mechanisms can be put to good
use in the context of product line engineering. Product line engineering is an
emerging software engineering paradigm that aims to manage variations, which
originate from successive changes in software.Comment: PhD Thesis submitted October, 200
Automated analysis of feature models 20 years later: a literature review
Software product line engineering is about producing a set of related products that share more commonalities than
variabilities. Feature models are widely used for variability and commonality management in software product
lines. Feature models are information models where a set of products are represented as a set of features in a
single model. The automated analysis of feature models deals with the computer–aided extraction of information
from feature models. The literature on this topic has contributed with a set of operations, techniques, tools and
empirical results which have not been surveyed until now. This paper provides a comprehensive literature review
on the automated analysis of feature models 20 years after of their invention. This paper contributes by bringing
together previously-disparate streams of work to help shed light on this thriving area. We also present a conceptual
framework to understand the different proposals as well as categorise future contributions. We finally discuss the
different studies and propose some challenges to be faced in the future.CICYT TIN2009-07366CICYT TIN2006-00472Junta de Andalucía TIC-253
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
- …