Our lab is not only about research: we do a lot of development using Java, Python, Javascript, Haskell and other languages in combination with advanced libraries and frameworks. This development experience was very helpful during my job interviews, and employers were impressed by the projects we develop here in the lab.
What is a Feature?
A qualitative study of features in industrial software product lines.
What is a Feature?
The notion of features is commonly used to describe the functional and non-functional characteristics of a software system. In software product line engineering, features often become the prime entities of software reuse and are used to distinguish the individual products of a product line. Properly decomposing a product line into features, and correctly using features in all engineering phases, is core to the immediate and long-term success of such a system. Although many definitions of the term feature exist -- not mentioning all the different feature modeling notations -- many companies are uncertain when to introduce a feature and how to realize it.
Empirical Study
We conduct an empirical study of actual features engineered in industry. Our goals are: (i) to improve the empirical understanding of the notion of features, (ii) to present concrete examples of features in all their different facets, (iii) to analyze successful and failed practices, and (iv) to develop a prediction model for features. The study is based on semi-structured interviews with a range of roles involved with software engineering, such as developers, architects, domain experts, team leads, or marketing experts.
Benefit
If you participate, your involvement will contribute to the understanding of feature-oriented software engineering in practice -- to build better tools and methodologies. The interview will not only allow your organization to reflect on the existing practices, but also to learn about other companies’ practices and experiences.
Interviews
The interview will take around 45-60 minutes and comprise questions about a selection of 3-4 features. We will ask you to select one 'typical', one 'good', one 'bad', and one 'outlier' feature that you were involved with or familiar with. It is up to you to decide which features are considered as typical/good/bad/outlier. A typical feature would be a very average feature, neither especially good, bad, or in any sense an outlier. A good feature could be one that is well-received by stakeholders, popular with customers, commercially successful, or on-time, on-budget, easily reusable, or has a low defect count. A bad feature could be one that is problematic, troublesome, difficult to develop, confusing, buggy, or which destroyed user confidence, showed unexpected behavior. Finally, an outlier feature is a rather untypical feature, but which is still considered and managed as a feature. In the main part of the interview, we have around 20 short questions about different 'facets' of each feature. For instance, we are interested why the feature was introduced, how it was defined, realized or tested, how it evolved, and how its relationship to other features is. We are especially interested in the experiences and the rationales behind any decisions taken. The interview will be recorded, and later transcribed and analyzed. The recordings and transcriptions will remain absolutely confidential. Before any publication of the results, we will get back to you for a confirmation.
Results
First results from three companies are available in a paper published at the Software Product Line Conference (SPLC) 2015 (see the first literature reference below). The planned extensions to this work will be a feature prediction model and a feature description language.
Team Members
- Martin Becker (Fraunhofer IESE)
- Thorsten Berger (Univ. of Gothenburg, Chalmers Univ. of Technology, University of Waterloo)
- Marsha Chechik (University of Toronto)
- Krzysztof Czarnecki (University of Waterloo)
- Paul Grünbacher (University of Linz)
- Daniela Rabiser (University of Linz)
- Julia Rubin (Massachusetts Institute of Technology)
- Adeline Schäfer (Fraunhofer IESE)
Related Former Publications
This work follows-up on our previous studies, specifically:
- "What is a Feature? A Qualitative Study of Features in Industrial Software Product Lines", 19th International Software Product Line Conference (SPLC), 2015.
- "A survey of variability modeling in industrial practice", 7th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), 2013.
- "Three Cases of Feature-Based Variability Modeling in Industry", ACM/IEEE 17th International Conference on Model Driven Engineering Languages and Systems (MODELS), 2014.