Selecting reusable stand-alone routines: a proposal and a case study ?
Almost daily engineers write, mainly from scratch, ad hoc programs suitable to solve very specific problems. In order to provide assistance to engineers willing to develop their programs through white-box reuse, it is mandatory to offer them repositories of software components populated with stand-alone routines selected according to software metrics able to measure the code complexity. Our selection approach is inspired to that previously adopted by Caldiera and Basili in a well-known paper, indeed, we use the same classical metrics, namely: volume, cyclomatic complexity and regularity. In essence, this paper represents both a refinement and a replication of the experiment performed by Caldiera and Basili, being the domain of the software investigated and the structure of the software itself the two major differences. In order to carry out the experiment, it was necessary to adapt the extremes of the values of the metrics mentioned above to our reference context which is very different from that Caldiera and Basili referred to. The adaptation was not trivial because in the case of routines being part of software libraries it is not possible to proceed as they did. In this paper, a general strategy suitable to calibrate their original reusability model is given. To validate the proposal, the strategy is instantiated to the domain of mathematical software. By referring to the calibrated reusability model, we carried out a large scale empirical investigation in order to select candidate reusable stand-alone (Fortran) routines from two commercial libraries belonging to the mathematical domain totally adding up to 2500 routines. The second part of the paper reports about such an experiment.
metrics code complexity libraries of software components engineering software mathematical routines