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

Resumo


Tem sido observado que o design de objetos complexos, por exemplo software, requer decomposição por forma (objetos atômicos) e decomposição por função (agrupamento) para promover a redução do design para um conjunto de componentes que possa ser gerenciado. No entanto, o paradigma de design orientado por objetos suporta apenas decomposição por forma. Este artigo motiva, através de um exemplo simples, a necessidade de agrupamento (decomposição por função) e ilustra como a técnica de agrupamento pode ser incorporada na linguagem utilizada a nível de design. Nós também demonstramos como a introdução de agrupamento na especificação e design de software aumenta a reusabilidade de componentes de forma significativa. ADVcharts, uma nova forma de formalismo visual, e VDM são utilizados para representar a semântica de agrupamento.

Referências

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.
Publicado
27/10/1993
CARNEIRO, L. M. F.; COWAN, D. D.; LUCENA, C. J. P.. A Rationale for Both Nesting and Inheritance in Object-Oriented Design. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 7. , 1993, Rio de Janeiro/RJ. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 1993 . p. 223-237. DOI: https://doi.org/10.5753/sbes.1993.24407.