9.6 other

OODBTG Reference Model

In various object models, the following may not be treated as objects

o operations.

o classes/types.

o some of the arguments of an operation.

o the result of an operation.

o relationships and attributes.

o literals.

o aggregates.


Type Exception is provided by the object model, and may be subtyped.Operation signatures can indicate exceptions that can be raised. When anexception is raised it is handled by the exception handler in the closestscope and transactions within that scope are aborted.


The Matisse metamodel consists of a set of objects that make up themetaclass. Class schemas are objects in their own right.


See 7. Types and Classes.




In Emerald, all objects are coded using the single object constructorconcept. At compile time, the Emerald compiler chooses among several implementationstyles for the object, picking one that is appropriate to the object'suse. Three different implementation styles are used:

1. Global objects can be moved within the network and can beinvoked by other objects not known at compile time (in other words, referencesto them can be exported). They are heap allocated by the Emerald kerneland are referenced indirectly. An invocation may require a remote procedurecall.

2. Local objects are local to another object (i.e., a referenceto them is never exported from that object). They are heap allocated bycompiled code. These objects never move independently of their enclosingobject. An invocation may be implemented by a local procedure call or byinline code.

3. Direct objects are local objects except that their data areais allocated directly in the representation of the enclosing object. Theseare used mainly for built-in types, and other simple objects whose organizationcan be deduced at compile time. [BHJL86]


A method object is a prototype activation record. When evaluated,the method object clones itself, fills in its selfslot with the receiver of the original message, fills in its argument slots(if any) with the arguments of the message, and executes its code. Theself slot is a parentslot so that the cloned activation record inherits from the receiver ofthe original message. [US87]

SELF allows programmers to define their own control structures usingblocks. A block contains a method in a slot named value;this method is special in that when it is invoked (by sending valueto the block), the method runs as a child of its lexically enclosing activationrecord. The self slotis not re-bound when invoking a block method, but instead is inheritedfrom the lexically enclosing method. Block methods may be terminated witha non-local return expression, which returns a value not to thecaller of the block method, but to the caller of the lexically-enclosingnon-block method, much like a return statement in C. [CUL89]

OLE Component Object Model

The use of the object linking supported by OLE can introduce problemsin maintaining referential integrity. Specifically, since the data referencedby linked objects lives in a separate file on the file system, links areeasily broken when the end user manually changes the location of that file...Tosolve most of the link breakage problems as well as to provide for arbitrarilydeep object nestings, OLE uses a type of object called a moniker.

A simple moniker contains some reference to a linked object and containscode that knows how to "bind" to that linked object. Bindingis the process of launching the application that handles the class of thelinked object, asking the application to load a file in which the objectlives, then asking the application to resolve the name of the object downto an object pointer.

A file moniker is used to store either an absolute or relative pathname.A linked object maintains an absolute moniker and a relative moniker. Ifit fails to locate the file with the absolute, it tries the relative moniker.Complex object references are described using composite monikers that aresequences of any other simple or composite monikers. Most links can beexpressed in a composite of one file moniker and one item moniker, i.e.,a link to an embedded object (the item) in a container document (the file).The item name is only meaningful to the application that created it. Thatapplication will be asked later to return a pointer to the object identifiedby the item name...An example of a composite moniker might be one thatcontains a file (a spreadsheet) and an item moniker (a cell reference).

Editor's note: For the benefit of you word origin fans, a "moniker"(or "monica") was originally a nickname taken by a hobo (oneof Jack London's was "Skysail Jack"). Later the term became usedcolloquially to mean any form of name for a person, including an alias,or his or her real name.

Analysis and Design Methods

SA: Ternary and higher order relationship.

SA: Associative object "To formalizea many-to-many relationship, create an associative object--a separate object[class or, strictly, typical unspecified instance)] that contains referencesto the identifiers of each of the participating instances."

SA: Assigner "When dealing withrelationships for which there is a competition, we must first formalizethe relationship in as associative object [See above in 9.6 Other]on the information model. Next we build a state model that is responsiblefor creating instances of the relationship by associating instances ofthe participating objects with one another."

SD: Architectural class: Finite StateModel, Transition, Active Instance, Timer.

CA: Message connection: " an indicationof processing dependency, indicating a need for services in order to fulfillresponsibilities." A message connection may be from one object tomany objects.

RA: Ternary Association

RA: Association modeled as a class: "Sometimesit is useful to model an association as a class. Each link becomes oneinstance of the class. ... It is useful to model an association as a classwhen links can participate in associations with other objects or when linksare subject to operations."

JA: Actor: "Models one, or several,roles that an interactor to the system can play. The interactor may beeither human or machine." "We regard an actor as a class andusers as instances of this class. These instances exist only when the userdoes something to the system. The same person can thus appear as instancesof several actors."

JA: Use Case: "A special sequenceof transactions in a dialogue between a user and the system. Each use caseis thus a specific way of using the system. A use case may have one basiccourse and several alternative courses." A use case may be regardedas a class. "Each use case is a specific way of using the system andevery execution of the use case may be viewed as an instance of the usecase."

JA: Entity Object: "The entity objectmodels information in the system that should be held for a longer time,and should typically survive a use case.

JA: Interface Object: "The interfaceobject models behavior and information that is dependent on the interfaceto the system. Thus everything concerning any interface of the system isplaced in an interface object."

JA: Control Object: "The controlobjects model functionality that is not naturally tied to any other object.Typically such behavior ... consists of operating on several differententity objects, doing some computations and then returning the result toan interface object."

JA: Subsystem: "A subsystem groupsseveral objects. ... Subsystems may include other subsystems." "Thetask of subsystems is to package the objects so that the complexity isreduced." "The aim is to have a strong functional coupling withina subsystem and a weak coupling between subsystems."

JD: Block: "The design model willbe composed of blocks which are the design objects. These will make upthe actual structure of the design model and show how the system is designed."Blocks are implemented by one or several classes.

JD: Object Module: "The module levelof the programming language we denote by the generic term object module.... In an object oriented language these ... will be the actual classes."

WD: Collaborator "Collaborationsrepresent requests from a client to a server in fulfillment of a clientresponsibility. A collaboration is the embodiment of the contract betweena client and a server." "We say an object collaborates with anotherif, to fulfill a responsibility, it needs to send the other object anymessages." "It may take several collaborations to completelyfulfill a single responsibility; on the other hand, some objects will fulfilla responsibility without collaborating with any other objects."

WD: Contract "A contract is thelist of requests a client can make of a server. Both must fulfill the contract:the client by making only those requests the contract specifies, and theserver by responding appropriately to those requests." "The contractbetween client and server does not specify how things get done, only whatgets done."

WD: Protocol "A protocol is theset of signatures to which a class will respond."

WD: Responsibility "A responsibilityis something one object does for other objects, either performing someaction or responding with some information." Responsibilities aremeant to convey a sense of the purpose of an object and its place in thesystem." "The responsibilities of an object are all of the servicesit provides for all of the contracts it supports."

WD: Signature "A signature is thename of a method, the types of its parameters, and the type of the objectthat the method returns."

MD: Contract "The relationship betweena class and its clients is viewed as a formal agreement, expressing eachparty's rights and obligations." See 'assertion.'

MD: Exception The occurrence of one ofseven specified "abnormal condition during the execution of a softwareelement."

MD: Failure "...[T]he inabilityof a software element to satisfy its purpose." "A routine mayeither succeed or fail. It succeeds only if it fulfills its contract."Failure occurs "if an exception occurs during [the] execution [ofa routine] and the routine terminates ... by signaling an exception"to its caller. See the separate matrix row for Eiffel.

MD: Error "...[T]he presence inthe software of some element not satisfying its specification."

EA: Association "We use the is memberof relationship set to form a set of objects which we wish to consideras a single object." "The object class whose objects are setsis called the set class or the association class and the object class whoseobjects are members is called the member class or the universe. Associationdenotes that the members associate together to form an object."

EA: Exception "An exception is asystem event or condition that is not part of normal system behavior."Exceptions are modeled as distinguished paths in the state net model. Exceptionsmay be associated with a state, a trigger, or a state transition; theymay refer to a constraint.

FA: Ternary and higher relationship.

FA: Invariant "An invariant is anassertion that some property must always hold."

FA: Role "The classes participatingin relationships have roles. Each role can be named... Role names are usefulwhen it is unclear in which order to read relationship names."

FD: Controller or interface objects "Onedistinguished role is that of the controller. The controller receives therequest to invoke the system operation. The system operation is part ofthe method interface of the controller." The controller is "responsiblefor responding to a system operation request." "A design shouldhave interface objects for each related set of operations at the subsysteminterface."

FD: Collaborator "[T]he collaboratorscollaborate and cooperate with the controller to implement the system operation."

FD: Collection A collection is "arelevant subset of objects identified in the design process. ... The objectsin a collection may change over time. Typical implementations of such collectionswill be lists or arrays." ... "By default, when a message issent to objects in a collection, all the objects in that collection receivethe message."

FD: Reference "Each object musthave a reference to another object to communicate with it. Another wayof looking at this is to say that a server object must be visible to aclient for the client to send a message to the server." "Foreach relationship on the system object model, we expect that there is apath of visibility between the corresponding objects at design."

FC: Error: "... [T]he violationof a precondition."

OA: Control Condition "A controlcondition is a mechanism that, when triggered, permits it associated operationto begin only when its constraints are met."

OA: Event Type Event types are a kindof object type. "An event type is a type or classification of event."Events are instances of the type.

OA: Mapping "A mapping assign theobjects of one type to objects of another type. ... A more formal definitionof mapping (or function) is a process that maps one set into a powerset(or set of sets) of another."

OA: Trigger "A trigger invokes anoperation when an event occurs. A trigger rule specifies that when a specifictype of event occurs, a particular operation will be invoked."

BD: "Actor[:] An object that canoperate upon other objects but is never operated upon by other objects;is come contexts, the terms active object and actor are interchangeable."

BD: "Server[:] An object that neveroperates on other objects; it is only operated on by other objects."

BD: "Agent[:] An object that canboth operate upon other objects and be operated upon by other objects;an agent is usually created to do some work on behalf of an actor or otheragent.

HA: 'Scenarios' (use cases) are used.


features matrixintro page