10.1 Dynamic

ability to add new methods, classes, change attributes, change types;can you freeze (prevent extensions)?

OODBTG Reference Model

See entry under 10. Extensibility.


CORBA objects can be accessed by using the Dynamic Invocation Interface(DII) to construct requests to objects at run time. The DII provides accessto the ORB's Interface Repository which contains type information aboutobjects. Clients access this information and use it to construct a requestwhich can be invoked on an object at run time.


Not specified.


No dynamic extensibility, but static user-defined functions are allowed.

Open Distributed Processing

See entry under 7. Types and Classes.

Management Information Model

Not dynamic.


Limited schema evolution is possible by applying the ALTER statementto a base table. Actions that can be taken using the ALTER statement includeadding, altering, and dropping columns, and adding and dropping supertables,and table constraints. Data types can also be added and dropped.


In Matisse, all extensibility is dynamic. It must be accomplished withthe database live. Class schemas and the metamodel may be changed at theusers convenience. The object manager will enforce consistency of datain the database and provide appropriate error messages if the user triesto do anything that will render data inconsistent.

Security restrictions normal prevent users from gratuitously changingschemas, particularly the metaschema. Nevertheless, in some applicationsit is important to be able to dynamically create, destroy, and update schemas,as well as object instances, even in multiuser environments. Matisse supportsthis.

Matisse maintains versions of all objects, including schemas. Userscan see a consistent view of any historical state of the database.


Typical implementations of Smalltalk are fully dynamic. See entriesunder 4. Polymorphism, 7. Types and Classes, and 10. Extensibility.


Dynamic extensibility is not supported in Eiffel.


In Cecil, object extension declarations, in conjunction with field andmethod declarations, enable programmers to extend previously-existing objects.This ability can be important when reusing and integrating groups of objectsimplemented by other programmers. For example, predefined objects suchas int, array, and closureare given additional behavior and ancestry through separate user code.Similarly, particular applications may need to add application-specificbehavior to objects defined as part of other applications.


SELF provides primitives for dynamically adding and deleting slots (andthus operations and variables) from objects, and for dynamically changingparents (and thus inheritance).

System Object Model (SOM)

SOM is dynamic in that the class binaries can be replaced without havingto re-compiled the application.

Analysis and Design Methods

SA: No such concept.

CA: No such concept.

RA: No such concept.

JA: The object model is modeled in itsown terms, and therefore is, in principle, extensible.

WD: No such concept.

MD: The concepts class and object "belongto different worlds: the program text only contains classes; at run-timeonly objects exist. This is not the only possible approach. One of thesubcultures of object-oriented programming, views classes as objects themselves."

EA: No such concept.

FA: No such concept.

FD: No such concept.

OA: "A single framework model canbe used to describe itself, as well as, the enterprise." The modeldescribes itself using a "kernel meta-model" which is a partof the model. "The only reason for inhibiting changes to the kernelmeta-level is to maintain standardization."

BD: Dynamic extensibility is determinedin accordance with the possibilities provided by the implementation language.



features matrixintro page