Skip to main content

A Data Abstraction Alternative to Data Structure/Algorithm Modularization

  • Conference paper
  • First Online:

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

Abstract

Modularization along the boundaries of data structures and algorithms is a commonly-used software decomposition technique in computer science research and practice. When applied, however, it results in incomplete segregation of data structure handling and algorithm code into separate modules. The resulting tight coupling between modules makes it difficult to develop these modules independently, difficult to understand them independently, and difficult to change them independently. Object-oriented computing has maintained the traditional dichotomy between data structures and algorithms by encapsulating only data structures as objects, leaving algorithms to be encapsulated as single procedures whose parameters are such objects. For the full software engineering benefits of the information hiding principle to be realized, data abstractions that encapsulate data structures and algorithms together are essential.

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. Booch, G.: Software Components With Ada. Benjamin/Cummings, Menlo Park, CA (1987).

    MATH  Google Scholar 

  2. Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. The MIT Press, Cambridge, MA (1990).

    MATH  Google Scholar 

  3. Flamig, B.: Practical Algorithms in C++. Coriolis Group Book (1995).

    Google Scholar 

  4. Heym, W.D., Long, T.J., Ogden, W.F., Weide, B.W.: Mathematical Foundations and Notation of RESOLVE, Technical Report OSU-CISRC-8/94-TR45, Dept. of Computer and Information Science, The Ohio State University, Columbus, OH, Aug 1994.

    Google Scholar 

  5. Meyer, B.: Object-Oriented Software Construction. 2nd edn. Prentice Hall PTR, Upper Saddle River, New Jersey (1997).

    MATH  Google Scholar 

  6. Mehlhorn, K., Naher, S.: “LEDA: A Library of Efficient Data Structures and Algorithms” Communications of the ACM 38, No. 1, January 1995, 96–102.

    Article  Google Scholar 

  7. Musser, D. R., Saini, A.: STLT utorial and Reference Guide. Addison-Wesley Publishing Company (1995).

    Google Scholar 

  8. Parnas, D.L.: “On the criteria to be used in decomposing systems into modules.” Communications of the ACM 15, No. 12, December 1972, 1053–1058.

    Article  Google Scholar 

  9. Rushby, J., Owre, S., and Shankar, N.: “Subtypes for Specification: Predicate Subtyping in PVS,” IEEE Transactions on Software Engineering 24, No. 9, September 1998, 709–720.

    Article  Google Scholar 

  10. Sitaraman, M., Weide, B.W. (eds.): “Special Feature: Component-Based Software Using RESOLVE.” ACM SIGSOFT Software Engineering Notes 19, No. 4, October 1994, 21–67.

    Google Scholar 

  11. Sitaraman, M: “Impact of Performance Considerations on Formal Specification Design,” Formal Aspects of Computing 8, 1996, 716–736.

    Article  MATH  Google Scholar 

  12. Sitaraman, M., Weide, B.W., Ogden, W.F.: “On the Practical Need for Abstraction Relations to Verify Abstract Data Type Representations,” IEEE Transactions on Software Engineering 23, No. 3, March 1997, 157–170.

    Article  Google Scholar 

  13. Weide, B.W., Ogden, W.F., Sitaraman, M.: “Recasting Algorithms to Encourage Reuse,” IEEE Software 11, No. 5, September 1994, 80–89.

    Article  Google Scholar 

  14. Weihe, K.: “Reuse of Algorithms: Still A Challenge to Object-Oriented Programming,” ACM SIGPLAN OOPSLA Proceedings, 1997, 34–46.

    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

Sitaraman, M., Weide, B.W., Long, T.J., Ogden, W.F. (2000). A Data Abstraction Alternative to Data Structure/Algorithm Modularization. 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_9

Download citation

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

  • 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