Tax-PLEASE—Towards Taxonomy-Based Software Product Line Engineering
Modern software systems, in particular in mobile and cloud-based applications, exist in many different variants in order to adapt to changing user requirements or application contexts. Software product line engineering allows developing these software systems by managed large-scale reuse in order to achieve shorter time to market. Traditional software product line engineering approaches use a domain variability model which only captures the configuration options of the product variants, but does not provide any guideline for designing and implementing reusable artifacts. In contrast, software taxonomies structure software domains from an abstract specification of the functionality to concrete implementable variants by successive correctness-preserving refinements. In this paper, we propose a novel software product line engineering process based on a taxonomy-based domain analysis. The taxonomy’s hierarchy provides guidelines for designing and implementing the product line’s reusable artifacts while at the same time specifying possible configuration options. By deriving reusable product line artifacts from a software taxonomy, the well-defined structuring of the reusable artifacts yields improved maintainability and evolvability of the product line.
KeywordsTaxonomy-Based Software Construction (TABASCO) Software Product Line (SPL)
This work was partially supported by the DFG (German Research Foundation) under grant SCHA1635/2-2, by the NRF (South African National Research Foundation) under grants 81606 and 93063, and by the European Commission within the project HyVar (grant agreement H2020-644298).
- 1.Broy, M.: Program construction by transformations: a family tree of sorting programs. In: Biermann, A.W., Guiho, G. (eds.) Computer Program Synthesis Methodologies. NATO Advanced Study Institutes Series, vol. 95, pp. 1–49. Springer, Netherlands (1981)Google Scholar
- 2.Cleophas, L., Watson, B.W.: Applying and spicing up TABASCO: taxonomy-based software and how to increase its usability. In: Formal Aspects of Computing—Essays dedicated to Derrick Kourie, pp. 173–183, Shaker Verlag (2013)Google Scholar
- 3.Cleophas, L., Watson, B.W., Kourie, D.G., Boake, A., Obiedkov, S.A.: TABASCO: using concept-based taxonomies in domain engineering. S. Afr. Comput. J. 37, 30–40 (2006)Google Scholar
- 4.Cleophas, L., Algorithms, T.: Two Taxonomies and a Toolkit. Ph.D. thesis, TU Eindhoven, April 2008Google Scholar
- 5.Coplien, J.O.: Multi-Paradigm DESIGN for C++. Addison-Wesley, Boston (1998)Google Scholar
- 7.Gamma, E., Helm, R., Johnson, R., Vlissides, J., Patterns, D.: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)Google Scholar
- 8.Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, DTIC Document (1990)Google Scholar
- 11.Schaefer, I., Seidl, C., Cleophas, L., Watson, B.W.: SPLicing TABASCO: Custom-Tailored Software Product Line Variants from Taxonomy-Based Toolkits. In: SAICSIT 2015, pp. 34:1–34:10. ACM (2015)Google Scholar
- 12.Schmid, K., Rabiser, R., Grünbacher, P.: A comparison of decision modeling approaches in product lines. In: VaMoS 2011. ACM (2011)Google Scholar
- 13.Watson, B.W.: Taxonomies and Toolkits of Regular Language Algorithms. Ph.D. thesis, TU Eindhoven (1995)Google Scholar