Skip to main content
Log in

A survey of software reuse libraries

  • Published:
Annals of Software Engineering

Abstract

The study of storage and retrieval methods of software assets in software libraries gives rise to a number of paradoxes: While this subject has been under investigation for nearly two decades, it still remains an active area of research in software reuse and software engineering; this can be explained by the observation that new technologies (such as the internet, the world wide web, object-;oriented programming) keep opening new opportunities for better asset packaging, better library organizations, and larger scale libraries – thereby posing new technical challenges. Also, while many sophisticated solutions have been proposed to this problem, the state of the practice in software reuse is characterized by the use of ad-;hoc, low-;tech methods; this can be explained by the observation that most existing solutions are either too ineffective to be useful or too intractable to be usable. Finally, while it is difficult to imagine a successful software reuse program without a sophisticated, well-;tuned, systematic procedure for software component storage and retrieval, it seems many successful software reuse experiments rely on trivial methods of component storage and retrieval; this can be explained by the observation that, in the current state of the practice, software libraries are not the bottleneck of the software reuse process. This paper presents a survey of methods of storage and retrieval of software assets in software libraries. In addition to a review of existing research efforts, the paper makes two contributions. First, a definition of (presumably) orthogonal attributes of storage and retrieval methods; these attributes are used, in turn, to classify existing methods into six broad classes. Second, a definition of (presumably) orthogonal assessment criteria, which include technical, managerial and human factors; these criteria afford us an exhaustive and uniform basis for assessing and comparing individual methods and classes of methods.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • Allemang, D.T. (1990), “Understanding Programs as Devices,” PhD Thesis, Ohio State University, Columbus, OH.

  • Allemang, D.T. (1991), “Use of Functional Models in the Domain of Automatic Debugging,” IEEE Expert 6, 6, 13–18.

    Article  Google Scholar 

  • ASSET (1993), “ASSET Submittal Guidelines,” Technical Report SAIC-92/7625-00, version 1.2, SAIC/ASSET, Morgantown, WV, December 1993.

    Google Scholar 

  • Atkinson, S. (1996), “A Formal Model for Integrated Retrieval from Software Libraries,” In Technology of Object-Oriented Languages and Systems: TOOLS 21, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Atkinson, S. and R. Duke (1994), “A Methodology for Behavioral Retrieval from Class Libraries,” Australian Computer Science Communications 17, 1, 13–20.

    Google Scholar 

  • Badaro, N. and T. Moineau (1991), “ROSE-Ada: A Method and a Tool to Help Reuse Ada Code,” In Proceedings of the Ada: The Choice for '92, LNCS 499, Springer, Berlin, Germany, 1991.

    Google Scholar 

  • Boehm, B.W. (1981), Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ.

    MATH  Google Scholar 

  • Boerstler, J. (1995), “Feature Oriented Classification for Software Reuse,” In Proceedings of the 7th International Conference on Software Engineering and Knowledge Engineering, SEKE '95, KSI Knowledge Systems Institute, Skokie, IL, pp. 204–211.

    Google Scholar 

  • Booch, G. (1994), Object-Oriented Analysis and Design with Applications, Benjamin/Cummings Publishing Company, Redwood City, CA.

    Google Scholar 

  • Boudriga, N., A. Mili and R.T. Mittermeir (1992), “Semantic-Based Software Retrieval to Support Rapid Prototyping,” Structured Programming 13, 109–127.

    MATH  Google Scholar 

  • Boudriga, N., A. Mili and R. Zalila (1992a), “An Automated Tool for Specification Validation: Design and Preliminary Implementation,” In Proceedings of the 25th Hawaii International Conference on System Sciences, IEEE Computer Society Press, Los Alamitos, CA, pp. 74–82.

    Google Scholar 

  • Boudriga, N., A. Mili, R. Zalila and F. Mili (1992b), “A Relational Model for the Specification of Data Types,” Computer Languages 17, 2, 101–131.

    Article  Google Scholar 

  • Brooks, F.P. (1987), “No Silver Bullet: Essence and Accidents of Software Engineering,” IEEE Computer Magazine 20, 4, 10–19.

    Google Scholar 

  • Browne, S.V. and J.W. Moore (1997), “Reuse Library Interoperability and the World Wide Web,” In Proceedings of the ACM SIGSOFT Symposium on Software Reusability, SSR '97, ACM Software Engineering Notes 22, 3, 182–189.

    Article  Google Scholar 

  • Castano, S., V. De Antonellis and B. Pernici (1996), “Criteria and Metrics for Quantifying Similarity Factors,” In Information Processing and Management of Uncertainty in Knowledge-Based Systems, Proceedings of the 6th IPMU '96, Volume III, Universidad de Granada, Granada, Spain, pp. 1091–1097.

    Google Scholar 

  • Celentano, A., M.G. Fugini and S. Pozzi (1995), “Knowledge-Based Document Retrieval in Office Environments: The Kabiria System,” ACM Transactions on Information Systems 13, 3, 237–268.

    Article  Google Scholar 

  • Chen, Y. and B. Cheng (1997), “Facilitating an Automated Approach to Architecture-Based Software Reuse,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, IEEE Computer Society Press, Los Alamitos, CA, pp. 238–246.

    Chapter  Google Scholar 

  • Cheng, B.H.C. and J.J. Jeng (1992a), “Formal Methods Applied to Reuse,” In Proceedings of the 5th Annual Workshop on Software Reuse, WISR-5, Palo Alto, CA, ftp://gandalf.umcs.maine. edu/pub/WISR/wisr5/proceedings/.

  • Cheng, B.H.C. and J.J. Jeng (1992b), “Reusing Analogous Components,” In Proceedings of the IEEE International Conference on Tools with AI, IEEE Computer Society Press, Los Alamitos, CA.

    Google Scholar 

  • Chou, C.S., J.Y. Chen and C.G. Chung (1996), “A Behavior-Based Classification and Retrieval Technique for Object-Oriented Specification Reuse,” Software – Practice and Experience 26, 7, 815–832.

    Article  Google Scholar 

  • Clifton, C. and W.-S. Li (1995), “Classifying Software Components Using Desgn Characteristics,” In Proceedings of the 10th Knowledge-Based Software Engineering Conference, KBSE '95, IEEE Computer Society Press, Los Alamitos, CA, pp. 139–146.

    Google Scholar 

  • Constantopoulos, P., M. Doerr and Y. Vassiliou (1993), “Repositories for Software Reuse: The Software Information Base,” In Information System Development Process, N. Prakash, C. Rolland and B. Pernici, Eds., North-Holland, Amsterdam, The Netherlands.

    Google Scholar 

  • Devanbu, P., R. Brachman, P. Selfridge and B. Ballard (1991), “Lassie: A Knowledge-Based Software Information System,” Communications of the ACM 34, 5, 34–39.

    Article  Google Scholar 

  • Eden, A., A. Yehudai and J. Gil (1997), “Precise Specification and Automatic Application of Design Patterns,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, IEEE Computer Society Press, Los Alamitos, CA, pp. 143–152.

    Chapter  Google Scholar 

  • Faison, T. (1997), “Interactive Component-Based Software Development with Expresso,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, IEEE Computer Society Press, Los Alamitos, CA, pp. 293–294.

    Chapter  Google Scholar 

  • Faloutsos, C. (1985), “Access Methods for Text,” ACM Computing Surveys 17, 1, 49–74.

    Article  Google Scholar 

  • Faustle, S., M.G. Fugini and E. Damiani (1996), “Retrieval of Reusable Components using Functional Similarity,” Software Practice and Experience 26, 5, 491–530.

    Article  Google Scholar 

  • Fickas, S. (1997), “Workshop Software on Demand: Issues for Requirements Engineering,” In Proceedings of the 3rd IEEE International Symposium on Requirements Engineering, RE '97, IEEE Computer Society Press, Los Alamitos, CA, pp. 222–223.

    Chapter  Google Scholar 

  • Fischer, B., M. Kievernagel and G. Snelting (1995), “Deduction-Based Software Component Retrieval,” In Proceedings of the IJCAI Workshop on Reuse of Proofs, Plans and Programs, German Research Center for Artificial Intelligence, Saarbrücken, Germany, pp. 6–10.

    Google Scholar 

  • Flener, P., K. Lau and M. Ornaghi (1997), “Correct-Schema-Guided Synthesis of Steadfast Programs,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, IEEE Computer Society Press, Los Alamitos, CA, pp. 153–160.

    Chapter  Google Scholar 

  • Frakes, W.B. (1991), “Software Reuse: Payoff and Transfer,” In Proceedings of the 8th AIAA Computing in Aerospace Conference, Baltimore, MD, pp. 829–831.

  • Frakes, W.B. (1992), “Introduction to Information Storage and Retrieval Systems,” In Information Retrieval: Data Structures and Algorithms, W.B. Frakes and R. Baeza-Yates, Eds., Prentice-Hall, Upper Saddle River, NJ, Chapter 1, pp. 1–12.

    Google Scholar 

  • Frakes, W.B. and R. Baeza-Yates, Eds. (1992), Information Retrieval: Data Structures and Algorithms, Prentice-Hall, Upper Saddle River, NJ.

    Google Scholar 

  • Frakes, W.B. and C.J. Fox (1993), “Software Reuse Survey Report,” Technical Report, Software Engineering Guild, Sterling, VA.

    Google Scholar 

  • Frakes, W.B. and P.B. Gandel (1990), “Representing Reusable Software,” Information and Software Technology 32, 10, 653–664.

    Article  Google Scholar 

  • Frakes, W.B. and B.A. Nejmeh (1987a), “An Information System for Software Reuse,” In Proceedings of the 10th Minnowbrook Workshop on Software Reuse, Syracuse University, Minnowbrook, NY.

    Google Scholar 

  • Frakes, W.B. and B.A. Nejmeh (1987b), “Software Reuse Through Information Retrieval,” In Proceedings of the 20th Annual Hawaii International Conference on System Sciences, IEEE Computer Society Press, Los Alamitos, CA, pp. 530–535.

    Google Scholar 

  • Frakes, W.B. and T.P. Pole (1990), “Proteus: A Reuse Library Systems that Supports Multiple Representation Methods,” ACM SIGIR Forum 24, 43–55.

    Article  Google Scholar 

  • Frakes, W.B. and T.P. Pole (1994), “An Empirical Study of Representation Methods for Reusable Software Components,” IEEE Transactions on Software Engineering 20, 8, 617–630.

    Article  Google Scholar 

  • Gaudel, M.C. and Th. Moineau (1988), “A Theory of Software Reusability,” In Proceedings of the 2nd European Symposium on Programming, ESOP '88, LNCS 300, Springer, Berlin, Germany, pp. 115– 130.

    Google Scholar 

  • Girardi, M.R. (1995), “Classification and Retrieval of Software through Their Description in Natural Language,” Technical Report 2782, University of Geneva, Geneva, Switzerland.

    Google Scholar 

  • Girardi, R. and B. Ibrahim (1994a), “Automatic Indexing of Software Artifacts,” In Proceedings of the 3rd International Conference on Software Reuse, IEEE Computer Society Press, Los Alamitos, CA, pp. 24–32.

    Chapter  Google Scholar 

  • Girardi, R. and B. Ibrahim (1994b), “A Similarity Measure for Retrieving Software Artifacts,” In Proceedings of the 6th International Conference on Software Engineering and Knowledge Engineering, SEKE '94, Knowledge Systems Institute, Skokie, IL, pp. 89–100.

    Google Scholar 

  • Gomaa, H. and G. Farrukh (1997), “Automated Configuration of Distributed Applications from Reusable Software Architectures,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, IEEE Computer Society Press, Los Alamitos, CA, pp. 193–200.

    Chapter  Google Scholar 

  • Gomez, H. (1997), “A Cognitive Approach to Software Reuse Applying Case-Based Reasoning to Mutant Cases,” In Proceedings of the 9th International Conference on Software Engineering and Knowledge Engineering, SEKE '97, Knowledge Systems Institute, Skokie, IL, pp. 512–519.

    Google Scholar 

  • Gonzalez, P.A. and C. Fernandez (1997), “A Knowledge-Based Approach to Support Software Reuse in Object-Oriented Libraries,” In Proceedings of the 9th International Conference on Software Engineering and Knowledge Engineering, SEKE '97, Knowledge Systems Institute, Skokie, IL, pp. 520–527.

    Google Scholar 

  • Guttag, J., J.J. Horning and J.M. Wing (1985), “The Larch Family of Specification Languages,” IEEE Software 2, 5, 24–36.

    Article  Google Scholar 

  • Hall, R.J. (1993), “Generalized Behaviour-Based Retrieval,” In Proceedings of the 15th International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA.

    Google Scholar 

  • Helm, R. and Y.S. Maarek (1991), “Integrating Information Retrieval and Domain Specific Approaches for Browsing and Retrieval in Object-Oriented Class Libraries,” In Proceedings of the OOPSLA '91, SigPlan Notices 26, 11, 47–61.

    Article  Google Scholar 

  • Hoare, C.A.R. (1969), “An Axiomatic Basis for Computer Programming,” Communications of the ACM 12, 10, 576–583.

    Article  Google Scholar 

  • Hochmüller, E. (1992), “AUGUSTA – Eine Reuse-Orientierte Software-Entwicklungsumgebung zur Erstellung von Ada-Applikationen,” PhD Thesis, Universität Klagenfurt, Klagenfurt, Austria.

  • Ihrig, L. and S. Kambhampati (1995), “Automatic Storage and Indexing of Plan Derivations Based on Replay Failures,” In Proceedings of the IJCAI Workshop on Reuse of Proofs, Plans and Programs, German Research Center for Artificial Intelligence, Saarbrücken, Germany.

    Google Scholar 

  • Isakowitz, T. and R.J. Kauffman (1996), “Supporting Search for Reusable Software Objects,” IEEE Transactions on Software Engineering 22, 6, 407–423.

    Article  Google Scholar 

  • Ithaca (1993), “Integrated Toolkit for Highly Advanced Computer Applications,” Technical Report 2705, EEC-Esprit II Project.

  • Jeng, J.J. and B.C.H. Cheng (1995), “Specification Matching for Software Reuse: A Foundation,” In Proceedings of the ACM SIGSOFT Symposium on Software Reuse, SSR '95, ACM Press, New York, NY, pp. 97–105.

    Chapter  Google Scholar 

  • Jilani, L.L., R. Mili, M. Frappier, J. Desharnais and A. Mili (1997a), “Retrieving Software Components That Minimize Adaptation Effort,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, ASE '97, IEEE Computer Society Press, Los Alamitos, CA, pp. 255–262.

    Google Scholar 

  • Jilani, L.L., R. Mili and A. Mili (1997b), “Approximate Retrieval: An Academic Exercise or a Practical Concern?” In Proceedings of the 8th Annual Workshop on Software Reuse (WISR-8), ftp://gandalf.umcs.maine.edu/pub/WISR/wisr8/proceedings/.

  • Kaplan, S.M. and Y.S. Maarek (1990), “Incremental Maintenance of Semantic Links in Dynamically Changing Hypertext Systems,” Interacting with Computers 2, 3.

    Article  Google Scholar 

  • Karlsson, E.-A. (1995), Software Reuse – A Holistic Approach, Wiley, Chichester, West Sussex, UK.

    Google Scholar 

  • Khoshgoftaar, T.M., K. Ganesan, E.B. Allen, F.D. Ross, R. Munikoti, N. Goel and A. Nandi (1997), “Predicting Fault Prone Modules with Case-Based Reasoning,” In Proceedings of the 8th International Symposium on Software Reliability Engineering, IEEE Computer Society Press, Los Alamitos, CA.

    Google Scholar 

  • Kolbe, T. and Ch. Walther (1995), “Proof Management and Retrieval,” In Proceedings of the IJCAI Workshop on Reuse of Proofs, Plans and Programs, IEEE Computer Society Press, Los Alamitos, CA.

    Google Scholar 

  • Koubarakis, M. (1989), “TELOS: Features and Formalization,” Technical Report KRR-TR-89-1, University of Toronto, Toronto, Ontario, Canada.

    Google Scholar 

  • Krueger, Ch.W. (1992), “Software Reuse,” ACM Computing Surveys 24, 2, 131–183.

    Article  Google Scholar 

  • Liver, B. (1996), “A Functional Model of Software and Its Application in Troubleshooting, Design, and Reuse,” PhD Thesis, EPFL Lausanne, Lausanne, Switzerland.

  • Liver, B. (1997), “Introduction to Reasoning about Functions for Design Patterns and Modules,” In Proceedings of the 9th International Conference on Software Engineering and Knowledge Engineering, SEKE '97, Knowledge Systems Institute, Skokie, IL, pp. 148–157.

    Google Scholar 

  • Lucarella, D. and A. Zanzi (1996), “A Visual Retrieval Environment for Hypermedia Information Systems” ACM Transactions on Information Systems 14, 1, 3–29.

    Article  Google Scholar 

  • Lung, C.-H. and J.E. Urban (1995), “An Approach to the Classification of Domain Models in Support of Analogical Reuse,” In Proceedings of the ACM SigSoft Symposium on Software Reusability, SSR '95, ACM Press, New York, NY, pp. 169–178.

    Chapter  Google Scholar 

  • Maarek, Y.S. and D.M. Berry (1989), “The Use of Lexical Affinities in Requirements Extraction,” In Proceedings of the 5th International Workshop on Software Specification and Design, IWSSD-5, IEEE Computer Society Press, Los Alamitos, CA, pp. 196–202.

    Chapter  Google Scholar 

  • Maarek, Y.S., D.M. Berry and G.E. Kaiser (1991), “An Information Retrieval Approach for Automatically Constructing Software Libraries,” IEEE Transactions on Software Engineering 17, 8, 800–813.

    Article  Google Scholar 

  • Maiden, N.A.M., P. Mistry and A.G. Sutcliffe (1995), “How People Categorise Requirements for Reuse: A Natural Approach,” In Proceedings of the 2nd IEEE International Symposium on Requirements Engineering, RE '95, IEEE Computer Society Press, Los Alamitos, CA, pp. 148–155.

    Google Scholar 

  • Maiden, N.A.M. and A.G. Sutcliffe (1992), “Exploiting Reusable Specifications Through Analogy,” Communications of the ACM 35, 4, 55–64.

    Article  Google Scholar 

  • Maiden, N.A.M. and A.G. Sutcliffe (1993), “Requirements Engineering by Example,” In Proceedings of the 1st International Symposium on Requirements Engineering, RE '93, IEEE Computer Society Press, Los Alamitos, CA, pp. 104–112.

    Google Scholar 

  • Massonet, P. and A.V. Lamsweerde (1997), “Analogical Reuse of Requirements Frameworks,” In Proceedings of the 3rd IEEE International Symposium on Requirements Engineering, RE '97, IEEE Computer Society Press, Los Alamitos, CA, pp. 26–37.

    Google Scholar 

  • Matsumoto, Y. (1993), “A Software Factory: An Overall Approach to Software Production,” In Proceedings of the ITT Workshop on Reusability in Programming, IEEE Computer Society Press, Newport, RI, reprinted in: Tutorial Software Reusability, P. Freeman, Ed.

    Google Scholar 

  • McCune, W. (1994), Otter3.0 Reference Manual and Guide, ARGONE National Laboratory: Mathematics and Computer Science Division.

  • Mili, H., E. AhKi, R. Godin and H. Mcheick (1997), “Another Nail to the Coffin of Faceted Controlled-Vocabulary Component Classification and Retrieval,” In Proceedings of the Symposium on Software Reusability, SSR '97, ACM Software Engineering Notes 22, 3, 89–98.

    Article  Google Scholar 

  • Mili, H., F. Mili and A. Mili (1995), “Reusing Software: Issues and Research Directions,” IEEE Transactions on Software Engineering 21, 6, 528–562.

    Article  Google Scholar 

  • Mili, R. (1996), “Assessing the Reuse Worthiness of a Component: Empirical and Analytical Approaches,” Technical Report, Department of Computer Science, University of Ottawa, Ottawa, Ontario, Canada.

    Google Scholar 

  • Mili, A., R. Mili and R. Mittermeir (1994), “Storing and Retrieving Software Component: A Refinement-Based Approach,” In Proceedings of the 16th International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 91–100.

    Chapter  Google Scholar 

  • Mittermeir, R.T. (1998), “Hypertext: Werkzeug? – Denkzeug?” In Electronic Networking and the Philosophy of Culture, Ch. Nyiri and P. Fleissner, Eds., Studienverlag, Innsbruck, Austria.

    Google Scholar 

  • Mittermeir, R.T. and W. Rossak (1987), “Software Bases and Software Archives, Alternatives to Support Software Reuse,” In Proceedings of the Fall Joint Computer Conference '87, IEEE Computer Society Press, Los Alamitos, CA, pp. 21–28.

    Google Scholar 

  • Mittermeir, R.T. and W. Rossak (1990), “Reusability,” In Modern Software Engineering, P.N. Peter and R.T. Yeh, Eds., Van Nostrand Reinhold, New York, NY, pp. 205–235.

    Google Scholar 

  • Mittermeir, R.T. and L. Wuerfl (1995), “Abstract Visualization of Software: A Basis for a Complex Hash-Key,” In Advances in Intelligent Computing, B. Bouchon-Meunier, R.R. Yager and L.A. Zadeh, Eds., LNCS 945, Springer, Berlin, Germany, pp. 545–554.

    Google Scholar 

  • Moineau, T. and M.C. Gaudel (1991), “Software Reusability through Formal Specifications,” In Proceedings of the First International Workshop on Software Reusability, SWT Memo Nr. 57, Universität Dortmund, Dortmund, Germany, pp. 202–212.

    Google Scholar 

  • Nelson, M.L. and T. Poulis (1995), “The Class Storage and Retrieval System: Enhancing Reusability in Object-Oriented Systems,” ACM OOPS Messenger 6, 2, 28–36.

    Article  Google Scholar 

  • Ogden, W.F., M. Sitaraman, B.W. Weide and S.H. Zweben (1994), “The RESOLVE Framework and Discipline – A Research Synopsis,” ACM Software Engineering Notes 19, 4, 23–28.

    Article  Google Scholar 

  • Ostertag, E., J. Hendler, R. Prieto-Diaz and C. Braun (1992), “Computing Similarity in a Reuse Library System: An AI-Based Approach,” ACM Transactions on Software Engineering and Methodology 1, 3, 205–228.

    Article  Google Scholar 

  • Park, Y. and P. Bai (1997), “Generating Samples for Component Retrieval by Execution,” Technical Report, University of Windsor, Windsor, Ontario, Canada.

    Google Scholar 

  • Paul, S. and A. Prakash (1994), “A Framework for Source Code Search Using Program Patterns,” IEEE Transactions on Software Engineering SE-20, 6, 462–475.

    Google Scholar 

  • Penix, J. and P. Alexander (1995), “Design Representation for Automating Software Component Reuse,” In Proceedings of the 1st International Workshop on Knowledge Based Systems for the (Re)Use of Software Libraries, INRIA, Sophia Antipolis, France.

    Google Scholar 

  • Penix, J. and P. Alexander (1996), “Efficient Specification Based Component Retrieval,” Technical Report, Knowledge Based Software Engineering Laboratory, Department of Electrical and Computer Engineering, University of Cincinnati, Cincinnati, OH.

    Google Scholar 

  • Penix, J., P. Alexander and K. Havelund (1997), “Declarative Specification of Software Architectures,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, IEEE Computer Society Press, Los Alamitos, CA, pp. 201–208.

    Chapter  Google Scholar 

  • Perry, D.E. (1989), “The Inscape Environment,” In Proceedings of the 11th International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 2–12.

    Chapter  Google Scholar 

  • Perry, D.E. and S.S. Popovich (1993), “Inquire: Predicate-Based Use and Reuse,” In Proceedings of the 8th Knowledge Based Software Engineering Conference, KBSE '93, IEEE Computer Society Press, Los Alamitos, CA, pp. 144–151.

    Chapter  Google Scholar 

  • Podgurski, A. and L. Pierce (1992), “Behaviour Sampling: A Technique for Automated Retrieval of Reusable Components,” In Proceedings of the 14th International Conference on Software Engineering, ACM Press, New York, NY, pp. 300–304.

    Google Scholar 

  • Podgurski, A. and L. Pierce (1993), “Retrieving Reusable Software by Sampling Behavior,” ACM Transactions on Software Engineering and Methodology 2, 3, 286–303.

    Article  Google Scholar 

  • Potts, C. and W.C. Newstetter (1997), “Naturalistic Inquiry and Requirements Engineering: Reconciling Their Theoretical Foundations,” In Proceedings of the 3rd IEEE International Symposium on Requirements Engineering, RE '97, IEEE Computer Society Press, Los Alamitos, CA, pp. 118–127.

    Google Scholar 

  • Poulin, J. and K.J. Werkman (1995), “Melding Structured Abstracts and the WorldWide Web for Retrieval of Reusable Components,” In Proceedings of the ACM SIGSOFT Symposium on Software Reuse, SSR '95, ACM Press, New York, NY, pp. 160–168.

    Chapter  Google Scholar 

  • Prieto-Diaz, R. (1985), “A Software Classification Scheme,” PhD Thesis, Department of Computer and Information Science, University of California at Irvine, Irvine, CA.

  • Prieto-Diaz, R. (1990), “Classification of Reusable Modules,” In Software Reusability, Volume I: Concepts and Models, T.J. Biggerstaff and A.J. Perlis, Eds., Frontier Series, ACM Press/Addison-Wesley, Reading, MA.

    Google Scholar 

  • Prieto-Diaz, R. (1991), “Implementing Faceted Classification for Software Reuse,” Communications of the ACM 34, 5, 88–97.

    Article  Google Scholar 

  • Prieto-Diaz, R. and P. Freeman (1987), “Classifying Software for Reusability,” IEEE Software 4, 1, 6–16.

    Article  Google Scholar 

  • Reubenstein, H.B. and R.C. Waters (1991), “The Requirements' Apprentice: Automated Assistance for Requirements Acquisition,” IEEE Transactions on Software Engineering 17, 3, 226–240.

    Article  Google Scholar 

  • Rich, C. and H.E. Schrobe (1976), “An Initial Report on Lisp's Programmer's Apprentice,” Technical Report MIT/AI/TR-354, Massachusetts Institute of Technology, Cambridge, MA.

    Google Scholar 

  • Rich, C. and H.E. Schrobe (1978), “An Initial Report on Lisp's Programmer's Apprentice,” IEEE Transactions on Software Engineering 4, 11.

  • Rich, C. and R.C. Waters (1988), “The Programmer's Apprentice: A Research Overview,” IEEE Computer 21, 11, 10–25.

    Google Scholar 

  • Rich, C. and R.C. Waters (1990), The Programmer's Apprentice, Frontier Series, ACM Press/Addison-Wesley, Reading, MA.

    Google Scholar 

  • Rittri, M. (1989), “Using Types as Search Keys in Function Libraries,” The Journal of Functional Programming 1, 1.

  • Rittri, M. (1992), “Retrieving Library Identifiers via Equational Matching of Types,” Technical Report 65, Programming Methodology Group, Department of Computer Science, Chalmers University of Technology and University of Geteborg, Geteborg, Sweden.

    Google Scholar 

  • Rollins, E.J. and J. Wing (1991), “Specifications as Search Keys for Software Libraries,” In Proceedings of the 8th International Conference on Logic Programming, ICLP '91, MIT Press, Cambridge, MA, pp. 173–187.

    Google Scholar 

  • Rossak, W. and R.T. Mittermeir (1989), “A DBMS-Based Repository for Reusable Software Components,” In Proceedings of the 2nd International Workshop Software Engineering and Its Applications, EC2, Toulouse, France, pp. 501–518.

    Google Scholar 

  • Rosson, M.B. and J.M. Carrol (1996), “The Reuse of Uses in Smalltalk Programming,” ACM Transactions on Computer–Human Interaction 3, 3, 219–253.

    Article  Google Scholar 

  • Runciman, C. and I. Toyn (1989), “Retrieving Reusable Software Components by Polymorphic Type,” In Proceedings of the 4th International Conference on Functional Programming Languages and Computer Architectures, ACM Press, New York, NY, pp. 166–173.

    Chapter  Google Scholar 

  • Salton, G. (1975), Information and Library Processing, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Salton, G. and M.J. McGill (1983), Introduction to Modern Information Retrieval, McGraw-Hill, New York, NY.

    MATH  Google Scholar 

  • Schumann, J. and B. Fischer (1997), “NORA/HAMMR: Making Deduction-Based Software Component Retrieval Practical,” In Proceedings of the 12th IEEE International Automated Software Engineering Conference, IEEE Computer Society Press, Los Alamitos, CA, pp. 246–254.

    Chapter  Google Scholar 

  • Spanoudakis, G. and P. Constantopoulos (1993), “Similarity for Analogical Software Reuse: A Conceptual Modelling Approach,” In Proceedings of the CAiSE '93, LNCS 685, Springer, Berlin, Germany.

    Google Scholar 

  • Spanoudakis, G. and P. Constantopoulos (1994), “Measuring Similarity between Software Artifacts,” In Proceedings of the 6th International Conference on Software Engineering and Knowledge Engineering, SEKE '94, Knowledge Systems Institute, Skokie, IL.

    Google Scholar 

  • Steigerwald, R.A. (1992), “Reusable Component Retrieval with Formal Specifications,” In Proceedings of the 5th Annual Workshop on Software Reuse, WISR-5, Palo Alto, CA, ftp://gandalf.umcs. maine.edu/pub/WISR/wisr5/proceedings/.

    Google Scholar 

  • Sutcliffe, A.G. and N.A.M. Maiden (1994), “Domain Modeling for Reuse,” In Proceedings of the 3rd International Conference on Software Reuse, IEEE Computer Society Press, Los Alamitos, CA, pp. 169– 177.

    Chapter  Google Scholar 

  • Talens, G., D. Boulanger, I. Dedun and S. Commeau (1997), “A Proposal of Retrieval and Classification Method for a Case Library Reuse,” In Proceedings of the 9th International Conference on Software Engineering and Knowledge Engineering, SEKE '97, Knowledge Systems Institute, Skokie, IL, pp. 502–511.

    Google Scholar 

  • Tracz, W. (1988), “Software Reuse Myths,” ACM Software Engineering Notes 13, 1, 38–43.

    Google Scholar 

  • Van Rijsbergen, C.J. (1979), Information Retrieval, 2nd Edition, Butterworth and Co., London, UK.

    Google Scholar 

  • Waters, R.C. (1981), “The Programmer's Apprentice: A Session with KBEmacs,” IEEE Transactions on Software Engineering 7, 11, 1296–1320.

    Article  Google Scholar 

  • Waters, R.C. (1982), “The Programmer's Apprentice: Knowledge-Based Program Editing,” IEEE Transactions on Software Engineering 8, 1, 1–12.

    Article  Google Scholar 

  • Wood, M. and I. Sommerville (1988), “An Information System for Software Components,” ACM SIGIR Forum 22, 3, 11–25.

    Article  Google Scholar 

  • Zaremski, A.M. and J.M. Wing (1993), “Signature Matching: A Key to Reuse,” In Proceedings of the SIGSOFT '93: ACM SIGSOFT Symposium on the Foundations of Software Engineering, Software Engineering Notes 18, 5, 182–190.

    Article  Google Scholar 

  • Zaremski, A.M. and J.M. Wing (1995a), “Signature Matching: A Tool for Using Software Libraries,” ACM Transactions on Software Engineering and Methodology 4, 2, 146–170.

    Article  Google Scholar 

  • Zaremski, A.M. and J.M. Wing (1995b), “Specification Matching of Software Components,” In Proceedings of the SIGSOFT '95: 3rd ACM SIGSOFT Symposium on the Foundations of Software Engineering, Software Engineering Notes 20, 4, 6–17.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Mili, A., Mili, R. & Mittermeir, R. A survey of software reuse libraries. Annals of Software Engineering 5, 349–414 (1998). https://doi.org/10.1023/A:1018964121953

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018964121953

Keywords

Navigation