An evolutionary approach to constructing effective software reuse repositories

Repositories for software reuse are faced with two interrelated problems: (1) acquiring the knowledge to initially construct the repository and (2) modifying the repository to meet the evolving and dynamic needs of software development organizations. Current software repository methods rely heavily on classification, which exacerbates acquistition and evolution problems by requiring costly classification and domain analysis efforts before a repository can be used effectively, This article outlines an approach that avoids these problems by choosing a retrieval method that utilizes minimal repository structure to effectively support the process of finding software conponents. The approach is demonstrated through a pair of proof-of-concept prototypes: PEEL, a tool to semiautomatically identify reusable components, and CodeFinder, a retrieval system that compensates for the lack of explicit knowledge structures through a spreading activation retrieval process. CodeFinder also allows component representations to be modified while users are searching for information. This mechanism adapts to the changing nature of the information in the repository and incrementally improves the repository while people use it. The combination of these techniques holds potential for designing software repositories that minimize up-front costs, effectively support the search process, and evolve with an organization's changing needs.

[1]  William B. Frakes,et al.  An Empirical Study of Representation Methods for Reusable Software Components , 1994, IEEE Trans. Software Eng..

[2]  Scott Henninger,et al.  Information access tools for software reuse , 1995, J. Syst. Softw..

[3]  Ralph E. Johnson,et al.  Surveying current research in object-oriented design , 1990, CACM.

[4]  Michael C. Mozer,et al.  Inductive Information Retrieval Using Parallel Distributed Computation. , 1984 .

[5]  Nicholas J. Belkin,et al.  Retrieval techniques , 1987 .

[6]  Daniel E. Rose,et al.  A Connectionist and Symbolic Hybrid for Improving Legal Research , 1991, Int. J. Man Mach. Stud..

[7]  Stephen P. Harter,et al.  Psychological Relevance and Information Science , 1992, J. Am. Soc. Inf. Sci..

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

[9]  John F. Sowa,et al.  Principles of semantic networks , 1991 .

[10]  Ian Sommerville,et al.  A software components catalogue , 1989 .

[11]  Karen Spärck Jones Index term weighting , 1973, Inf. Storage Retr..

[12]  Yoelle Maarek,et al.  Full text indexing based on lexical relations an application: software libraries , 1989, SIGIR '89.

[13]  Rubén Prieto-Díaz Implementing faceted classification for software reuse , 1991, CACM.

[14]  Michael David Williams,et al.  What Makes RABBIT Run? , 1984, Int. J. Man Mach. Stud..

[15]  Gerard Salton,et al.  Improving retrieval performance by relevance feedback , 1997, J. Am. Soc. Inf. Sci..

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

[17]  Guillermo Arango,et al.  Domain Analysis and Software Systems Modeling , 1991 .

[18]  Gerard Salton,et al.  Term-Weighting Approaches in Automatic Text Retrieval , 1988, Inf. Process. Manag..

[19]  Richard Kuehn Belew,et al.  Adaptive information retrieval: machine learning in associative networks (connectionist, free-text, browsing, feedback) , 1986 .

[20]  Nicholas J. Belkin,et al.  Ask for Information Retrieval: Part II. Results of a Design Study , 1982, J. Documentation.

[21]  Victor R. Basili,et al.  Identifying and qualifying reusable software components , 1991, Computer.

[22]  Peter Freeman,et al.  Classifying Software for Reusability , 1987, IEEE Software.

[23]  James L. McClelland,et al.  An interactive activation model of context effects in letter perception: part 1.: an account of basic findings , 1988 .

[24]  Stefano Ceri,et al.  Toward megaprogramming , 1992, CACM.

[25]  Gail E. Kaiser,et al.  An Information Retrieval Approach For Automatically Constructing Software Libraries , 1991, IEEE Trans. Software Eng..

[26]  Jeffrey S. Poulin,et al.  A reuse metrics and return on investment model , 1993, [1993] Proceedings Advances in Software Reuse.

[27]  William B. Frakes,et al.  Representing reusable software , 1990 .

[28]  Baruch Fischhoff,et al.  Decision making in online searching , 1988, J. Am. Soc. Inf. Sci..

[29]  Louis M. Gomez,et al.  All the Right Words: Finding What You Want as a Function of Richness of Indexing Vocabulary. , 1990 .

[30]  Eric S. Raymond,et al.  Learning GNU Emacs , 1991 .

[31]  W Kintsch,et al.  Understanding and solving word arithmetic problems. , 1985, Psychological review.

[32]  Bruce A. Burton,et al.  The Reusable Software Library , 1987, IEEE Software.

[33]  Christopher J. Fox,et al.  Lexical Analysis and Stoplists , 1992, Information Retrieval: Data Structures & Algorithms.

[34]  Frank G. Halasz,et al.  Reflections on NoteCards: seven issues for the next generation of hypermedia systems , 1987, Hypertext.

[35]  B. Curtis,et al.  Cognitive issues in reusing software artifacts , 1989 .

[36]  George W. Furnas,et al.  Experience with an adaptive indexing scheme , 1985, CHI '85.

[37]  Ted J. Biggerstaff,et al.  An Assessment and Analysis of Software Reuse , 1992, Adv. Comput..

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

[39]  James L. McClelland,et al.  An interactive activation model of context effects in letter perception: I. An account of basic findings. , 1981 .

[40]  W. Bruce Croft,et al.  Support for Browsing in an Intelligent Text Retrieval System , 1989, Int. J. Man Mach. Stud..

[41]  P. Smolensky On the proper treatment of connectionism , 1988, Behavioral and Brain Sciences.

[42]  S. P. Harter Psychological relevance and information science , 1992 .

[43]  Susan T. Dumais,et al.  The vocabulary problem in human-system communication , 1987, CACM.

[44]  Nicholas J. Belkin,et al.  Information filtering and information retrieval: two sides of the same coin? , 1992, CACM.

[45]  Michael McGill,et al.  Introduction to Modern Information Retrieval , 1983 .

[46]  W. Freeman Second Commentary: On the proper treatment of connectionism by Paul Smolensky (1988) - Neuromachismo Rekindled , 1989 .

[47]  Scott Henninger,et al.  An Organizational Learning Approach to Domain Analysis , 1995, 1995 17th International Conference on Software Engineering.

[48]  G. Lakoff Women, fire, and dangerous things : what categories reveal about the mind , 1989 .

[49]  Premkumar T. Devanbu,et al.  LaSSIE—a knowledge-based software information system , 1991, ICSE '90.

[50]  R. Stallman EMACS the extensible, customizable self-documenting display editor , 1981, SIGPLAN SIGOA Symposium on Text Manipulation.

[51]  Terry Bollinger,et al.  Making reuse cost-effective , 1991, IEEE Software.

[52]  Nicholas J. Belkin,et al.  Ask for Information Retrieval: Part I. Background and Theory , 1997, J. Documentation.

[53]  James A. Hendler,et al.  Computing similarity in a reuse library system: an AI-based approach , 1992, TSEM.

[54]  William B. Frakes,et al.  Software reuse through information retrieval , 1986, SIGF.

[55]  Karen Sparck Jones A statistical interpretation of term specificity and its application in retrieval , 1972 .

[56]  Joyce J. Elam,et al.  Inside a software design team: knowledge acquisition, sharing, and integration , 1993, CACM.

[57]  Matthias Jarke,et al.  On the retrieval of reusable software components , 1993, [1993] Proceedings Advances in Software Reuse.

[58]  Peter W. Foltz,et al.  An empirical study of retrieval by reformulation on helgon , 1988 .

[59]  Scott Robert Henninger Locating relevant examples for example-based software design , 1993 .

[60]  Frank M. Shipman,et al.  Seeding, evolutionary growth and reseeding: supporting the incremental development of design environments , 1994, CHI '94.

[61]  G. Halasz Frank,et al.  Reflections on NoteCards: seven issues for the next generation of hypermedia systems , 1987, CACM.

[62]  Christine L. Borgman,et al.  All users of information retrieval systems are not created equal: An exploration into individual differences , 1989, Inf. Process. Manag..

[63]  Mark A. Simos,et al.  Organization domain modeling (ODM): formalizing the core domain modeling life cycle , 1995, SSR '95.

[64]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[65]  Will Tracz Reusability Comes of Age , 1987, IEEE Softw..

[66]  Scott Henninger,et al.  Using iterative refinement to find reusable software , 1994, IEEE Software.

[67]  Gerhard Fischer,et al.  Helgon: extending the retrieval by reformulation paradigm , 1989, CHI '89.

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

[69]  M. E. Maron,et al.  An evaluation of retrieval effectiveness for a full-text document-retrieval system , 1985, CACM.

[70]  Peter F. Patel-Schneider,et al.  Living wiht Classic: When and How to Use a KL-ONE-Like Language , 1991, Principles of Semantic Networks.

[71]  G. Lakoff,et al.  Women, Fire, and Dangerous Things: What Categories Reveal about the Mind , 1988 .

[72]  Neil A. M. Maiden,et al.  Exploiting reusable specifications through analogy , 1992, CACM.

[73]  Gerhard Fischer,et al.  Cognitive tools for locating and comprehending software objects for reuse , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[74]  A SimosMark Organization domain modeling (ODM) , 1995 .

[75]  Louis M. Gomez,et al.  All the right words: Finding what you want as a function of richness of indexing vocabulary , 1990, J. Am. Soc. Inf. Sci..