This Article 
 Bibliographic References 
 Add to: 
Reusing Analogous Components
March-April 1997 (vol. 9 no. 2)
pp. 341-349

Abstract—Using formal specifications to represent software components facilitates the determination of reusability because they more precisely characterize the functionality of the software, and the well-defined syntax makes processing amenable to automation. This paper presents an approach, based on formal methods, to the search, retrieval, and modification of reusable software components. From a two-tiered hierarchy of reusable software components, the existing components that are analogous to the query specification are retrieved from the hierarchy. The specification for an analogous retrieved component is compared to the query specification to determine what changes need to be applied to the corresponding program component in order to make it satisfy the query specification.

[1] G. Caldiera and V. Basili, "Identifying and Qualifying Reusable Software Components," Computer, vol. 24, no. 2, pp. 61-70, Feb. 1991.
[2] H. Mili, F. Mili, and A. Mili, Reusing Software: Issues and Research Directions IEEE Trans. Software Eng., vol. 21, no. 6, pp. 528-562, June 1995.
[3] J.-J. Jeng and B.H.C. Cheng, "Using Automated Reasoning to Determine Software Reuse," Int'l J. Software Eng. and Knowledge Eng., vol. 2, no. 4, pp. 523-546, Apr. 1992.
[4] J.M. Wing, “A Specifier's Introduction to Formal Methods,” IEEE Computer, vol. 23, pp. 8–24, Sept. 1990.
[5] U. Waldmann, "Semantics of Order-Sorted Specifications," Theoretical Computer Science, vol. 94, pp. 1-35, 1992.
[6] B.H.C. Cheng and J.-J. Jeng, "Reusing Analogous Components," Technical Report MSU-CPS-94-28, Dept. of Computer Science, Michigan State Univ., East Lansing, Mich., Apr. 1994.
[7] D. Hartman, "Unclogging Distributed Computing," IEEE Spectrum, May 1992, pp. 36-39.
[8] J.-J. Jeng and B.H.C. Cheng, "Using Formal Methods to Construct a Software Component Library," Lecture Notes in Computer Science, vol. 717, pp. 397-417, Sept. 1993.
[9] N. Dershowitz, "Program Abstraction and Instantiation," ACM Trans. Programming Languages and Systems, vol. 7, pp. 446-477, July 1985.
[10] N. Maiden and A. Sutcliffe, “Exploiting Reusable Specification Through Analogy,” Comm. ACM, Apr. 1992, pp. 55‐64.
[11] C.-H. Lung and J.E. Urban, "Analogical Approach for Software Reuse," Proc. Golden West Int'l Systems,Reno, Nev., June1-3, 1992.
[12] J.J. Jeng and B.H.C. Cheng, "A Formal Approach to Reusing More General Components," Proc. IEEE Ninth Knowledge-Based Software Eng. Conf., pp. 90-97.Monterey, Calif., Sept. 1994.
[13] G.C. Gannod and B.H.C. Cheng, "Strongest Postcondition Semantics for Reverse Engineering," J. Automated Software Eng., vol. 3, pp. 139-164, June 1996.
[14] R.H. Bourdeau and B.H.C. Cheng, “A Formal Semantics of Object Models,” IEEE Trans. Software Eng., vol. 21, pp. 799–821, Oct. 1995.

Index Terms:
Software reuse, formal methods, analogical reasoning, program modification.
Betty H.C. Cheng, Jun-Jang Jeng, "Reusing Analogous Components," IEEE Transactions on Knowledge and Data Engineering, vol. 9, no. 2, pp. 341-349, March-April 1997, doi:10.1109/69.591458
Usage of this product signifies your acceptance of the Terms of Use.