This Article 
 Bibliographic References 
 Add to: 
Reusing Software: Issues and Research Directions
June 1995 (vol. 21 no. 6)
pp. 528-562
Software productivity has been steadily increasing over the past 30 years, but not enough to close the gap between the demands placed on the software industry and what the state of the practice can deliver nothing short of an order of magnitude increase in productivity will extricate the software industry from its perennial crisis. Several decades of intensive research in software engineering and artificial intelligence left few alternatives but software reuse as the (only) realistic approach to bring about the gains of productivity and quality that the software industry needs. In this paper, we discuss the implications of reuse on the production, with an emphasis on the technical challenges. Software reuse involves building software that is reusable by design and building with reusable software. Software reuse includes reusing both the products of previous software projects and the processes deployed to produce them, leading to a wide spectrum of reuse approaches, from the building blocks (reusing products) approach, on one hand, to the generative or reusable processor (reusing processes), on the other. We discuss the implication of such approaches on the organization, control, and method of software development and discuss proposed models for their economic analysis. Software reuse benefits from methodologies and tools to:
  • build more readily reusable software and
  • locate, evaluate, and tailor reusable software, the last being critical for the building blocks approach.
  • Both sets of issues are discussed in this paper, with a focus on application generators and OO development for the first and a thorough discussion of retrieval techniques for software components, component composition (or bottom-up design), and transformational systems for the second. We conclude by highlighting areas that, in our opinion, are worthy of further investigation.

    [1] W.W. Agresti,“What are the new paradigms?,” New Paradigms for Software Development. ed. W.W. Agresti, pp. 6-10, IEEE, 1986.
    [2] William W. Agresti,“Framework for a flexible development process,” New Paradigms for Software Development, William W. Agresti, ed., pp. 11-14, IEEE, 1986.
    [3] M. Aksit, and L. Bergmans,“Obstacles in OO software development,” Proc. OOPSLA’92,Vancouver, B.C., Canada, Oct.18-22, 1992.
    [4] G. Arango,Ira Baxter,P. Freeman, and C. Pidgeon,“Software maintenance by transformation,” IEEE Software, pp. 27-39, May 1986.
    [5] G. Arango,“Domain engineering for software reuse,” PhD thesis, Dept. Information and Computer Science,Univ. of California, 1988.
    [6] S.P. Arnold and S.L. Stepoway,“The reuse system: Cataloguing and retrieval of reusable software,” Proc. COMPCON S’87, IEEE CS Press, pp. 376-379. 1987.
    [7] D.M. Balda,“Cost estimation models for the reuse and prototype software development life-cycles,” ACM Software Eng. Notes, vol.15, pp. 42-50, July 1990.
    [8] R. Balzer,T. Cheatham Jr.,, and C. Green,“Software technology in the 1990s: Using a new paradigm,” Computer, Nov. 1983, pp. 39-45
    [9] R. Balzer, "A 15 Year Perspective on Automatic Programming," IEEE Trans. Software Eng., vol. 11, Nov. 1985.
    [10] B. Barnes,T. Durek,J. Gaffney,, and A. Pyster,“A framework and economic foundation for software reuse,” Proc. Workshop Software Reusability and Maintainability, 1987.
    [11] B. H. Barnes and T. B. Bollinger,“Making reuse cost-effective,”IEEE Software,pp. 13–24, Jan. 1991.
    [12] V.R. Basili, G. Caldiera, F. McGarry, R. Pajerski, G. Page, and S. Waligora, "The Software Engineering Laboratory: An Operational Software Experience Factory," Proc. 14th Int'l Conf. Software Eng.,Australia, pp. 370-381, 1992.
    [13] V. Basili and S. Green, "Software Process Evolution at the SEL," IEEE Software, pp. 58-66, 1994.
    [14] V.R. Basili, "Viewing Maintenance as Reuse-Oriented Software Development," IEEE Software, vol. 7, no. 1, pp. 19-25, Jan. 1990.
    [15] V.R. Basili and J.D. Musa, "The Future Engineering of Software: A Management Perspective," Computer, Vol. 24, No. 9, Sept. 1991, pp. 90-96.
    [16] P.G. Bassett,“Frame-based software engineering,” IEEE Software, pp. 9-16, July 1987.
    [17] I.D. Baxter, ”Design Maintenance Systems,” Comm. ACM, vol. 35, no. 4, pp. 73–89, Apr. 1992.
    [18] P. Bergstein and K.J. Lieberherr,“Incremental class dictionary learning and optimization,” Proc. ECOOP’91,Geneva, Switzerland, pp. 377-395.
    [19] T.J. Biggerstaff, and C. Richter,“Reusability framework, assessment, and directions,” IEEE Software, pp. 41-49, July 1987.
    [20] D. Blair and M.E. Maron,“An evaluation of retrieval effectiveness for a full-text,” Document-Retrieval System Comm. ACM, vol. 28, no. 3, pp. 289-299, Mar. 1985.
    [21] B. Boehm, "A Spiral Model of Software Development and Enhancement," Computer, May 1988, pp. 61-72.
    [22] B.W. Boehm, "Improving Software Productivity," Computer, vol. 20, no. 9, pp. 43-57, 1987.
    [23] B.W. Boehm,“Megaprogramming,” Keynote speech, ACM Computer Science Conf.,Phoenix, Ariz., Feb. 1994,
    [24] R.J. Brachman and J.G. Schmolze,“An overview of the KL-ONE knowledge representation system,” Cognitive Science, vol. 9, pp. 171-216, 1985.
    [25] R. Bretl et al., "The GemStone Data Management System." Object-Oriented Concepts, Applications, and Databases, W. Kim, and F. Lochovsky, eds. Addison-Wesley, 1989.
    [26] F.P. BrooksJr., "No Silver Bullet—Essence and Accidents of Software Engineering," Computer, vol. 20, no. 4, Apr. 1987, pp. 10-19.
    [27] B.A. Burton,R.W. Aragon,S.A. Bailey,K.D. Koehler,, and L.A. Mayes,“The reusable software library,” IEEE Software, pp. 25-33, July 1987.
    [28] G. Caldiera and V.R. Basili, "Identifying and Qualifying Reusable Software Components," Computer, pp .61-70, Feb. 1991.
    [29] J. Carbonell,“Derivational analogy in problem solving and knowledge acquisition,” Proc. Int’l Machine Learning Workshop,Monticello, Ill., June 1983.
    [30] D. Carrington,D. Duke,I. Hayes,, and J. Welsh,“Deriving modular designs from formal specifications,” Software Engineering Notes, Proc. First ACM SIGSOFT Symp. Foundations of Software Engineering, vol. 18, no. 5, pp. 89-98,Los Angeles, Calif., Dec.7-10, 1993.
    [31] D. de Champeaux,D. Lea,, and P. Faure,“The process of OO design,” Proc. OOPSLA’92,Vancouver, B.C., Canada Oct.18-22, 1992
    [32] P.S. Shicheng Chen,R. Hennicker,, and M. Jarke,“On the retrieval of reusable components,” Selected Papers from the Second Int’l Workshop on Software, Reusability Advances in Software,ReuseLucca, Italy Mar.24-26, 1993.
    [33] S.C. Cheung and J. Kramer, "Enhancing Compositional Reachability Analysis Using Context Constraints," Proc. First ACM SIGSOFT Symp. Foundations of Software Engineering, pp. 115-125, Dec. 1993.
    [34] J.G. Cleaveland, “Building Application Generators,” IEEE Software, July 1988.
    [35] P. Coad and E. Yourdon, Object-Oriented Analysis, second ed., Yourdon Press, Englewood Cliffs, N.J., 1991.
    [36] P. Coad,“RE: On the purpose of OO analysis,” Proc. OOPSLA’93,Washington, D.C. Sept.26 - Oct.1, 1993.
    [37] W.R. Cook,“Interfaces and specifications for the Smalltalk-80 collection classes,” Proc. OOPSLA’92, 1992,Vancouver, B.C., Canada, Oct. 18-22.
    [38] B.J. Cox, Object Oriented Programming: An Evolutionary Approach.Reading, Mass.: Addison-Wesley, 1986.
    [39] B. Cox, "Planning the Software Industrial Revolution," IEEE Software, Nov. 1990, pp. 25-33.
    [40] M.A. Cusumano,“The software factory: A historical interpretation,” IEEE Software, pp. 23-30, Mar. 1989.
    [41] M.B. Dahl and K. Nygaard,“Simula common base language,” Technical report S-22, Norvegian Computing Center, 1970.
    [42] T. Davis,“The reuse capability model: A basis for improving an organization’s reuse capability,” Advances in Software Reuse, Selected Papers from the Second Int’l Workshop on Software Reusability Advances in Software Reuse, pp. 126-133,Lucca, Italy Mar.24-26, 1993.
    [43] L.P. Deutsch,“Design reuse and frameworks in the Smalltalk-80 programming system,” Software Reusability, vol. II, A.J. Perlis, ed., ACM Press, 1989.
    [44] E.W. Dijkstra,“On the cruelty of really teaching computer science,” Comm. ACM, vol. 32, no. 12, pp. 1,398-1,404, Dec. 1989.
    [45] M.S. Feather,“Reuse in the context of a transformation-based methodology,” ITT Proc. Workshop on Reusability in Programming, pp. 50-58, 1983.
    [46] R. Fichman and C. Kemerer, "Object-Oriented and Conventional Analysis and Design Methodologies: Comparison and Critique," Computer, Oct. 1992, pp. 22-39.
    [47] G. Fischer,“Cognitive view of reuse and design,” IEEE Software, pp. 60-72, July 1987.
    [48] W.B. Frakes and B.A. Nejmeh, "A Information System for Software Re-use," Proc. 10th Minnowbrook Workshop Software Reuse, pp. 142-151, 1987, Holmdel, N.J.: IEEE CS Press, 1988.
    [49] W. B. Frakes and T. Pole,“An empirical study of representation methods for reusable software components,” Tech. Report, Software Productivity Consortium, Herndon, Va. May, 1992.
    [50] P. Freeman,“Reusable software engineering: Concepts and research directions,” Tutorial: Software Reusability, P. Freeman, ed., pp. 10-23, 1987.
    [51] R.P. Gabriel,“The failure of pattern languages,” J. Object Orientedriented Programming, pp. 84-88, Feb. 1994.
    [52] J. E. Gaffney and R.D. Cruickshank,“A general economics model of software reuse,” Proc. 14th Int’l Conf. Software Eng., pp. 327-337, ACM Press , Melbourne, Australia, May11-15, 1992.
    [53] K. Gallagher and J. Lyle, “Using Program Slicing in Software Maintenance,” IEEE Trans. Software Eng., Aug. 1991, pp. 751-761.
    [54] M. Garey and D Johnson,Computers and Intractability.San Francisco: Freeman, 1979.
    [55] S. Gibbs,D Tsichritzis,E. Casais,O. Nierstrasz,, and X. Pintado,“Class management for software communities,” Comm. ACM, vol. 33, no. 9, pp. 90-103, 1990.
    [56] R. Godin and H. Mili,“Building and maintaining analysis-level class hierarchies using galois lattices,” ACM SIGPLAN Notices, OOPSLA’93 Proc., vol. 28, pp. 394-410,Washington, D.C. Sept.26 - Oct.1, 1993,.
    [57] J.A. Goguen, "Reusing and Interconnecting Software Components," Computer, Feb. 1986.
    [58] A. Goldberg,“Information models, views, and controllers,” Dr. Dobb’s, July 1990.
    [59] G. Gruman,“Early reuse practice lives up to its promise,” IEEE Software, pp. 87-91, Nov. 1988.
    [60] J.V. Guttag,J.J. Horning,, and J.M. Wing,“An overview of the Larch family of specification languages,” IEEE Software, vol. 2, no. 5, pp. 24-36, Sept. 1985.
    [61] P. Hall and R. Weedon,“Object oriented module interconnection languages,” Selected Papers from the Second Int’l Workshop on Software Reusability Advances in Software Reuse, IEEE C S Press, pp. 29-38,Lucca, Italy, Mar.24-26, 1993.
    [62] R.J. Hall, Generalized Behavior-Based Retrieval Proc. 15th Int'l Conf. Software Eng., pp. 371-380, May 1993.
    [63] W. Harrison and H. Ossher, "Subject-Oriented Programming (A Critique of Pure Objects)," OOPSLA '93, pp. 411-427, 1993.
    [64] B. Harvey,H. Kilov,, and H. Mili,“Specification of behavioral semantics in OO information modeling: Workshop report,” OOPS Messenger Addendum to the OOPSLA’93 Proc., ACM Press.
    [65] R. Helm, I.M. Holland, and D. Gangopadhyay, "Contracts: Specifying Behavioral Compositions in Object-Oriented Systems," Proc. OOPSLA 90, ACM Press, New York, 1990, pp. 169-180.
    [66] B. Henderson-Sellers and J. Edwards, “The Object‐Oriented Systems Life Cycle,” Comm. ACM, Sept. 1990, pp. 142‐159.
    [67] R.C. Holt,T. Stanhope,, and G. Lausman,“Object oriented computing: Looking ahead to the year 2000,” ITRC TR-9101, Apr. 1991, Information Technology Research Center, Univ. of Toronto.
    [68] E. Horowitz and J.B. Munson,“An expansive view of reusable software,” IEEE Trans. Software Engineering, vol. 10, no. 5, pp. 477-487, 1984.
    [69] E. Horowitz,A. Kemper,, and B. Narasimhan,“A survey of application generators,” IEEE Software, vol. 2, no. 1, Jan. 1985.
    [70] G. M. Hoydalsvik and G. Sindre,“On the purpose of OO analysis,” Proc. OOPSLA’93, ACM Press, pp. 240-255,Washington, D.C., Sept.26- Oct.1, 1993.
    [71] J. C. Huang,“State constraints and pathwise decomposition of programs,” IEEE Trans. Software Engineering, vol. 16, no. 8, pp. 880-898, Aug. 1990.
    [72] Y. Intrator and H. Mili,“Getting more out of your classes: Building families of programs in OOP,” Tech report no. 234,Dept. Maths and Computer Science,Univ. of Quebec at Montreal, May13, 1994.
    [73] S. Isoda,“Experience report on a software reuse project: Its structure, activities, and statistical results,” Proc. 14th Int’l Conf. Software Engineering, pp. 320-326,Melbourne, Australia, May11-15, 1992.
    [74] I. Jacobson, Object-Oriented Software Engineering, Addison-Wesley/ACM Press, New York, 1991.
    [75] R.E. Johnson, "Documenting Frameworks Using Patterns," Proc. OOPSLA 92, ACM Press, New York, 1994, pp. 63-76.
    [76] G. Jones,“Methodology/Environment Support for Reusability,” Software Reuse: Emerging Tech nology, Will Tracz, ed., IEEE CS Press, pp. 190-193, 1990.
    [77] T. Capers Jones,“Reusability in programming: A survey of the state of the art,” IEEE Trans. Software Engineering, vol. 10, no. 5, pp. 488-494, Sept. 1984.
    [78] G.E. Kaiser and D. Garlan,“Melding software systems from reusable building blocks,” IEEE Software, pp. 17-24, July 1987.
    [79] K.C. Kang,“A reuse-based software development methodology,” Software Reuse: Emerging Technology, Will Tracz, ed., pp. 194-196, IEEE CS Press 1990.
    [80] S. Katz,C. Richter,, and K.-S. The,“PARIS: A system for reusing partially interpreted schemas,” Proc. Ninth Int’l Conf. on Software Eng., pp. 377-385, 1987.
    [81] G. Kiczales and J. Lamping, "Issues in the Design and Specification of Class Libraries," Proc. OOPSLA '92, pp. 435-451, 1992.
    [82] P. Kruchten,E. Schonberg,, and J. Schwartz,“Software prototyping using the SETL programming language,” IEEE Software, vol. 1, no. 4, pp. 66-75, Oct. 1984.
    [83] C. Krueger, “Software Reuse,” ACM Computing Surveys, June 1992, pp. 131‐183.
    [84] S.S. Lam and A.U. Shankar,“Specifying modules to satisfy interfaces: A state transition system approach,” Distributed Computing, vol. 6, pp. 39-63, 1992.
    [85] R.G. Lanergan and C.A. Grasso,“Software engineering with reusable designs and code,” IEEE Trans. Software Engineering, vol. 10, no. 5, pp. 498-501, Sept. 1984.
    [86] J. Laski and W. Szermer,“Regression analysis of reusable program components,” Selected Papers from the Second Int’l Workshop on Software Reusability Advances in Software Reuse, IEEE CS Press, pp. 134-141,Lucca, Italy, Mar.24-26, 1993.
    [87] D. Lea,“Christopher Alexander: An introduction for OO designers,” Software Engineering Notes, vol. 19, no. 1, pp. 39-46, Jan. 1994.
    [88] D.B. Lenat,R.V. Guha,K. Pittman,D. Pratt,, and M. Shepherd,“CYC: Toward programs with common sense,” Comm. ACM, special issue on Natural Language Processing, vol. 33, no. 8, pp. 30-49, Aug. 1990.
    [89] L.S. Levy,“A metaprogramming method and its economic justification,” IEEE Trans. Software Engineering, vol. 12, no. 2, pp. 272-277, Feb. 1986.
    [90] M. Lubars,G. Meredith,C. Potts,, and C. Richter,“Object oriented analysis for evolving systems,” Proc. 14th Int’l Conference on Software Engineering, pp. 173-185, May11-15, 1992Melbourne, Australia, ACM Press.
    [91] M.D. Lubars,“Wide-spectrum support for software reusability software reuse: Emerging technology,” pp. 275-281, ed. W. Tracz, IEEE CS Press, 1990.
    [92] Luqi,“A Graph Model for Software Evolution,” IEEE Trans. Software Engineering, vol. 16, no. 8, pp. 917-927, Aug. 1990.
    [93] Y.S. Yoelle, S. Maarek,D.M. Berry,, and G.E. Kaiser,“An information retrieval approach for automatically constructing software libraries,” IEEE Trans. Software Engineering, vol. 17, no. 8, pp. 800-813, Aug. 1991.
    [94] N. Maiden and A. Sutcliffe, “Exploiting Reusable Specification Through Analogy,” Comm. ACM, Apr. 1992, pp. 55‐64.
    [95] N.A. Maiden and A. Sutcliffe,“People-oriented software reuse: the very thought,” Proc. Second Int’l Workshop on Software Reuse, Computer, pp. 176-185,PressLucca, Italy March24-26, 1993.
    [96] J.H. Maloney,A. Borning,, and B.N. Freeman-Benson,“Constraint technology for user-interface construction in ThingLab II,” pp. 381-388, Proc. OOPSLA’89, ACM Press, Oct. 1989.
    [97] J. Margono and T.E. Rhoads,“Software reuse economics: cost-benefit analysis on a large-scale ada project,” Proc. 14th Int’l Conference on Software Engineering, pp. 338-348, May11-15, Melbourne, Australia.
    [98] J Martin,“Fourth Generation Languages—Volume I: Principles,” Prentice-Hall 1985.
    [99] Y. Matsumoto,“A Software Factory: An Overall Approach to Software Production Tutorial: Software Reusability,” pp. 155-178, ed. P. Freeman, IEEE Press, 1987.
    [100] Y. Matsumoto,“Experiences from software reuse in industrial process control applications,” Selected Papers from the Second Int’l Workshop on Software Reusability Advances in Software Reuse, pp. 186-195,Lucca, Italy, March24-26, 1993 IEEE CS Press.
    [101] R. McCain,“A software development methodology for reusable components Proc. 18th Hawaii Conference on Systems Sciences, Hawaii, Jan. 1985.
    [102] D.B. McCarn,“MEDLINE: an introduction to on-line searching,” J. American Society for Information Science, vol. 31, no. 3, pp. 181-192, May 1980.
    [103] C. McClure, "The Three R's of Software Automation: Re-engineering, Repository," Reusability.Englewood Cliffs, N.J.: Prentice Hall, 1992.
    [104] D. McIlroy,“Mass produced software components,” Software Engineering Concepts and Techniques, 1968 NATO Conference on Software Engineering, pp. 88-98, eds. J. M. Buxton, P. Naur, and B. Randell, Petrocelli/Charter, New York 1969.
    [105] S. Mellor,“The Shlaer-Mellor Method,” Tutorial notes, OOPSLA’93, Washington, D.C. Sept.26 - Oct.1, 1993 ACM Press.
    [106] B. Meyer,Object-Oriented Software Construction. Englewood Cliffs, NJ: Prentice-Hall, 1988.
    [107] B. Meyer,“Lessons from the design of the eiffel libraries,” Communications of the ACM,. vol. 33, no. 9, pp. 69-88, Sept. 1990.
    [108] A. Mili,R. Mili,, and R. Mittermeir,“Storing and retrieving software components: a refinement-based approach,” Proc. 16th Int’l Conf. on Software Engineering,Sorrento, Italy, May 1994.
    [109] H. Mili,J. Sibert,, and Y. Intrator,“An OO model based on relations,” J. Systems and Software, vol. 12, pp. 139-155, 1990.
    [110] H. Mili,A. E. El Wahidi,, and Y. Intrator,“Building a graphical interface for an OO tool for software reuse,” Proc. TOOLS USA’92, ed. B. Meyer, Aug.2-6, 1992,Santa Barbara, Calif.
    [111] H. Mili and H. Li,“Data abstraction in softclass, an OO case tool for software reuse,” Proc. TOOLS’93, pp. 133-149,Santa-Barbara, CA Aug.2-5, ed. B. Meyer, Prentice-Hall.
    [112] H. Mili,O. Marcotte,, and A. Kabbaj,“Intelligent component retrieval for software reuse,” Proc. 3rd Maghrebian Conf. on Artificial Intelligence, and Software Engineering, pp. 101-114, Apr.11-14, 1994,Rabat, Morocco.
    [113] H. Mili,R. Rada,W. Wang,K. Strickland,C. Boldyreff,L. Olsen,J. Witt,J. Heger,W. Scherr,, and P. Elzer,“Practitioner and SoftClass: A Comparative Study of Two Software Reuse Research Projects,” J. Systems and Software, vol. 27, May 1994.
    [114] Santosh K. Misra and Paul J. Jalics, "Third-Generation Versus Fourth-Generation Software Development," IEEE Software, vol. 6, p. 14, July 1989.
    [115] Th. Moineau, and M.C. Gaudel,“Software reusability through formal specifications, Proc. 1st Int’l Workshop on Software Reusability, Universitaet Dortmund 1991.
    [116] J.M. Morel and Jean Faget,“The REBOOT environment,” Selected Papers from the 2nd Int’l Workshop on Software Reusability Advances in Software, pp. 80-88,ReuseLucca, Italy, March24-26, 1993, IEEE CS Press.
    [117] M. Moriconi, and T.C. Winkler,“Approximate reasoning about the semantic effects of program changes,” IEEE Trans. Software Engineering, vol. 16, no. 9, pp. 980-992, Sept. 1990.
    [118] J. Mostow and M. Barley,“Automated reuse of design plans,” Proc. Int’l Conf. on Engineering Design,Boston, MA 1987.
    [119] B.A. Myers, "User-Interface Tools: Introduction and Survey," IEEE Software, pp. 15-23, Jan. 1989.
    [120] K. Narayanaswamy,W. Scacchi,“Maintaining configurations of evolving software systems,” IEEE Trans. Software Engineering, vol. 13, no. 3, pp. 324-334, March 1987.
    [121] J.M. Neighbors,“The DRACO approach to constructing software from reusable components,” IEEE Trans. Software Engineering, pp. 564-574, Sept. 1984.
    [122] H. Ossher and W. Harrison, ”Combination of Inheritance Hierarchies,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 25–40, Oct. 1992.
    [123] H. Partsch and R. Steinbruggen, "Program Transformation Systems," ACM Computing Survey, vol. 15, no. 3, pp. 199-236, Sept. 1983.
    [124] L. Peters,“Advanced Structured Analysis and Design,” ed. R.W. Jensen, Prentice Hall, 1987.
    [125] M. Pittman, "Lessons Learned in Managing Object-Oriented Development," IEEE Software, Jan. 1993, pp. 43-53.
    [126] A. Podgurski and L.A. Clarke, "A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance," IEEE Trans. Software Eng., vol. 16, no. 9, pp. 965-979, Sept. 1990.
    [127] A. Podgurski and L. Pierce,“Retrieving reusable software by sampling behavior,” ACM Transactions Software Engineering and Methodology, vol. 2 no. 3, pp. 286-303, July 1993.
    [128] J.S. Poulin and J.M. Caruso,“A reuse metrics and return on investment model,” selected papers from the 2nd. int’l workshop on software reusability advances in software, pp. 52-166,ReuseLucca, Italy, March24-26, 1993, IEEE CS Press.
    [129] R. Prieto-Diaz and J. M. Neighbors,“Module interconnection languages,”J. Syst. Software, vol. 6, no. 4, pp. 307–334, Nov. 1986.
    [130] R. Prieto-Diaz,“Domain analysis for reusability,” Proc. COMPSAC’87, pp. 23-29, 1987, IEEE Press.
    [131] R. Prieto-Diaz and P. Freeman,“Classifying software for reusability Software, pp. 6-16, Jan. 1987.
    [132] R. Prieto-Diaz,“Integrating domain analysis and reuse in the software development process Proc. 3rd Annual Workshop on Methods and Tools for Reuse, CASE Center, Syracuse University, Syracuse, N.Y. June13-15, 1990.
    [133] R. Prieto-Diaz, "Status Report: Software Reusability," IEEE Software, pp. 61-66, May 1993.
    [134] R. Rada,H. Mili,E. Bicknell,, and M. Blettner,“Development and application of a metric on semantic nets IEEE Trans. Systems, Man, and Cybernetics, Jan./Feb. 1989, vol. 19, no. 1, pp. 7-30.
    [135] C.V. Ramamoorthy,V. Garg,, and A. Prakash,“Support for reusability in Genesis,” IEEE Trans. Software Engineering, vol. 14, no. 8, pp. 1145-1154, Aug. 1988.
    [136] C. Rich and R. Waters,“Automatic programming: myths and prospects Computer, pp. 40-51, Aug. 1988.
    [137] C. Rich and R. Waters,“The programmer’s apprentice: A research overview,” Computer, pp. 1-25, Nov. 1988.
    [138] K.S. Rubin and J. Goldberg, "Object Behaviour Analysis," Comm. ACM, vol. 35, no. 9, pp. 48-62, Sept. 1992.
    [139] J. Rumbaugh,“Relations as semantic constructs in an object-oriented language,” Proc. of OOPSLA‘87, pp. 466-481, 1987.
    [140] C.L. Chang, R.A. Stachowitz, and J.B. Combs, “Validation of Nonmonotonic Knowledge-Based Systems,” Proc. IEEE Int'l Conf. Tools for Artificial Intelligence, Nov. 1990.
    [141] D. Rumelhart and D. Norman,“Representation in memory,” Center for Human Information Processing, La Jolla, Calif.
    [142] G. Salton and M. McGill, Introduction to Modern Information Retrieval, McGraw Hill, New York, 1983.
    [143] M. Shaw,“Abstraction techniques in modern programming languages,” Software, pp. 10-26 Oct. 1984.
    [144] M. Shaw,“Prospects for an Engineering Discipline of Software,” Software, vol. 7, no. 6, pp. 5-24, Nov. 1990.
    [145] J.J. Shilling and P.F. Sweeny,“Three steps to views: Extending the OO paradigm,” Proc. ACM Conf. on Object Oriented Programming, Systems, Languages, and Applications, pp. 353-361,New Orleans, Louisiana, Oct. 1989, ACM.
    [146] S. Shlaer and S. Mellor, Object-Oriented Systems: Modeling the World in Data, Yourdon Press, Englewood Cliffs, N.J., 1988.
    [147] B.G. Silverman,“Survey of expert critiquing systems: practical and theoretical frontiers,” Communications of the ACM, vol. 35, no. 4, pp. 06-127, Apr. 1992.
    [148] M.A. Simos,“The domain-oriented software life cycle: Toward an extended process model for reusability software reuse: emerging technology,” pp. 354-363, ed. Will Tracz, IEEE CS Press, 1990.
    [149] M. Sirkin,D. Batory,, and V. Singhal,“Software components in a data structure precompiler, Proc. 15th Int’l Conf. on Software Engineering, pp. 437-446,Baltimore, Maryland, May17-21, 1993, ACM Press.
    [150] A. Snyder, ”Encapsulation and Inheritance in Object-Oriented Programming Languages,” Proc. Object-Oriented Programming Languages and Applications, ACM SIGPLAN Notices, vol. 21, no 11, pp. 38–45, Nov. 1986.
    [151] L.S. Sorumgard,G. Sindre,, and F. Stokke,“Experiences from application of a faceted classification scheme,” Selected papers from the 2nd Int’l Workshop on Software Reusability Advances in Software, pp. 116-124,ReuseLucca, Italy, March24-26, 1993, IEEE CS Press.
    [152] B. Stroustrup, The C++ Programming Language. Addison-Wesley, 1986.
    [153] W. Tracz, "Parameterized Programming in Lileanna," Proc. 2nd Int'l Workshop Software Reuse, IEEE Computer Soc. Press, Los Alamitos, Calif., Mar. 1993, pp. 66-78.
    [154] J. Verner and G. Tate, “Estimating Size and Effort in Fourth Generation Development,” IEEE Software, pp. 15–22, July 1988.
    [155] P. Wegner,“Varieties of reusability tutorial: Software reusability, ed. Peter Freeman , pp. 24-38, 1987.
    [156] P. Wegner,“Dimensions of OO modeling, OO computing,” Computer, CS Press, vol. 25 no. 10, pp. 2-20, Oct. 1992.
    [157] R.J. Wirfs-Brock, B. Wilkerson, and L. Wiener, Designing Object Oriented Software, Prentice Hall, Upper Saddle River, N.J., 1990.
    [158] R. Wirfs-Brock and R.E. Johnson,“Surveying current research in OO design,” Communications of the ACM, vol. 33, no. 9, pp. 105-124. , Sept. 1990.
    [159] S.N. Woodfield,D.W. Embley,, and D.T. Scott,“Can programmers reuse software,” Software, July 1987, pp. 52-59.
    [160] E. Yourdon, Decline and Fall of the American Programmer.Englewood Cliffs, N.J.: Prentice Hall, 1992.
    [161] A.M. Zaremski and J.M. Wing, "Signature Matching: A Key to Reuse," ACM Software Eng. Notes, vol. 18, no. 5, pp. 182-190, Dec. 1993.
    [162] P. Zave,W. Schell,“Salient features of an executable specification language and its environment,” IEEE Trans. Software Engineering, vol. 12, no 2, pp. 312-325, Feb. 1986.
    [163] P. Zave and M. Jackson, "Conjunction as Composition," ACM Trans. Software Engineering and Methodology, vol. 2, no. 4, pp. 379-411, Oct. 1993.

    Index Terms:
    Software reuse, managerial aspects of software reuse, software reuse measurements, building reusable components, OO software development, software component retrieval, adapting reusable components.
    Hafedh Mili, Fatma Mili, Ali Mili, "Reusing Software: Issues and Research Directions," IEEE Transactions on Software Engineering, vol. 21, no. 6, pp. 528-562, June 1995, doi:10.1109/32.391379
    Usage of this product signifies your acceptance of the Terms of Use.