Signature matching: a key to reuse

Software reuse is only effective if it is easier to locate (and appropriately modify) a reusable component than to write it from scratch. We present signature matching as a method for achieving this goal by using signature information easily derived from the component. We consider two kinds of software components, functions and modules, and hence two kinds of matching, function mathcing and module matching. The signature of a function is simply its type; the signature of a module is a multiset of user-defined types and a multiset of function signatures. For both functions and modules, we consider not just exact match, but also various flavors of relaxed match. We briefly describe an experimental facility written in Standard ML for performing signature matching over a library of ML functions.

[1]  Koichi Furukawa,et al.  Proceedings of the eighth international conference on Logic programming , 1991 .

[2]  Robin Milner,et al.  Definition of standard ML , 1990 .

[3]  Susan P. Arnold,et al.  The Reuse System: Cataloging and Retrieval of Reusable Software , 1988, IEEE Computer Society International Conference.

[4]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[5]  Jeannette M. Wing,et al.  Thoughts on a Larch/ML and a New Application for LP , 1992, Larch.

[6]  Jeannette M. Wing,et al.  Specifications as Search Keys for Software Libraries , 1991, ICLP.

[7]  R. Prieto-Diaz,et al.  Classification of reusable modules , 1989 .

[8]  R S Pressman,et al.  Software engineering: a practitioner's approach (2nd ed.) , 1986 .

[9]  Mikael Rittri,et al.  Using types as search keys in function libraries , 1989, Journal of Functional Programming.

[10]  Colin Runciman,et al.  Retrieving re-usable software components by polymorphic type , 1989, Journal of Functional Programming.

[11]  Peter G. Harrison,et al.  Functional Programming , 1988 .

[12]  O. S. Andersen,et al.  Concepts and Models , 1978, Membrane Transport in Biology.

[13]  Ted J. Biggerstaff,et al.  Software reusability: vol. 1, concepts and models , 1989 .

[14]  Mikael Rittri Retrieving Library Identifiers via Equational Matching of Types , 1990, CADE.

[15]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[16]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[17]  R. Pressman Software Engineering: a Practioner''s approach , 1987 .

[18]  W. W. Agresti,et al.  The Minnowbrook workshop on software reuse: a summary report , 1988 .