Skip to main content

The Construction Principles of the Class Library Karla

  • Conference paper
  • First Online:
  • 3045 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1766))

Abstract

This article shows how to construct robust class libraries in the context of flexibility, implementation efficiency and extensibility as further design goals. A library is called robust if (1) no errors can be introduced into an application due to its use or inheritance from it, (2) error messages do not point deep into library code but into the user’s application, and (3) statically checkable incorrect uses of library classes are recognized by compilers. The principles derived from a theoretical analysis have been applied practically in Karla, a robust class library of data structures and algorithms the authors designed and implemented, and that is being used for research projects and student education.

The main focus of this article is on the construction of hierarchies of abstract classes. The analysis shows that it is not possible in general to achieve all of the above design goals for robust libraries at the same time. The only solution that ensures robustness is to drop one of these criteria. Redesigning an existing library for robustness may lead to an exponential growth in the number of classes in the hierarchy of abstract classes. However, it is shown that this class explosion can be controlled by automatically generating the required additional classes.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Booch. Object-Oriented Design with Applications. Benjamin/Cummings Publishing Company, 1991.

    Google Scholar 

  2. K. K. Dhara and G. T. Leavens. Forcing behavioral subtyping through specification inheritance. In Proceedings 18th International Conference on Software Engineering, pages 258–267. IEEE, 1996.

    Google Scholar 

  3. A. Frick, R. Neumann, and W. Zimmermann. A method for the construction of robust class hierarchies. In Proceedings of WOON’ 96, 1996.

    Google Scholar 

  4. A. Frick, W. Zimmer, and W. Zimmermann. On the design of reliable libraries. In TOOLS 17—Technology of Object-Oriented Programming, pages 13–23, 1995.

    Google Scholar 

  5. A. Frick, W. Zimmer, and W. Zimmermann. Konstruktion robuster und flexibler Klassenbibliotheken. Informatik—Forschung und Entwicklung, 11(4):168–178, 1996. A preliminaryv ersion of this article was published in Softwaretechnik’95, pp. 35–46.

    Article  Google Scholar 

  6. Arne Frick, Rainer Neumann, and Wolf Zimmermann. Eine Methode zur Konstruktion robuster Klassenhierarchien. Informatik—Forschung und Entwicklung, 12(4):186–195, 1997.

    Article  Google Scholar 

  7. Jozsef Frigo, Rainer Neumann, and Wolf Zimmermann. Generation of robust class hierarchies. In TOOLS 23—Technology of Object-Oriented Programming and Systems, pages 282–291, 1997.

    Google Scholar 

  8. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Software Components. Addison-Wesley, 1995.

    Google Scholar 

  9. B. Liskov and J. Wing. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6):1811–1841, 1994.

    Article  Google Scholar 

  10. R. Mitchell, I. Maung, J. Howse, and T. Heathcote. Checking software contracts. In R. Ege, M. Singh, and B. Meyer, editors, TOOLS 17-Technology of Object-Oriented Languages and Systemes, pages 97–106, 1995.

    Google Scholar 

  11. H. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object-Oriented Modelling and Design. Prentice-Hall, 1991.

    Google Scholar 

  12. H. W. Schmidt and R. Walker. TOF: An efficient type system for objects and functions. Technical Report TR-CS-92-17, Department of Computer Science, The Australian National University, November 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zimmermann, W., Frick, A., Neumann, R. (2000). The Construction Principles of the Class Library Karla . In: Jazayeri, M., Loos, R.G.K., Musser, D.R. (eds) Generic Programming. Lecture Notes in Computer Science, vol 1766. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-39953-4_5

Download citation

  • DOI: https://doi.org/10.1007/3-540-39953-4_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41090-4

  • Online ISBN: 978-3-540-39953-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics