Many existing software systems can benefit from restructuring to reduce maintenance cost and improve reusability. Yet, intuition-based, ad hoc restructuring can be difficult and expensive, and can even make software structure worse. We introduce a quantitative framework for software restructuring. I
Restructuring Software: A Case Study
β Scribed by T. R. HOPKINS
- Publisher
- John Wiley and Sons
- Year
- 1996
- Tongue
- English
- Weight
- 800 KB
- Volume
- 26
- Category
- Article
- ISSN
- 0038-0644
No coin nor oath required. For personal study only.
β¦ Synopsis
We use knot count and path count metrics to identify which routines in the Level 1 basic linear algebra subroutines (BLAS) might benefit from code restructuring. We then consider how logical restructuring and the improvements in the facilities available from successive versions of Fortran have allowed us to improve the complexity of the code as measured by knot count, path count and cyclomatic complexity, and the user interface of one of the identified routines which computes the Euclidean norm of a vector. With these reductions in complexity we hope that we have contributed to improvements in the maintainability and clarity of the code. Software complexity metrics and the control graph are used to quantify and provide a visual guide to the quality of the software, and the performance of two Fortran code restructuring tools is reported. Finally, we give some indication of the cost of the extra numerical robustness offered by the BLAS routine over the use of new Fortran 90 intrinsic functions.
π SIMILAR VOLUMES
A software product line is a family of products that share common features to meet the needs of a market area. Systematic processes have been developed to dramatically reduce the cost of a product line. Such product-line engineering processes have proven practical and effective in industrial use, bu
Most legacy software systems were developed in imperative languages with traditional design approaches. Instead of continually maintaining these legacy systems in their original architecture and design at high cost, reengineering them to new systems with good design and architecture can significantl