Skip to main content

Software Reuse in an Object Oriented Framework: Distinguishing Types from Implementations and Objects from Attributes

  • Conference paper
Software Reuse: Advances in Software Reusability (ICSR 2000)

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

Included in the following conference series:

Abstract

Almost no object oriented programming languages offer distinct language constructs for the definition of types and their implementations; instead these are united into a single class concept. Similarly object oriented programming languages do not normally distinguish between object types, which may be independently instantiated, and attribute types, which may not. The paper shows how these distinctions can be used to develop both a specialized and a generalized bracket technique, and how the ideas lead to interesting possibilities for reusing code in a flexible and modular way.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Batory, D., Singhal, J., Thomas, J., Dasari, S., Geraci, B., Sirkin, M.: The GenVoca Model of Software-System Generators. IEEE Software, 89–94 (1994)

    Google Scholar 

  2. Baumgartner, G., Russo, V.F.: Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++. Software - Practice and Experience 25(8), 863–889 (1995)

    Article  Google Scholar 

  3. Black, A., Hutchinson, N., Jul, E., Levy, H.: Object Structure in the Emerald System. In: Proceedings of the OOPSLA 1986, ACM SIGPLAN Notices, Portland, Oregon, vol. 21 (1986)

    Google Scholar 

  4. Black, A., Hutchinson, N., Jul, E., Levy, H., Carter, L.: Distribution and Abstract Types in Emerald. IEEE Transactions on Software Engineering SE-13(1), 65–76 (1987)

    Article  Google Scholar 

  5. Bracha, G., Cook, W.: Mixin-based Inheritance. In: Proceedings of the ECOOP/OOPSLA 1990, pp. 303–311 (1990)

    Google Scholar 

  6. Courtois, P.J., Heymans, F., Parnas, D.L.: Concurrent Control with Readers and Writers. Communications of the ACM 14(10), 667–668 (1971)

    Article  Google Scholar 

  7. DeMichiel, L., Gabriel, R.: The Common Lisp Object System: An Overview. In: Proceedings of the ECOOP 1987, pp. 151–170 (1987)

    Google Scholar 

  8. Edwards, S.H., Shakir, G., Sitaraman, M., Weide, B.W., Hollingsworth, J.E.: A Framework for Detecting Interface Violations in Component-Based Software. In: Proceedings of the 5th International Conference on Software Reuse, pp. 46–55. IEEE, Los Alamitos (1998)

    Google Scholar 

  9. Evered, M., Keedy, J.L., Schmolitzky, A., Menger, G.: How Well Do Inheritance Mechanisms support Inheritance Concepts? In: Mössenböck, H. (ed.) JMLC 1997. LNCS, vol. 1204. Springer, Heidelberg (1997)

    Google Scholar 

  10. Feathers, M.C.: Factoring Class Capabilities with Adjectives. Journal of Object Oriented Programming 12(1), 28–34 (1999)

    Google Scholar 

  11. Goguen, J.A.: Parameterized Programming. IEEE Transactions on Software Engineering SE-10(5), 528–543 (1984)

    Article  Google Scholar 

  12. Goguen, J.A., Tracz, W.: An Implementation-Oriented Semantics for Module Composition. In: Leavens, G., Sitaraman, M. (eds.) Foundations of Component-based Systems, Cambridge (2000)

    Google Scholar 

  13. Goldberg, A., Robson, D.: Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading (1983)

    MATH  Google Scholar 

  14. Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)

    MATH  Google Scholar 

  15. Guttag, J., Horning, J.J.: The Algebraic Specification of Abstract Data Types. Acta Informatica 10(1), 27 (1978)

    Article  MathSciNet  MATH  Google Scholar 

  16. Keedy, J.L., Evered, M., Schmolitzky, A., Menger, G.: Attribute Types and Bracket Implementations. In: Proceedings of the 25th International Conference on Technology of Object Oriented Systems, TOOLS 25, Melbourne, pp. 325–337 (1997)

    Google Scholar 

  17. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  18. Kristensen, B.B., Madsen, O.L., Moller-Pedersen, B., Nygaard, K.: The Beta Programming Language. In: Research Directions in Object-Oriented Programming, pp. 7–48. MIT Press, Cambridge (1987)

    Google Scholar 

  19. Leavens, G.T.: Modular Specification and Verification of Object-Oriented Programs. IEEE Software, 72–80 (July 1991)

    Google Scholar 

  20. Liskov, B., Curtis, D., Day, M., Ghemawat, S., Gruber, R., Johnson, P., Myers, A.C.: Theta Reference Manual, Report Number 88, MIT Laboratory for Computer Science, Cambridge, MA (1994)

    Google Scholar 

  21. Meyer, B.: Eiffel: the Language. Prentice-Hall, New York (1992)

    MATH  Google Scholar 

  22. Parnas, D.L.: On the Criteria to be Used in Decomposing Systems into Modules. Comm. ACM 15(12), 1053–1058 (1972)

    Article  Google Scholar 

  23. Parnas, D.L.: A Technique for Module Specification with Examples. Comm. ACM 15(5), 330–336 (1972)

    Article  Google Scholar 

  24. Pascoe, G.A.: Encapsulators: A New Software Paradigm in Smalltalk-80. In: Proceedings of the OOPSLA 1986, pp. 341–346 (1986)

    Google Scholar 

  25. Schmolitzky, A.: Ein Modell zur Trennung von Vererbung und Typabstraktion in objektorientierten Sprachen [A Model for Separating Inheritance and Type Abstraction in Object Oriented Languages], Dr. rer. nat. [Ph.D.] Thesis, University of Ulm (1999)

    Google Scholar 

  26. Sitaraman, M., Weide, B.: Component-Based Software Using Resolve. ACM SIGSOFT Software Engineering Notes 19(4), 21–67 (1994)

    Article  Google Scholar 

  27. Snyder, A.: Encapsulation and Inheritance in Object-Oriented Programming Languages. In: Proceedings of the OOPSLA 1986, ACM SIGPLAN Notices, Portland, Oregon, vol. 21 (1986)

    Google Scholar 

  28. Soundarajan, N., Fridella, S.: Inheriting and Modifying Behavior. In: Proceedings of the 23rd International Conference on Technology of Object Oriented Systems, TOOLS 23, pp. 148–162. IEEE Computer Society Press, Los Alamitos (1998)

    Chapter  Google Scholar 

  29. Szyperski, C., Omohundro, S., Murer, S.: Engineering a Programming Language: The Type and Class System of Sather. In: Programming Languages and System Architectures, Jurg Gutknecht, pp. 208–227. Springer, Heidelberg (1993)

    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

Keedy, J.L., Espenlaub, K., Menger, G., Schmolitzky, A., Evered, M. (2000). Software Reuse in an Object Oriented Framework: Distinguishing Types from Implementations and Objects from Attributes. In: Frakes, W.B. (eds) Software Reuse: Advances in Software Reusability. ICSR 2000. Lecture Notes in Computer Science, vol 1844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-44995-9_25

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-44995-9_25

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67696-6

  • Online ISBN: 978-3-540-44995-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics