Reengineerability: metrics for software reengineering for reuse
Jr. Floyd Guyton Patterson · 1996
Software management needs a basis upon which to decide whether to modernize, how to modernize, and how much to modernize legacy software systems. The research described in this dissertation takes a first step toward providing such a basis by measuring the improvement in reusability expected through reengineering. Using a linear regression model, it is shown that certain metrics can be used to predict an improvement in reusability. A software product's potential for improvement in reusability through reengineering is referred to as reengineerability for reuse. An experiment was designed and carried out using software reengineered from FORTRAN-77 to object-oriented designed Ada-83 at the NASA Johnson Space Center. The procedural problem was to identify and validate a collection of reengineerability-for-reuse metrics and measures for use in reengineering FORTRAN-77 function-oriented designed software code components into Ada-83 object-oriented designed software. The software was partitioned into 32 experimental units, each a code pair that consisted of an Ada-83 object together with the functionally equivalent FORTRAN-77 code. Each of the 32 code pairs was evaluated using the candidate measures. Pearson product-moment correlation testing, using a coefficient threshold of 0.95, indicated the association between the original levels of the reusability measures in the FORTRAN-77 and the improvement in these same measures after reengineering. Framing the problem involved seven preliminary conceptual stages: (1) choosing a measurement model; (2) defining a software reengineering life cycle model; (3) defining a framework for reengineerability using the reengineering life cycle model; (4) defining a reengineering process model; (5) postulating from these models certain, possibly useful, reengineerability measures and metrics; (6) performing an extensive literature study using ninety-nine published works to derive a list of software characteristics that various researchers have deemed relevant to reengineering, reuse, or maintenance; and (7) creating for experimental testing a structured set of candidate measures by organizing, in terms of the models and predictions developed in stages (2) through (5), the list of factors from the literature. Our metric and statistical analysis yielded fourteen reengineerability for reuse measures organized under three metrics: understandability, effort, and coupling.