The software-cycle models for re-engineering and reuse

John W. Bailey, Victor Robert Basili · 1991

This paper reports on the progress of a study which will contribute to our ability to perform high-level, component-based programming by describing means to obtain useful components, methods for the contlguration and integration of those components, and an underlying economic model of the costs and benefits associated with this approach to reuse.One goal of the study is to develop and demonstrate methods to recover reusable components from domain-specific software through a mmbination of tools, to perform the identification, extraction, and re-engineering of components, and domain experts, to direct the application of those tools.A second goal of the study is to enable the reuse of those components by identifying techniques for conf@ring and recombining the re-engineered software.This component-nxovery or software-cycle model addressesnot only the selection and re-engineering of components, but also their recombination into new programs.Once a model of reuse activities has been developed, the quant.iflcation of the costs and benefits of various reuse options will enable the development of an adaptable economic model of reuse, which is the principal goal of the overall study.This paper reports on the conception of the software-cycle model and on several supporting techniques of software recovery, measurement and reuse which will lead to the development of the &sired economic model. Motivation and ScopeMotivation for the development of an expert-assisted but highly structured and highly automatable model of software information capture and reuse stems in part from the recognition of the difficulty of using purely progmrnming component-based approaches to reuse libraries.For certain kinds of objects and components a strict programming component-based library is adequate.The success of object-oriented and object-based approaches have been the most notable in this regard.However, the inability for such libraries to capture a sufficient amount knowledge to dramatically reduce subsequent software development costs in a general and problem-independent way has also been observed.On the other hand, models of software reuse which utilize domain experts in pervasive and undirected ways are also unlikely to provide a complete solution due to the large amount of responsibility and effort which is centralized in the contribution of such experts.The present work provides a structured mo&l of information identification and reuse which is both feasible and suitable for further development and refinement.Using the Ada language, this paper provides examples of techniques for choosing, re-engineering, and recombining components into programs.It also describes rudimentary methods for quantifying the effort to extract reusable components horn existing programs as well as the effort to recombine them into new programs, It does not include the cataloging and retrieval of components, nor does it include a mechanism to quantify reusability based on empirically-derived frequency-of-use measures.It does model a proposed cycle of softwtue development, use, re-engineering, and reuse, but it dces not attempt to model other aspects of reuse within a software development environment, such as pure knowledge and experience.Other recent research papers and technical reports have covered this larger scope [Basili and Rombach], [Basili and Caldieral.

Read the paper · More papers on PaperTik