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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Booch, G.: Software Components With Ada. Benjamin/Cummings, Menlo Park, CA (1987).
Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. The MIT Press, Cambridge, MA (1990).
Flamig, B.: Practical Algorithms in C++. Coriolis Group Book (1995).
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.
Meyer, B.: Object-Oriented Software Construction. 2nd edn. Prentice Hall PTR, Upper Saddle River, New Jersey (1997).
Mehlhorn, K., Naher, S.: “LEDA: A Library of Efficient Data Structures and Algorithms” Communications of the ACM 38, No. 1, January 1995, 96–102.
Musser, D. R., Saini, A.: STLT utorial and Reference Guide. Addison-Wesley Publishing Company (1995).
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.
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.
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.
Sitaraman, M: “Impact of Performance Considerations on Formal Specification Design,” Formal Aspects of Computing 8, 1996, 716–736.
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.
Weide, B.W., Ogden, W.F., Sitaraman, M.: “Recasting Algorithms to Encourage Reuse,” IEEE Software 11, No. 5, September 1994, 80–89.
Weihe, K.: “Reuse of Algorithms: Still A Challenge to Object-Oriented Programming,” ACM SIGPLAN OOPSLA Proceedings, 1997, 34–46.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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