A Rationale for Both Nesting and Inheritance in Object-Oriented Design

  • L. M. F. Carneiro University of Waterloo
  • D. D. Cowan University of Waterloo
  • C. J. P. Lucena PUC-Rio

Abstract


It has been observed that design of complex objects such as software requires both decomposition by form (atomic objects) and decomposition by function (nesting) in order to reduce the design to a set of manageable components. However, the object-oriented design paradigm mostly supports decomposition by form. This paper uses a simple example to motivate the need for nesting (decomposition by function) and illustrates how nesting might be incorporated into a design language. We then demonstrate how the introduction of nesting into software specification and design significantly increases reusability. AD-Vcharts, a new visual formalism, and VDM are used to provide a semantics for nesting.

References

B. Alabiso. Transformation of data flow analysis models to object. In Proceedings of OOPSLA, 1988, 1988.

Swedish Standards Association. Simula - Data Processing Programming Languages. Swedish Standard SS636114SIS, 1992.

D. G. Bobrow and M. Stefik. The LOOPS Manual. Xerox Corporation, 1983.

Grady Booch. Object Oriented Design with Applications. The Benjamin/Cummings Publishing Company, Inc., 1991.

P. A. Buhr and C, R. Zarnke. Nesting in an object oriented language is not for the birds. In Proceedings of ECOOP'88, European Conference on Object-Oriented Programming, 1988.

L. M. F. Carneiro, D. D. Cowan, and C. J. P. Lucena. Introducing ADVcharts: a Visual Formalism for Describing Abstract Data Views. Technical Report 93-20, Computer Science Department, University of Waterloo, 1993.

Luiza M. F. Carneiro. A Specification-based Approach to User-Interface Design. Internal Report, Computer Science Department, University of Waterloo, December 1992.

D. Carrington, D. Duke, R. Duke, P. King, G. Rose, and G. Smith. An Object-Oriented Extension to Z. In Formal Description Techniques (FORTE 89). North Holland, 1990.

D. Coleman, F. Hayes, and S. Bear. Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design. IEEE Transactions on Software Engineering, 18(1), 1992 1992.

D. D. Cowan, R. Ierusalimschy, C. J. P. Lucena, and T. M. Stepien. Abstract Data Views. Structured Programming, 14(1):1-13, January 1993.

D. D. Cowan, R. Ierusalimschy, C. J. P. Lucena, and T. M. Stepien. Application Integration: Constructing Composite Applications from Interactive Components. Software Practice and Experience, 23(3):255-276, March 1993.

B. J. Cox and A.J. Novobilski. Object Oriented Programming. Addison Wesley, 1991.

J. S. Fitzgerald. Modularity in Mode-Oriented Formal Specifications and its Interaction with Formal Reasoning. Technical report, Department of Computer Science, University of Manchester, Technical Report Series, UMCS-91-11-2, 1991.

Adele Goldberg and David Robson. Smalltalk-80, the Language and its Implementation. Addison-Wesley, Palo Alto, CA, January 1983.

D. Harel. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming, 8:231-274, 1987.

Roberto Ierusalimschy. A Method for Object-Oriented Specifications with VDM. Technical report, Monografias em Ciência da Computação, Departamento de Informática, Pontifícia Universidade Católica, Rio de Janeiro, February 1991.

Roberto Ierusalimschy. A Formal Specification for a Hierarchy of Collections. to appear IEE Software Engineering, 1993.

P. Jalote. Functional refinement and nested objects for object-oriented design. IEEE Trans. on Software Engineering, 15, 1989.

W. Leler. Constraint Programming Languages. Addison Wesley, 1988.

O. L. Madsen. Block structure and object oriented languages. In B.; Shiver and P. Wegner, editors, Research Directions in Object-Oriented Programming. MIT Press, 1987.

M. L. Maher. Process Models for Design Synthesis. AI Magazine, Winter 1990.

A. B. Potengy, C. J. P. Lucena, and D. D. Cowan. A Programming Approach for Parallel rendering Applications. Technical report, Monografias em Ciência da Computação, Departamento de Informática, Pontifícia Universidade Católica, Rio de Janeiro, April 1993.

James Rumbaugh et al. Object-Oriented Modeling and Design. Prentice Hall, 1991.

S. A. Schuman et al. Object-oriented process specification. In Specification and Verification in Concurrent Systems. Springer-Verlag, 1990.

B. Stroustrup. The C++ Programming Language. Addison-Wesley, 1986.
Published
1993-10-27
CARNEIRO, L. M. F.; COWAN, D. D.; LUCENA, C. J. P.. A Rationale for Both Nesting and Inheritance in Object-Oriented Design. In: BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING (SBES), 7. , 1993, Rio de Janeiro/RJ. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 1993 . p. 223-237. ISSN 2833-0633. DOI: https://doi.org/10.5753/sbes.1993.24407.