Skip to main content
Log in

A perspective of generative reuse

  • Published:
Annals of Software Engineering

Abstract

This paper presents a perspective of generative reuse technologies as they have evolved over the last 15 years or so and a discussion of how generative reuse addresses some key reuse problems. Over that time period, a number of different reuse strategies have been tried ranging from pure component reuse to pure generation. The record of success is mixed and the evidence is sketchy. Nevertheless, the paper will use some known metric evidence plus anecdotal evidence, personal experience, and suggestive evidence to define some of the boundaries of the success envelope. Fundamentally, the paper will make the argument that the first order term in the success equation of reuse is the amount of domain-;specific content and the second order term is the specific technology chosen in which to express that content. The overall payoff of any reuse system correlates well with the amount of content expressed in the domain specific elements. While not a silver bullet, technology is not without its contribution and the degree of payoff for any specific technology is sensitive to many factors. The paper will make the argument that the generative factors predominate over other technology factors. By looking closely at several successful generation systems that are exemplars for classes of related systems, the paper will examine how those classes have solved problems associated with the more convention reuse of concrete components expressed in conventional programming languages. From this analysis, it will distill the key elements of generative success and provide an opinion of approximately where each class of generative system fits in the overall picture. The result is a guide to the generative reuse technologies that appear to work best today.

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

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

  • Balzer, R. (1989), “A Fifteen-Year Perspective on Automatic Programming,” In Software Reusability, II, T.J. Biggerstaff and A.J. Perlis, Eds., Addison-Wesley/ACM Frontier Series, Reading, MA, pp. 289– 311.

    Google Scholar 

  • Basili, V.R., L.C. Briand and W.L. Melo (1996), “How Reuse Influences Productivity in Object-Oriented Systems,” Communications of the ACM 39, 1, 104–116, http://www.cs.umd.edu/ TRs/authors/Victor R Basili.html.

    Article  Google Scholar 

  • Batory, D. (1997a), Personal Communication, http://www.cs.utexas.edu/users/dsb/.

  • Batory, D. (1997b), “Intelligent Components and Software Generators,” Technical Report 97–06, Department of Computer Sciences, University of Texas at Austin, Austin, TX.

    Google Scholar 

  • Batory, D., G. Chen, E. Robertson and T. Wang (1997), “Web-Advertised Generators and Design Wizards,” Technical Report, University of Texas, Austin, TX, http://www.cs.utexas.edu/ users/schwartz/pub.htm. Also to appear in Proceedings of the International Conference on Software Engineering, June, 1998, Victoria, BC, Canada.

    Google Scholar 

  • Batory, D. and B.J. Geraci (1997), “Validating Component Compositions and Subjectivity in GenVoca Generators,” IEEE Transactions on Software Engineering 23, 2, 67–82.

    Article  Google Scholar 

  • Batory, D. and S. O'Malley (1992), “The Design and Implementation of Hierarchical Software Systems,” ACM Transactions on Software Engineering and Methodology 1, 4, 355–398.

    Article  Google Scholar 

  • Batory, D., V. Singhal and M. Sirkin (1992), “Implementing a Domain Model for Data Structures,” International Journal of Software Engineering and Knowledge Engineering 2, 3, 375–402.

    Article  Google Scholar 

  • Batory, D., V. Singhal, M. Sirkin and J. Thomas (1993), “Scalable Software Libraries,” In ACM SIGSOFT '93: Symposium on the Foundations of Software Engineering, ACM, New York, NY, pp. 191– 199.

    Chapter  Google Scholar 

  • Baxter, I.D. (1992), “Design Maintenance Systems,” Communications of the ACM 55, 4, 73–89.

    Article  Google Scholar 

  • Bayfront Technologies (1997), http://www.bayfronttechnologies.com/.

  • Biggerstaff, T.J. (1992), “An Assessment and Analysis of Software Reuse,” In Advances in Computers 34, M. Yovits, Ed., Academic Press, New York, NY, pp. 1–57.

    Google Scholar 

  • Biggerstaff, T.J. (1993), “Directions in Software Development and Maintenance,” Keynote Address, In Conference on Software Maintenance, IEEE Computer Society Press, Los Alamitos, CA, pp. 2–10.

    Google Scholar 

  • Biggerstaff, T.J. (1994), “The Library Scaling Problem and the Limits of Concrete Component Reuse,” In Third International Conference on Software Reuse, IEEE Computer Society Press, Los Alamitos, CA, pp. 102–109.

    Chapter  Google Scholar 

  • Biggerstaff, T.J. (1997), “Anticipatory Optimization in Domain Specific Translation,” Microsoft Research Technical Report MSR-TR-97–22, Microsoft Corporation, Redmond, WA. To appear in Proceedings of the International Conference on Software Reuse, 1998, IEEE Computer Society Press, Los Alamitos, CA. See also publications page at http://www.research.microsoft.com/.

    Google Scholar 

  • Biggerstaff, T.J. (1998), “Composite Folding in Anticipatory Optimization,” Microsoft Research Technical Report, (forthcoming), Microsoft Corporation, Redmond, WA.

    Google Scholar 

  • Biggerstaff, T.J. and A.J. Perlis, Eds. (1989), Software Reusability, Vols. 1 and 2, AddisonWesley/ACM Frontier Series, Reading, MA.

    Google Scholar 

  • Biggerstaff, T.J. and C. Richter (1987), “Reusability Framework, Assessment, and Directions,” IEEE Software 4, 2, 41–49.

    Article  Google Scholar 

  • Booch, G. (1987), Software Components with Ada, Benjamin/Cummings, Menlo Park, CA.

    Google Scholar 

  • Frakes, W. and C. Terry (1996), “Software Reuse: Metrics and Models,” ACM Computing Surveys 28, 2, 415–435.

    Article  Google Scholar 

  • Goguen, J. (1986), “Reusing and Interconnecting Components,” IEEE Computer 19, 2, 16–28.

    Google Scholar 

  • Goguen, J. (1996), “Parameterized Programming and Software Architecture,” Keynote address, In Fourth International Conference on Software Reuse, IEEE Computer Society Press, Los Alamitos, CA, pp. 2–10.

    Chapter  Google Scholar 

  • Goguen, J. and A. Socorro (1995), “Module Composition and System Design for the Object Paradigm,” Journal of Object-Oriented Programming 7, 5, 47–55.

    Google Scholar 

  • Green, C. (1969), “The Application of Theorem Proving to Question Answering Systems,” PhD Dissertation, Stanford University, Stanford, CA.

  • Hall, P. and R. Weedon (1993), “Object Oriented Module Interconnection Languages,” In IEEE Proceedings of Advances in Software Reuse, IEEE Computer Society Press, Los Alamitos, CA, pp. 29–38.

    Chapter  Google Scholar 

  • Johnson, R.E. and B. Foote (1988), “Designing Reusable Classes,” Journal of Object Oriented Programming 1, 2, 22–35. For related information, see http://st-www.cs.uiuc.edu/users/ johnson/.

    Google Scholar 

  • Kant, E. (1993), “Synthesis of Mathematical Modeling Software,” IEEE Software 7, 5. See also http://www.sig.net/~scicomp/kant.html.

  • Katz, M.D. and D. Volper (1992), “Constraint Propagation in Software Libraries of Transformation Systems,” International Journal of Software Engineering and Knowledge Engineering 2, 3, 355–374.

    Article  Google Scholar 

  • Kiczales, G., J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier and J. Irwin (1997), “Aspect-Oriented Programming,” Technical Report SPL97–008 P9710042, Xerox PARC, Palo Alto, CA. See also http://www.parc.xerox.com/spl/members/gregor/.

    Google Scholar 

  • Lewis, J.A., S.M. Henry, D.G. Kafura and R.S. Schulman (1992), “On the Relationship Between the Object-Oriented Paradigm and Software Reuse: An Empirical Investigation,” Journal of Object Oriented Programming 5, 4, 35–41. For related references, see also http://www.cs.vt. edu/vitae/Henry.html.

    Google Scholar 

  • Lim, W.C. (forthcoming), “Managing Software Reuse,” Prentice-Hall, Englewood Cliffs, NJ.

  • Mendhekar, A., G. Kiczales and J. Lamping (1997), “RG: A Case-Study for Aspect-Oriented Programming,” Technical Report SPL97–007 P9710045, Xerox PARC, Palo Alto, CA.

    Google Scholar 

  • Neighbors, J.M. (1980), “Software Construction Using Components,” PhD Dissertation, University of California, Irvine, CA. Also on http://www.bayfronttechnologies.com/thesis. htm.

  • Neighbors, J.M. (1984), “The Draco Approach to Constructing Software from Reusable Components,” IEEE Transactions on Software Engineering 10, 564–574.

    Article  Google Scholar 

  • Neighbors, J.M. (1989), “Draco: A Method for Engineering Reusable Software Systems,” In Software Reusability, T.J. Biggerstaff and A. Perlis, Eds., Addison-Wesley/ACM Press, Reading, MA.

    Google Scholar 

  • Neighbors, J.M. (1992), “The Evolution from Software Components to Domain Analysis,” International Journal of Software Engineering and Knowledge Engineering 2, 3, 325–354.

    Article  Google Scholar 

  • Neighbors, J.M. (1996), “Finding Reusable Software Components in Large Systems,” In Third Working Conference on Reverse Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 2–10.

    Google Scholar 

  • Neighbors, J.M. (1995–1997), Personal Communication.

  • Neighbors, J.M., J. Liete and G. Arango (1984), “Draco 1.3 Manual,” Technical Report RT003.3, ICS Department, University of California, Irvine, CA. Draco 1.2 manual updated with 1.3 revisions on http://www.bayfronttechnologies.com/manual.htm.

  • Nishimoto, A. and W.C. Lim (1992), “The Continued Evolution of a Program of Reuse in a Maintenance Environment,” In WISR (Workshop on the Institutionalization of Reuse), ftp://gandalf.umcs. maine.edu/pub/WISR/wisr5/proceedings.

  • Novak, G.S. (1983), “GLISP: A Lisp-Based Language with Data Abstraction,” A. I. Magazine 4, 3, 37–47.

    MathSciNet  Google Scholar 

  • Novak, G.S. (1994), “Generating Programs from Connections of Physical Models,” In Proceedings of the Tenth Conference on AI for Applications, IEEE Computer Society Press, Los Alamitos, CA, pp. 224–230.

    Chapter  Google Scholar 

  • Novak, G.S. (1995), “Creation of Views for Reuse of Software with Different Data Representations,” IEEE Transactions on Software Engineering 21, 12, 993–1005. See also http://www.cs.utexas. edu/users/novak/.

    Article  MathSciNet  Google Scholar 

  • Object-Oriented Frameworks Bibliography, http://bilbo.ide.hk-r.se:8080/~michaelm/fwpages/fwbibl.html.

  • Poulin, J.S. (1997), Measuring Software Reuse, Addison-Wesley/Longman, Reading, MA.

    Google Scholar 

  • Prieto-Diaz, R. and J.M. Neighbors (1986), “Module Interconnection Languages,” The Journal of Systems and Software 6, 307–334.

    Article  Google Scholar 

  • Ritter, G.X. (1993), Image Algebra Handbook, University of Florida, Gainesville, FL, ftp://ftp. cis.ufl.edu:/pub/src/ia/documents.

    Google Scholar 

  • Ritter, G.X. and J.N. Wilson (1996), Handbook of Computer Vision Algorithms in Image Algebra, CRC Press, Boca Raton, FL.

    MATH  Google Scholar 

  • Ritter, G.X., J.N Wilson and J.L. Davidson (1990), “Image Algebra: An Overview,” Computer Vision, Graphics, and Image Processing 49, 271–331. See also http://www.cise.ufl.edu/~jnw/CCVV/.

    Google Scholar 

  • Rix, M. (1992a), “Case Study of a Successful Firmware Reuse Program,” WISR (Workshop on the Institutionalization of Reuse), ftp://gandalf.umcs.maine.edu/pub/WISR/wisr5/ proceedings/.

  • Rix, M. (1992b), Presentation and Poster Session, WISR (Workshop on the Institutionalization of Reuse).

  • Singhal, V. (1996), Personal Communication.

  • Singhal, V. and D. Batory (1993), “P++: A Language for Software System Generators,” Technical Report TR-93–16, University of Texas, Austin, TX.

    Google Scholar 

  • Sirkin, M., D. Batory and V. Singhal (1993), “Software Components in a Data Structure Precompiler,” In International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA, pp. 437–446.

    Google Scholar 

  • Smaragdakis, Y. and D. Batory (1997), “Implementing Reusable OO Components,” Unnumbered Technical Report, http://www.cs.utexas.edu/users/schwartz/pub.htm.

  • Smith, D.R. (1990), “KIDS: A Semiautomatic Program Development System,” IEEE Transactions on Software Engineering 16, 9, 1024–1043.

    Article  Google Scholar 

  • Smith, D.R. (1991), “KIDS – A Knowledge-Based Software Development System,” In Automating Software Design, M. Lowry and R. McCartney, Eds., AAAI/MIT Press, pp. 483–514.

  • Smith, D.R. (1996), “Toward a Classification Approach to Design,” In The Proceedings of the Fifth International Conference on Algebraic Methodology and Software Technology, AMAST '96, Lecture Notes in Computer Science, Springer, Berlin, pp. 62–84.

    Chapter  Google Scholar 

  • Smith, D.R. and C.C. Green (1996), “Toward Practical Applications of Software Synthesis,” In ACM(SIGSOFT) Proceedings of the First Workshop on Formal Methods in Software Practice, ACM, New York, NY, pp. 31–39.

    Google Scholar 

  • Smith, D.R., E.A. Parra and S.J. Westfold (1996), “Synthesis of High-Performance Transportation Schedulers,” In Advanced Planning Technology, A. Tate, Ed., AAAI Press, Menlo Park, CA, pp. 226–234. See also http://www.kestrel.edu/HTML/publications.html.

    Google Scholar 

  • Srinivas, Y.V. and R. Jullig (1995), “SPECWARE: TM Formal Support for Composing Software,” In Proceedings of the Conference of Mathematics of Program Construction, Lecture Notes in Computer Science 947, Springer, Berlin, pp. 399–422.

    Google Scholar 

  • Srinivas, Y.V. and J.L. McDonald (1996), “The Architecture of SPECWARETM, a Formal Software Development System,” Technical Report KES.U.96.7, Kestrel Institute, Palo Alto, CA.

    Google Scholar 

  • Tracz, W. (1993), “Parameterized Programming in LILLEANNA,” In Proceedings of the 2nd International Workshop on Software Reuse, IEEE Computer Society Press, Los Alamitos, CA, pp. 66–78.

    Google Scholar 

  • VanHilst, M. and D. Notkin (1996a), “Using C++ Templates to Implement Role-Based Designs,” In JSSST International Symposium on Object Technologies and Systems (ISOTAS '96), Springer, New York, NY, pp. 22–37. Also available as Technical Report 95-07-02, University of Washington, Seattle, WA.

    Google Scholar 

  • VanHilst, M. and D. Notkin (1996b), “Using Role Components to Implement Collaboration-Based Designs,” Technical Report 96-04-01, University of Washington, Seattle, WA. See also http:// www.cs.washington.edu/homes/vanhilst/ or http://www.cs.washington.edu/ homes/notkin/.

    Google Scholar 

  • Waldinger, R. (1969), “Constructing Programs Automatically Using Theorem Proving,” PhD Dissertation, Carnegie-Mellon University, Pittsburgh, PA.

  • Woods, W.A. (1970), “Transition Network Grammars for Natural Language Analysis,Communications of the ACM 13, 10.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Biggerstaff, T.J. A perspective of generative reuse. Annals of Software Engineering 5, 169–226 (1998). https://doi.org/10.1023/A:1018924407841

Download citation

  • Issue Date:

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

Keywords

Navigation