Assessing Relative Code Complexity Introduced by Optional Features to a Software Product Line

MPhil Thesis Defence


Title: "Assessing Relative Code Complexity Introduced by Optional
Features to a Software Product Line"

By

Mr. King Sun CHAN


Abstract

Software product line engineering (SPLE) is a software engineering 
discipline aiming to promote systematic software reuse. It is recurrently 
praised for its contribution to greatly increase developer’s productivity, 
reduce time to market and improve software quality. It is regarded as one 
of the most promising solutions to the desire of developing software with 
the mass production efficiency while having the flexibility of mass 
customization. Accompanying its great benefits, SPLE requires a high 
up-front investment. It has been reported that more than half 
practitioners implement a software product line (SPL) only after there are 
some similar products developed in an ad-hoc manner successfully gain the 
market. Due to its popularity, there is some research work on the topic of 
reengineering related products into a SPL. However, this work mainly 
focuses on feature identification and location, feature constraints 
discovery as well as reengineering the individual product artifacts into 
SPL artifacts. There is a gap to address supports in implementation of new 
features which are introduced to the product line to capture specific 
needs of additional market segments. In this thesis, we develop methods 
which leverage 1) the dependency relationships between features; 2) code 
interaction between features at method granularity, to partition features 
into simple and complex sets. With this information, new features can be 
implemented by developers with appropriate experience and simple features 
are implemented first to keep the code complexities of intermediate SPL 
instances as low as possible to reduce overall implementation time. The 
effectiveness of these methods is evaluated on 5 product lines with more 
than 28,000 configurations and 1.27x109 possible implementation order 
sequences. The results of the evaluation show that code interaction method 
can partition features into simple and complex sets correctly for all 
product lines while feature dependency method can partition features 
correctly for 3 out of 4 product lines and cannot partition features for 
one product line.


Date:			Thursday, 28 June 2018

Time:			10:00am - 12:00noon

Venue:			Room 5560
 			Lifts 27/28

Committee Members:	Prof. Shing-Chi Cheung (Supervisor)
 			Dr. Kai Chen (Chairperson)
 			Dr. Yangqiu Song


**** ALL are Welcome ****