PhD/MSc Thesis resourcesThe title of my MSc thesis (and also the working title of my PhD thesis) is Problem-Oriented Modelling and Verification of Software Product Lines. It was supervised by
Prof. P. Heymans and Prof. P.-Y. Schobbens at the University of Namur and defended in June 2007.
In the context of the thesis, I spent four month in Milton Keynes, United Kingdom, from October 2006 to January 2007. I visited the Centre for Research in Computing at the Department of Computing at the The Open University, under the supervision of Prof. Bashar Nuseibeh.
You can read the abstract of the thesis below. Its main contribution is a redefinition of the terms feature and feature interaction in the light of Zave and Jackson's requirements engineering framework, which leads to a conceptual method for the detection of feature interactions in software product lines. A proof-of-concept instance of this approach was developed as an Eclipse plugin, FIFramework. In my PhD studies I am currently extending this work.
The thesis, as well as slides used at the defense can be downloaded using the links below:
Download PDF file (1,7 Mb)
Download presentation slides (low quality, high quality upon request)
We also published several papers that draw content from the MSc thesis (for details see the bibliography):
Download VaMoS'07 Workshop paper
Download ICFI'07 Doctoral Symposium short paper published by IOS Press
Download FASE'08 conference paper published in LNCS 4961, FASE'08
Download IWAAPF'08 Workshop paper published by ACM, IWAAPF @ICSE'08
Eclipse plugin for automated verification
One aspect of the thesis was the development of a verification tool, called FIFramework, as a plugin for the Eclipse platform. It is basically an Ecplise front-end for feature interaction detection using the event calculus.
Download (latest version from 30-01-2008)
New: The most recent update includes some bugfixes as well as a pre-compiled version of Decreasoner and most of its dependencies for Win32 and MacOSX Intel platforms. Installing the plugin should now be a matter of minutes.
Installation. Unzip the archive and follow the steps of the readme file that's in it.
Requirements. Eclipse is needed. Decreasoner, the event calculus implementation used to do the model checking, is required if you want to do any automated verification. There is a pre-compiled version of Decreasoner in the zip archive. If you are brave, you can also install it manually as explained here. Note that Decreasoner has itself other dependencies such as Python as well as Cygwin if you want to run it on a windows platform.
Usage. For a crash course simply play around with the two examples (the smart home, or the lights units) that are included in the zip download. Copy their contents into an empty project directory, open a feature description, try the toolbar buttons and see if this makes sense for you. Detailed instructions and technical details can be found in the thesis.
Abstract
Software product lines engineering is an emerging software engineering paradigm. It institutionalises reuse, which is achieved through the development of
a set of reusable core assets shared among all members of the product line. Requirements for a software product line are thus expressed in terms of features
shared by all members of the product line and distinct features of individual
members. The so-called variability of the software product line is generally
expressed at a high level of abstraction with feature diagrams. When examining the different feature diagram notations suggested in the literature, one can
observe that there is no consensus as to what features in a feature diagram actually represent. Furthermore, feature diagrams generally abstract the underlying
complexity of a feature to a label. Given the ubiquity of today?s computing,
however, the complexity that stems from a system?s integration into its physical
context needs to be made explicit.
Motivated by the lack of physical context and the uncertainty of what a feature represents, we suggest to use the problem frames approach as an approach
for analysing requirements in product line development. Firstly, the problem
frames approach is based on a well established requirements engineering framework, enforcing the distinction between requirements, domain assumptions and
specifications, and hence clarifying the meaning of features. Secondly, it emphasises and provides appropriate means for modelling the physical context of
features.
We first illustrate these ideas on a sea buoy control system example. We
show how feature diagrams and problem frames can be used as complementary
techniques and how feature diagrams are indeed enriched by problem frames.
We then go on to develop an approach for automated detection of feature interactions in the environment, which is based on environment models expressed
with problem diagrams. Descriptions are furthermore expressed formally with
the event calculus, allowing for automated reasoning. Based on this approach, a
proof-of-concept tool implementation is presented, demonstrating its automatable aspects. The approach is finally illustrated on a smart home control system
case.
Download the whole thesis (1,7 Mb) |