Data Encapsulation and Modularity: Three Views of Inheritance

نویسندگان

  • José Félix Costa
  • Amílcar Sernadas
  • Cristina Sernadas
چکیده

A semantic domain based on state-machines is proposed for object-orientation in order to clarify the most important constructions: aggregation, in-terconnection and specialization. Three kinds of specialization are discussed: sub-typing (specialization without side-effects and no non-monotonic overriding); monotonic specialization (possibly with side-effects but still with monotonic overriding only); and non-monotonic specialization (possibly with side-effects and non-monotonic overriding). The advantages of the object-oriented approach to software engineering are by now well understood. Many object-oriented languages, systems and methods have been proposed and some of them are now extensively used. To name just a few, there are programming languages like Smalltalk, C ++ and Eiffel, database systems like GemStone, O 2 , IRIS and ORION, development methods like GOOD, MOOD and HOOD, as well as high-level specification languages [Goguen 91, Jungclaus et al 91, SernadasA et al 89]. Moreover, some effort has been dedicated to the theoretical foundations of this promising paradigm. The overview [Ehrich et al 92] points to several schools of thought in this area: e.g. ADT-based like [Goguen 91] and process-based like [Ehrich et al 91]. Higher programmer productivity through software reuse is paramount among the claimed advantages of object orientation. A rich mechanism of inheritance, including both specialization and abstraction , is essential for supporting the envisaged levels of software reuse. Another essential ingredient is a general mechanism for putting objects together, that is, for setting-up communities of interacting objects. Therefore, a semantic foundation of object-orientation should address all these issues: specialization, abstraction and interconnection. Herein, we adopt the view that an object is a state-machine, adapting the notion of reactive system proposed in [Manna and Pnueli 81]. Then, we develop the notion of object morphism in order to explain the basic relationhips between objects: is-a and is-part-of. To this end we apply the program outlined in [Costa et al 92] to objects as state-machines. The advantages of the new semantic domain are all related to the abstract view of the state: both the behaviour (process) and the memory structure (slot valuation) of the object appear as secondary concepts on top of the notion of state. By avoiding concrete states we arrive at a cleaner notion of object morphism that makes possible a unified semantic domain explaining all basic relationships between objects. Namely, we explain three kinds of specialization (strict, with side-effects, and with overriding), the part-of relationship between an object and each of its components and two basic …

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Modularity meets inheritance

We unbundle several roles of classes in existing languages by providing a suite of operators independently controlling such e ects as combination modi cation encapsulation name resolution and sharing all on the single notion of module All module operators are forms of inheritance Thus inheritance not only is not in con ict with modularity in our system but is its foundation This allows a previo...

متن کامل

Refinable Function

Modularity is the fundamental aspect of modern software engineering, however many advanced modularity techniques requires prospective technologies as part of development and operation process. In this paper, we present Refinable Function, an object-oriented approach to advanced languagebased, symmetric modularity technique for the procedure. We conceptually compare Refinable Function to existin...

متن کامل

An Application Framework for Compositional Modularity

This dissertation presents a framework for the application of compositional modularity a module model that facilitates extensive reuse of highly decomposed software Compositional modularity supports not only the traditional notions of program decomposition and encapsulation but also e ective mechanisms for module recom position Based on a previously developed model a suite of operators individu...

متن کامل

Object-Oriented Software and UML-Based Testing: A Survey Report

As object-oriented paradigm becomes more mature, software development industry and researchers turn their attention towards the paradigm. Features of the paradigm, i.e. encapsulation, information hiding, inheritance, and polymorphism, promote concepts of modularity, reusability, and maintainability. Nowadays, it is clear that object-oriented paradigm, although provides these profitable features...

متن کامل

Structural Subtyping in a Distributed Object System

Object-oriented techniques increase program modularity, decrease coupling, and improve data abstraction by supporting encapsulation through narrow, rigidly deened and strongly enforced interfaces to objects. Applying object-oriented techniques to address problems of building scal-able and maintainable distributed systems seems an obvious approach since reducing coupling and increasing modularit...

متن کامل

AspectLISA: An Aspect-oriented Compiler Construction System Based on Attribute Grammars

The use of object-oriented techniques and concepts, like encapsulation and inheritance, greatly improves language specifications towards better modularity, reusability and extensibility. Additional improvements can be achieved with aspect-oriented techniques since semantic aspects also crosscut many language constructs. Indeed, aspect-oriented constructs have been already added to some language...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1993