Determining the reuse worthiness of a component: Empirical and analytical approaches.
Creators: name: Mili, Rym.
Publisher: name: Université d'Ottawa / University of Ottawa
Year: 1997
Subjects: subject: Computer Science.

description: This dissertation deals with managerial aspects of software reuse; in particular, it attempts to define and compute a measure of reusability, whose purpose is to predict the savings potential of a software component prior to storing it in a reuse library. In Part I, titled Background, we give an overview of the state of the art and state of the practice of software reuse. Then we present a survey of past proposals of reusability measures and motivate the need for a new measure. Finally, we present some mathematical background that we use throughout the dissertation. One of the key premises of our work is a sharp distinction between defining a measure and figuring out how to compute it: in order to highlight this distinction, we deal with these two questions in separate parts. In Part II, titled Component Level ROI Model for Software Reuse, we define a basic measure of component reusability for two separate reuse lifecycle (synchronous lifecycle and asynchronous lifecycle) then we discuss a number of auxiliary measures that can be derived from the basic measure. In Part III, titled Estimating The Return on Investment, we discuss means to estimate the reusability of a component using the formulas presented in the previous part. To this effect we use empirical data as well as existing software cost estimation models, and present a software package that assists in computing the desired reusability measures. So far we have concerned ourselves with how to measure component reusability, without concern with understanding the mechanics of reusability (e.g. what features drive the reusability of a component up). In the remainder of the dissertation we discuss a formal basis of software reuse, whose purpose is to capture reuse related activities in a unified mathematical framework. In Part IV, titled A Formal Framework for Software Reuse, we discuss a formal basis for three crucial activities of software reuse, namely: the specification of user queries and component functionalities; the storage and retrieval of software components in a reuse library; the correctness preserving modification of a component to satisfy a user query that, presumably, the component almost satisfies. In Part V, titled Analytical Measures of Reusability, we discuss two analytical measures of distance between specifications, which can be used to measure the distance between a user query and an available software component. These measures of distance are: functional distance, which reflects the level of commonality between the functional properties of the specifications; structural distance, which reflects the amount of effort that it takes to modify a software component (represented by one specification) to satisfy a user query (represented by the other specification). Using these two distances, we attempt to define an analytical measure of component modifiability, which reflects the ease with which the component can be modified to satisfy a neighboring specification. (Abstract shortened by UMI.)