A Generic Framework for Improving Software Product Line using an Ontological Rule-Based Approach
Loading...
Files
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Software product line engineering (SPLE) is an emergent technical paradigm for
generating software products. A software product line (SPL) is a family of related
software intensive systems, sharing a common and managed set of features that fulfill the
specific requirements of a certain domain. The main focus of SPL is software reuse in an
attempt to improve the quality and productivity while reducing cost as well as time to
market. Feature model (FM) is a well-known notation that represents commonality and
variability of SPL. The accurate combination of features in FM allows deriving a valid
product from SPL. The development and growing size of FMs may inevitably introduce
inaccurate feature relationships. These relationships may cause defects in models such as
defects due to redundancy, anomaly, inconsistency and wrong cardinality. These defects
can be inherited in the software products built from a defective product line model. These
defects diminish the quality of FMs and benefits of SPL.
A defect in FM is a critical issue in the SPL community as software products are derived
by reusing models. One of the major factors behind the successful derivation of defect
free valid software products from SPL is the quality of FM, which in turn depends on
how a defect in FM is resolved. Moreover, manually inspecting defects in large-sized
FMs is a laborious task. Therefore, it is of utmost importance to resolve defects to support
reusability in the industrial domain. As, it further leads to mass production of software
products and provides the benefits of SPL, i.e., reduced development time, cost and
improves quality of software products. The identification of defects in FM is well
researched, however, providing cause of defects with their correction in a language which
is easily understandable by product line (PL) developers is still a challenge. The lack of
methods to explain the causes and corrections of defects in a user-friendly language for
resolving defects motivated us to propose an effective approach to assure the quality of
FMs in SPL, which in turn ensures the benefits of reusability in industry.
In this thesis, a framework is proposed to improve SPL by analyzing defects in FM using
an ontological rule-based approach. The problem of enhancing the quality of software
products derived from SPLE is tackled by dealing with defects due to redundancy,
anomaly, inconsistency and wrong cardinality in FMs. The classification of FM defects is
defined in the form of cases. The proposed approach formalizes FM by transforming it
iv
into first-order logic (FOL) predicate based feature model ontology (FMO) and it also
provides a communication between FM representation and FMO. A set of FOL rules is
developed and applied using Prolog on the FMO to deal with defects in FMs. These rules
identify defects with their causes and provide corrections in a user-friendly natural
language which are easily understandable by PL developers. This information assists
developers to eliminate relationships involved in the source of defects to resolve defects.
The proposed approach is validated using a corpus of 108 models which includes the
maximum size of real-world FMs and automatically-generated 3-CNF-FMs (considered
as the toughest benchmark in SPL) available in online software product lines online tools
repository as well as models generated using the FeatureIDE tool. The results of
experiment evaluation show that the approach is effective, accurate and scalable as it
handles defects in large-sized FMs up to 30,000 features. As defects are found and
resolved early in the development process of FM, consequently, it allows deriving defect
free valid software products from PL by subsequently enhancing the reusability and
quality of FMs in SPL.
Keywords: Software product line, Product line model, Feature model, Feature model
ontology, Rule-based approach, Ontology, Dead feature, False-optional feature, Void
model, Inconsistency, Redundancy, Wrong cardinality, Defects, First-order logic,
Identification, Cause, Correction, Reusability, Quality.
