Contributions of In Virtuo and In Silico Experiments for the Future of Empirical Studies in Software Engineering

Empirical software engineers usually use a two-staged taxonomy based on the terms in vivo or in vitro, according the control level that can be attained upon the environment where these studies are executed. Despite its importance, this taxonomy does not capture relevant issues concerned with different study categories, mainly those exploring computer models. We faced this limitation when classifying experiments regarding software project management in which we were involved. By analyzing other sciences that also apply experiments to support their research; we observe that the in vivo/in vitro taxonomy has been extended to accommodate the use of computer models. Two new experiment classes (namely in virtuo and in silico) complement the original taxonomy. They regard the use of computer models to simulate the environment, the object under analysis and the subjects that take part in an experimental study. When applied to the software engineering experiments, this four-staged taxonomy helped us to classify our studies, revealing additional experiment features not observed for the conventional studies yet. In this paper we propose the use of this four-staged taxonomy for categorizing software engineering experiments and evaluate some implications of using in virtuo and in silico experiments in software engineering. Besides, based on the possible contributions such studies can bring, we propose some topics to compose a research agenda for the future of empirical software engineering.

[1]  Pamela Morris,et al.  Statistics, a first course , 1981 .

[2]  R C Shreckengost,et al.  Dynamic simulation models: how valid are they? , 1985, NIDA research monograph.

[3]  Nicholas J. Kozel,et al.  Self-report methods of estimating drug use: Meeting current challenges to validity. , 1985, NIDA research monograph.

[4]  J. Graham,et al.  First Step , 2015, Annals of Internal Medicine.

[5]  Sheldon M. Ross,et al.  A Course in Simulation , 1990 .

[6]  J. Forrester Industrial Dynamics , 1997 .

[7]  K. Hayhurst Framework for Small-Scale Experiments in Software Engineering Guidance and Control Software Project: Software Engineering Case Study , 1998 .

[8]  Ken-ichi Matsumoto,et al.  Ginger2: An Environment for Computer-Aided Empirical Software Engineering , 1999, IEEE Trans. Software Eng..

[9]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[10]  Jochen Ludewig,et al.  Simulation in software engineering training , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[11]  Jeffrey C. Carver,et al.  An empirical methodology for introducing software processes , 2001, ESEC/FSE-9.

[12]  Denis Gillet,et al.  A Virtual Assistant for Web-Based Training in Engineering Education , 2002, Intelligent Tutoring Systems.

[13]  Marvin V. Zelkowitz,et al.  Experimental Validation of New Software Technology , 2003, Lecture Notes on Empirical Software Engineering.

[14]  Paulo F. Pires,et al.  Structural genomic workflows supported by Web services , 2003, 14th International Workshop on Database and Expert Systems Applications, 2003. Proceedings..

[15]  Alan H. Karp,et al.  E-speak e-xplained , 2003, CACM.

[16]  Padmal Vitharana Risks and challenges of component-based software development , 2003, CACM.

[17]  Leandro Soares Indrusiak,et al.  Reducing Authoring Costs of Online Training in Microelectronics Design by Reusing Design Documentation Content , 2003, MSE.

[18]  Márcio de Oliveira Barros,et al.  Supporting risks in software project management , 2004, J. Syst. Softw..