An Empirical Investigation of Organic Software Product Lines

This manuscript has been accepted, final publication details to be added.

Publication (LINK)

[Final Citation]

Abstract

Software product line engineering is a best practice for managing reuse in families of software systems that is increasingly being applied to novel and emerging domains. In this work we investigate the use of software product line engineering in one of these new domains, synthetic biology. In synthetic biology living organisms are programmed to perform new functions or improve existing functions. These programs are designed and constructed using small building blocks made out of DNA. We conjecture that there are families of products that consist of common and variable DNA parts, and we can leverage product line engineering to help synthetic biologists build, evolve, and reuse DNA parts. In this paper we perform an investigation of domain engineering that leverages an open-source repository of more than 45,000 reusable DNA parts. We show the feasibility of these new types of product line models by identifying features and related artifacts in up to 93.5% of products, and that there is indeed both commonality and variability. We then construct feature models for four commonly engineered functions leading to product lines ranging from 10 to 7.5 × 10^20 products. In a case study we demonstrate how we can use the feature models to help guide new experimentation in aspects of application engineering. Finally, in an empirical study we demonstrate the effectiveness and efficiency of automated reverse engineering on both complete and incomplete sets of products. In the process of these studies, we highlight key challenges and uncovered limitations of existing SPL techniques and tools which provide a roadmap for making SPL engineering applicable to new and emerging domains.

This site includes all artifacts for our EMSE publication titled An Empirical Investigation of Organic Software Product Lines. A zip file of all artifacts can be obtained here, each directory contains a readme explaining how to use each artifact. Otherwise individual artifacts are in links in the subpages.

Paper Roadmap

Feasibility Study

Our first study evaluates the feasibility of organic software products lines (OSPLs). In this feasibility study we ask two questions:

Case Study

In this study we investigate what benefits organic software product line engineering can provide in practice. We evaluate whether OSPL engineering can help us reason about a system while performing different tasks of development which include (a) building and understanding the product space, (b) choosing products to build and test, and (c) communicating domain knowledge to the broader community.

Empirical Study

Effectiveness and Efficiency of Automated Reverse Engineering

An empirical evaluation of the effectiveness and efficiency of automated reverse engineering in the domain of organic software product lines. In order for reverse engineering to be practical and beneficial, it must be both correct (effective) and efficient. Thus we ask the following research question:

Contact

Please send any correspondence to: mcashman.isu@gmail.com; mcohen@iastate.edu; jfiresto@cse.unl.edu

Acknowledgments

We would like to thank the Haynes Lab at Emory University (formally Arizona State University) for sharing additional artifacts with us, especially Dr. Karmella A. Haynes and Dr. Stefan Tekel. This work is supported in part by NSF Grant CCF-1901543, National Institute of Justice Grant 2016-R2-CX-0023, and NSF Grant CBET-1805528. This work is also supported by ORNL Post-Doc Educational Investment funds provided by the Office of Biological and Environmental Research’s Genomic Science program within the US Department of Energy Office of Science, under award number DE-AC05-00OR22725.