skip to main content
article
Free Access

An evolutionary approach to constructing effective software reuse repositories

Published:01 April 1997Publication History
Skip Abstract Section

Abstract

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.

References

  1. BARNES, B. H. AND BOLLINGER, T.B. 1991. Making reuse cost-effective. IEEE Softw. 8, 1, 13-24. Google ScholarGoogle Scholar
  2. BATORY, D., SINGHAL, V., THOMAS, J., DASARI, S., GERACI, B., AND SIRKIN, M. 1994. The GenVoca model of software-system generators. IEEE Softw. 11, 5, 89-94. Google ScholarGoogle Scholar
  3. BELEW, R.K. 1987. Adaptive information retrieval: Machine learning in associative networks. Ph.D. dissertation, Tech. Rep. 4, Univ. of Michigan, Ann Arbor, Mich. Google ScholarGoogle Scholar
  4. BELKIN, N. J. AND CROFT, W.B. 1987. Retrieval techniques. Ann. Rev. Inf. Sci. Tech. 22, 109-145. Google ScholarGoogle Scholar
  5. BELKIN, N. J. AND CROFT, W.B. 1992. Information filtering and information retrieval: Two sides of the Same Coin? Commun. ACM 35, 12 (Dec.), 29-38. Google ScholarGoogle Scholar
  6. BELKIN, N. J., ODDY, R. N., AND BROOKS, H.M. 1982a. Ask for information retrieval: Part 1. J. Doc. 38, 2, 61-71.Google ScholarGoogle Scholar
  7. BELKIN, N. J., ODDY, R. N., AND BROOKS, H.M. 1982b. Ask for information retrieval: Part 2. J. Doc. 38, 3, 145-163.Google ScholarGoogle Scholar
  8. BIGGERSTAFF, T.g. 1992. An assessment and analysis of software reuse. Adv. Comput. 34, 1-57.Google ScholarGoogle Scholar
  9. BIGGERSTAFF, T. J. AND RICHTER, C. 1987. Reusability framework, assessment, and directions. IEEE Softw. 4, 2, 41-49.Google ScholarGoogle Scholar
  10. BLACKSHAW, L. AND FISCHOFF, B. 1988. Decision making in online searching. J. Am. Soc. Inf. Sci. 39, 6, 369-389.Google ScholarGoogle Scholar
  11. BLAIR, D. C. AND MARON, M.E. 1985. An evaluation of retrieval effectiveness for a full-text document-retrieval system. Commun. ACM 28, 4 (Apr.), 289-299. Google ScholarGoogle Scholar
  12. BOOCH, G. 1987. Software Components with ADA. Benjaman Cummings, Menlo Park, Calif. Google ScholarGoogle Scholar
  13. BORGMAN, C.L. 1989. All users of information retrieval systems are not created equal: An exploration into individual differences. Inf. Process. Manage. 25, 3, 237-251. Google ScholarGoogle Scholar
  14. BRACHMAN, R. J., McGUINNESS, D. L., PATEL-SCHNEIDER, P. F., RESNICK, L. A., AND BORGIDA, A. 1991. Living with CLASSIC: When and how to use a KL-ONE-like language. In Principles of Semantic Networks: Explorations in the Representation of Knowledge, J. F. Sowa, Ed. Morgan Kaufmann, San Mateo, Calif., 401-456.Google ScholarGoogle Scholar
  15. BURTON, B. A., ARAGON, R. W., BAILEY, S. A., KOEHLER, K. D., AND MAYES, L.A. 1987. The reusable software library. IEEE Softw. 4, 4, 25-33.Google ScholarGoogle Scholar
  16. CALDIERA, G. AND BASILI, V.R. 1991. Identifying and qualifying reusable software components. Computer 24, 2, 61-70. Google ScholarGoogle Scholar
  17. CAMERON, D. AND ROSENBLATT, B. 1991. Learning GNU Emacs. O'Reilly and Assoc., Sebastopol, Calif. Google ScholarGoogle Scholar
  18. CHEN, P. S., HENNICKER, R., AND JARKE, M. 1993. On the retrieval of reusable software components. In Advances in Software Reuse (Proceedings of the 2nd International Workshop on Software Reusability). IEEE Computer Society Press, Los Alamitos, Calif., 99-108.Google ScholarGoogle Scholar
  19. CURTIS, B. 1989. Cognitive issues in reusing software artifacts. In Software Reusability. Vol. 2, Applications and Experience, T. J. Biggerstaff and A. J. Perlis, Eds. Addison-Wesley, Reading, Mass., 269-287. Google ScholarGoogle Scholar
  20. DEVANBU, P., BRACHMAN, R. J., SELFRIDGE, P. G., AND BALLARD, B. W. 1991. LASSIE: A knowledge-based software information system. Commun. ACM 34, 5 (May), 34-49. Google ScholarGoogle Scholar
  21. FISCHER, G. AND NIEPER-LEMKE, H. 1989. HELGON: Extending the retrieval by reformulation paradigm. In Human Factors in Computing Systems, CHI '89 Conference Proceedings. ACM, New York, 333-352. Google ScholarGoogle Scholar
  22. FISCHER, G., HENNINGER, S. R., AND REDMILES, D.F. 1991. Cognitive tools for locating and comprehending software objects for reuse. In the 13th International Conference on Software Engineering. ACM, New York, 318-328. Google ScholarGoogle Scholar
  23. FISCHER, G., MCCALL, R., OSTWALD, J., REEVES, B., AND SHIPMAN, F. 1994. Seeding, evolutionary growth and reseeding: Supporting the incremental development of design environments. In Proceeding of the Conference on Computer-Human Interaction (CHI '94). ACM, New York, 292-298. Google ScholarGoogle Scholar
  24. FOLTZ, P. W. AND KINTSCH, W. 1988. An empirical study of retrieval by reformulation on HELGON. Tech. Rep. 88-9, Inst. of Cognitive Science, Univ. of Colorado, Boulder, Colo.Google ScholarGoogle Scholar
  25. Fox, C. 1992. Lexical analysis and stoplists. In Information Retrieval: Data Structures and Algorithms, W. B. Frakes and R. Baeza-Yates, Eds. Prentice-Hall, Englewood Cliffs, N.J., 102-130. Google ScholarGoogle Scholar
  26. FRAKES, W. B. AND GANDEL, P.B. 1990. Representing reusable software. Inf. Softw. Tech. 32, 10, 653-664. Google ScholarGoogle Scholar
  27. FRAKES, W. B. AND NEJMEH, B.A. 1987. Software reuse through information retrieval. In The 20th Hawaii International Conference on System Sciences. IEEE Computer Society Press, Los Alamitos, Calif., 530-535.Google ScholarGoogle Scholar
  28. FRAKES, W. B. AND POLE, T. 1994. An empirical study of representation methods for reusable software components. IEEE Trans. Softw. Eng. 20, 8, 617-630. Google ScholarGoogle Scholar
  29. FURNAS, G.W. 1985. Experience with an adaptive indexing scheme. In Human Factors in Computing Systems, CHI '85 Conference Proceedings. ACM, New York, 131-135. Google ScholarGoogle Scholar
  30. FURNAS, G. W., LANDAUER, T. K., GOMEZ, L. M., AND DUMAIS, S.T. 1987. The vocabulary problem in human-system communication. Commun. ACM 30, 11 (Nov.), 964-971. Google ScholarGoogle Scholar
  31. GOMEZ, L. M., LOCHBAUM, C. C., AND LANDAUER, T.K. 1990. All the right words: Finding what you want as a function of richness of indexing vocabulary. J. Am. Soc. Inf. Sci. 41, 8, 547-559.Google ScholarGoogle Scholar
  32. HALASZ, F. G. 1988. Reflections on notecards: Seven issues for the next generation of hypermedia systems. Commun. ACM 31, 7 (July), 836-852. Google ScholarGoogle Scholar
  33. HARTER, S.P. 1992. Psychological relevance and information science. J. Am. Soc. Inf. Sci. 43, 9, 602-615.Google ScholarGoogle Scholar
  34. HENNINGER, S. 1994. Using iterative refinement to find reusable software. IEEE Softw. 11, 5. Google ScholarGoogle Scholar
  35. HENNINGER, S. 1995. Information access tools for software reuse. J. Syst. Softw. 30, 3, 231-247. Google ScholarGoogle Scholar
  36. HENNINGER, S., LAPPALA, K., AND RAGHAVENDRAN, A. 1995. An organizational learning approach to domain analysis. In the 17th International Conference on Software Engineering. ACM Press, New York, 95-104. Google ScholarGoogle Scholar
  37. HENNINGER, S. R. 1993. Locating relevant examples for example-based software design. Ph.D. dissertation, Univ. of Colorado, Boulder, Colo. Google ScholarGoogle Scholar
  38. KINTSCH, W. AND GREENO, J.G. 1985. Understanding and solving word arithmetic problems. Psychol. Rev. 92, 109-129.Google ScholarGoogle Scholar
  39. LAKOFF, G. 1987. Women, Fire, and Dangerous Things: What Categories Reveal about the Mind. The University of Chicago Press, Chicago, Ill.Google ScholarGoogle Scholar
  40. MAAREK, Y. S. AND SMADJA, F.A. 1989. Full text indexing based on lexical relations, an application: Software libraries. In Proceedings of SIGIR '89. ACM, New York, 198-206. Google ScholarGoogle Scholar
  41. MAAREK, Y. S., BERRY, D. M., AND KAISER, G.E. 1991. An information retrieval approach for automatically constructing software libraries. IEEE Trans. Softw. Eng. 17, 8, 800-813. Google ScholarGoogle Scholar
  42. MAIDEN, N. A. AND SUTCLIFFE, A. G. 1992. Exploiting reusable specifications through analogy. Commun. ACM 35, 4 (Apr.), 55-64. Google ScholarGoogle Scholar
  43. MCCLELLAND, g. L. AND RUMELHART, D.E. 1981. An interactive activation model of context effects in letter perception: Part 1: An account of basic findings. Psychol. Rev. 88, 5, 375-407.Google ScholarGoogle Scholar
  44. MOZER, M.C. 1984. Inductive information retrieval using parallel distributed computation. ICS Rep. 8406, Inst. for Cognitive Science, Univ. of California--San Diego, La Jolla, Calif.Google ScholarGoogle Scholar
  45. OSTERTAG, E., HENDLER, J., PRIETO-DiAZ, R., AND BRAUN, C. 1992. Computing similarity in a reuse library system: An AI-based approach. ACM Trans. Softw. Eng. Methodol. 1, 3, 205-228. Google ScholarGoogle Scholar
  46. PATEL-SCHNEIDER, P. F., BRACHMAN, R. J., AND LEVESQUE, H.J. 1984. ARGON: Knowledge representation meets information retrieval. In Proceedings of the 1st Conference on Artificial Intelligence Applications (CAIA '84). IEEE Computer Society Press, Los Alamitos, Calif., 280 -286.Google ScholarGoogle Scholar
  47. POULIN, g. S. AND CARUSO, g.M. 1993. A reuse metrics and return on investment model. In Advances in Software Reuse. IEEE Computer Society Press, Los Alamitos, Calif., 152-166.Google ScholarGoogle Scholar
  48. PRIETO-DiAz, R. 1985. A software classification scheme. Ph.D. dissertation, Tech. Rep. 85-19, Univ. of California--Irvine, Irvine, Calif. Google ScholarGoogle Scholar
  49. PRIETO-DiAz, R. 1991. Implementing faceted classification for software reuse. Commun. ACM 35, 5 (May). Google ScholarGoogle Scholar
  50. PRIETO-DiAz, R. AND ARANGO, G. 1991. Domain Analysis and Software Systems Modeling. IEEE Computer Society Press, Los Alamitos, Calif. Google ScholarGoogle Scholar
  51. PRIETO-DiAz, R. AND FREEMAN, P. 1987. Classifying software for reusability. IEEE Softw. 4, 1, 6-16.Google ScholarGoogle Scholar
  52. ROSE, D. E. AND BELEW, R.K. 1991. A connectionist and symbolic hybrid for improving legal research. Int. J. Man Mach. Stud. 35, 1, 1-33. Google ScholarGoogle Scholar
  53. SALTON, G. AND BUCKLEY, C. 1988. Term weighting approaches in automatic text retrieval. Inf. Process. Manage. 24, 3, 513-525. Google ScholarGoogle Scholar
  54. SALTON, G. AND BUCKLEY, C. 1990. Improving retrieval performance by relevance feedback. J. Am. Soc. Inf. Sci. 41, 4, 288-297.Google ScholarGoogle Scholar
  55. SALTON, G. AND MCGILL, M.J. 1983. Introduction to Modern Information Retrieval. McGraw Hill, New York. Google ScholarGoogle Scholar
  56. SHAW, M. AND GARLAN, D. 1996. Software Architecture: Perspectives on an Emerging Domain. Prentice-Hall, Englewood Cliffs, N.J. Google ScholarGoogle Scholar
  57. SIMOS, M., CREPS, D., KLINGER, C., AND LEVINE, L. 1995. Organization domain modeling (ODM) guidebook. STARS-VC-A023/011/00, Unisys Corp., Reston, Va. Google ScholarGoogle Scholar
  58. SMOLENSKY, P. 1988. On the proper treatment ofconnectionism. Behav. Brain Sci. 11, 1-23.Google ScholarGoogle Scholar
  59. SOMMERVILLE, I. AND WOOD, M. 1986. A software components catalogue. In Intelligent Information Systems: Progress and Prospects. R. Davies, Ed. Ellis Horwood Limited, Chichester, U.K., 13-32.Google ScholarGoogle Scholar
  60. SPARCK-JONES, K. 1972. A statistical interpretation of term specificity and its application in retrieval. J. Doc. 28, 1, 11-21.Google ScholarGoogle Scholar
  61. SPARCK-JONES, K. 1973. Index term weighting. Inf. Storage Retriev. 9, 619-633.Google ScholarGoogle Scholar
  62. STALLMAN, R. M. 1981. EMACS, the Extensible, Customizable, Self-Documenting Display Editor. ACM SIGOA Newslett. 1, 1/2, 147-156. Google ScholarGoogle Scholar
  63. THOMPSON, Z. H. AND CROFT, W. B. 1989. Support for browsing in an intelligent text retrieval system. Int. J. Man Mach. Stud. 30, 639-668. Google ScholarGoogle Scholar
  64. WALZ, D. B., ELAM, J. J., AND CURTIS, B. 1993. Inside a software design team: Knowledge acquisition, sharing, and integration. Commun. ACM 36, 10 (Oct.), 62-77. Google ScholarGoogle Scholar
  65. WIEDERHOLD, G., WEGNER, P., AND CERI, S. 1992. Toward megaprogramming. Commun. ACM 35, 11 (Nov.), 89-99. Google ScholarGoogle Scholar
  66. WILLIAMS, M.D. 1984. What makes RABBIT run? Int. J. Man Mach. Stud. 21,333-352. Google ScholarGoogle Scholar
  67. WIRFS-BROCK, R. J. AND JOHNSON, R.E. 1990. Surveying current research in object-oriented design. Commun. ACM 33, 9 (Sept.), 105-124. Google ScholarGoogle Scholar

Index Terms

  1. An evolutionary approach to constructing effective software reuse repositories

          Recommendations

          Reviews

          Edward Y. Lee

          Two important characteristics of a useful software reuse repository are that it must contain reasonable quality software modules that will satisfy users over time, and that users must be able to retrieve the modules conveniently in order to construct their own programs. The author points out the problems and difficulties the current methodology has in satisfying these two requirements because of the following constraints: acquiring the knowledge to construct the repository, modifying the repository to meet the evolving needs of software development organizations, and implementing a classification and domain analysis effort initially so that the repository will contain a significant number of reusable software modules. Henninger outlines an approach that avoids some of these problems by choosing a retrieval method that uses a minimal repository structure to support the process of finding software components. This approach is demonstrated by using two prototypes: a tool called Parse and Extract Emacs Lisp (PEEL) that extracts components from text files and indexes them through a combination of automatic extraction and interactive user support; and a tool called 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. The paper is divided into eight major sections. Section 1, the introduction, provides a brief history and summary of the current reuse-repository methodologies, mentioning some of the problems and difficulties in structuring the repositories as well as the need to upgrade the structure frequently in order to maintain their usefulness. It also gives a brief summary of the author's approaches to these problems. Section 2 contrasts composition-based reuse and generative reuse. This section also describes the various classification schemes used to build up a component repository, including enumerated classification, faceted classification, and free-text indexing. The author then introduces his method, which combines aspects of these three schemes. Section 3 addresses the author's approach of using the PEEL tool to perform the initial extraction and to create the initial repository. It then describes the CodeFinder and the combination of both to provide tools to create initial information structures, flexible mechanisms to search and browse the repository, and tools to refine and adapt information as users work with the repository. Section 4 addresses the use of PEEL tools to translate Emacs Lisp files into individual, reusable components using the frame-based knowledge representation language Kandor. The first step is automated, but the second and third steps involve user input. Section 5 addresses the author's various methods to compensate for incomplete and inconsistent indexing. These methods include the use of link weights, retrieval with spreading activation, query expansion, and a method of calculating the activation values using the link weights. The combination of PEEL and CodeFinder allows the easy definition of the relationships through content-induced structure and allows retrieval by reformul ation by looking at both the situation models and the system models. Section 6 expands on the concepts to support the incremental refinement of component repositories by minimizing the mismatch between the situation and the system models. The repository can be further adapted by aliasing the terms used by the users. The link weights are also used to provide relevant feedback. Section 7 addresses design and evaluation of CodeFinder in terms of a Symbolic Lisp machine. Section 8 gives conclusions and future directions, and explains why the author's approach will provide adequate retrieval effectiveness with minimal indexing and structuring efforts and will help the repository evolve with the changing needs of people in the software development organization. The combination of the PEEL and CodeFinder prototypes shows that the approach can support the retrieval process through retrieval by reformulation and spreading activation, in order to help users find components in less-than-perfect repository structures and indexes. The author indicates that improvements are needed in the PEEL/CodeFinder tool set before they can become viable tools for development organizations. The paper ends with a fairly extensive list of references. Readers who are interested in exploring tools for reuse repositories should find it useful and should have no problem understanding the author's approaches.

          Access critical reviews of Computing literature here

          Become a reviewer for Computing Reviews.

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader