Computing similarity in a reuse library system: an AI-based approach

This paper presents an AI based library system for software reuse, called AIRS, that allows a developer to browse a software library in search of components that best meet some stated requirement. A component is described by a set of (feature, term) pairs. A feature represents a classification criterion, and is defined by a set of related terms. The system allows to represent packages (logical units that group a set of components) which are also described in terms of features. Candidate reuse components and packages are selected from the library based on the degree of similarity between their descriptions and a given target description. Similarity is quantified by a nonnegative magnitude (distance) proportional to the effort required to obtain the target given a candidate. Distances are computed by comparator functions based on the subsumption, closeness, and package relations. We present a formalization of the concepts on which the AIRS system is based. The functionality of a prototype implementation of the AIRS system is illustrated by application to two different software libraries: a set of Ada packages for data structure manipulation, and a set of C components for use in Command, Control, and Information Systems. Finally, we discuss some of the ideas we are currently exploring to automate the construction of AIRS classification libraries.

[1]  David W. Embley,et al.  A knowledge structure for reusing abstract data types , 1987, ICSE '87.

[2]  Ruben Prieto-Diaz A software classification scheme (reusability, libraries, development) , 1985 .

[3]  T. Biggerstaff,et al.  Reusability Framework, Assessment, and Directions , 1987, IEEE Software.

[4]  Ruben Prieto-Diaz,et al.  Domain analysis for reusability , 1988 .

[5]  Rubén Prieto Díaz,et al.  A software classification scheme , 1985 .

[6]  T. Biggerstaff,et al.  Reusability Framework, Assessment, and Directions , 1987, IEEE Software.

[7]  Premkumar T. Devanbu,et al.  LaSSIE: a knowledge-based software information system , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

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

[9]  Grady Booch,et al.  Book Reviews , 1936, Computer.

[10]  Drew McDermott,et al.  Introduction to artificial intelligence , 1986, Addison-Wesley series in computer science.

[11]  Y. S. Maarek,et al.  The use of lexical affinities in requirements extraction , 1989, IWSSD '89.

[12]  Nils J. Nilsson,et al.  Principles of Artificial Intelligence , 1980, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[13]  Paolo A. Straub,et al.  Semantics of the extensible description formalism , 1990 .

[14]  Ian Sommerville,et al.  An information retrieval system for software components , 1988, SIGF.

[15]  Grady Booch,et al.  Software Component with ADA , 1987 .

[16]  Eugene Charniak,et al.  Artificial Intelligence Programming , 1987 .

[17]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

[18]  William B. Frakes,et al.  An information system for software reuse , 1988 .

[19]  H. Dieter Rombach MVP-L: a language for process modeling in-the-large , 1991 .

[20]  Victor R. Basili,et al.  Tailoring the software process to project goals and environments , 1987, ICSE '87.