Advertisement

A Data Abstraction Alternative to Data Structure/Algorithm Modularization

  • Murali Sitaraman
  • Bruce W. Weide
  • Timothy J. Long
  • William F. Ogden
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Short Path Data Abstraction Short Path Problem Information Hiding Calling Module 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Booch, G.: Software Components With Ada. Benjamin/Cummings, Menlo Park, CA (1987).MATHGoogle Scholar
  2. 2.
    Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. The MIT Press, Cambridge, MA (1990).MATHGoogle Scholar
  3. 3.
    Flamig, B.: Practical Algorithms in C++. Coriolis Group Book (1995).Google Scholar
  4. 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. 5.
    Meyer, B.: Object-Oriented Software Construction. 2nd edn. Prentice Hall PTR, Upper Saddle River, New Jersey (1997).MATHGoogle Scholar
  6. 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.CrossRefGoogle Scholar
  7. 7.
    Musser, D. R., Saini, A.: STLT utorial and Reference Guide. Addison-Wesley Publishing Company (1995).Google Scholar
  8. 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.CrossRefGoogle Scholar
  9. 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.CrossRefGoogle Scholar
  10. 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. 11.
    Sitaraman, M: “Impact of Performance Considerations on Formal Specification Design,” Formal Aspects of Computing 8, 1996, 716–736.CrossRefMATHGoogle Scholar
  12. 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.CrossRefGoogle Scholar
  13. 13.
    Weide, B.W., Ogden, W.F., Sitaraman, M.: “Recasting Algorithms to Encourage Reuse,” IEEE Software 11, No. 5, September 1994, 80–89.CrossRefGoogle Scholar
  14. 14.
    Weihe, K.: “Reuse of Algorithms: Still A Challenge to Object-Oriented Programming,” ACM SIGPLAN OOPSLA Proceedings, 1997, 34–46.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Murali Sitaraman
    • 1
  • Bruce W. Weide
    • 1
  • Timothy J. Long
    • 2
  • William F. Ogden
    • 1
  1. 1.Computer Science and Electrical EngineeringWest Virginia UniversityMorgantown
  2. 2.Computer and Information ScienceThe Ohio State UniversityColumbus

Personalised recommendations