A glossary of object technology This glossary provides brief definitions of the principal terms of object technology, discussed in detail in the rest of this book.Italics font in a definition marks a term or phrase, other than the ubiquitous"class"and"object",that is itself the subject of another definition. Abstract class See deferred class. Abstract data type(ADT) A set of mathematical elements specified by listing the functions applicable to all these elements and the formal properties of these functions. Abstract object An element of an ADT. Ancestor (of a class) The class itself,or one of its direct or indirect parents. Assertion A formal condition describing the semantic properties of software elements, especially routines and loops.Used in expressing contracts.Assertions include in particular preconditions,postconditions,class invariants and loop invariants. Assignment attempt An operation that conditionally attaches an object to a reference,only if the object's type conforms to the type declared for the corresponding entity. Asynchronous call A call which lets its caller proceed before it completes.Antonym:synchronous call. Attribute The description of a field present in all the instances of a class.Along with the routine,one of the two forms of feature. Behavior class A class,usually deferred,describing a set of adaptable behaviors through effective routines relying on some components (usually deferred features)that may be redeclared to capture specific variants of the general behaviors
D A glossary of object technology This glossary provides brief definitions of the principal terms of object technology, discussed in detail in the rest of this book. Italics font in a definition marks a term or phrase, other than the ubiquitous “class” and “object”, that is itself the subject of another definition. Abstract class See deferred class. Abstract data type (ADT) A set of mathematical elements specified by listing the functions applicable to all these elements and the formal properties of these functions. Abstract object An element of an ADT. Ancestor (of a class) The class itself, or one of its direct or indirect parents. Assertion A formal condition describing the semantic properties of software elements, especially routines and loops. Used in expressing contracts. Assertions include in particular preconditions, postconditions, class invariants and loop invariants. Assignment attempt An operation that conditionally attaches an object to a reference, only if the object’s type conforms to the type declared for the corresponding entity. Asynchronous call A call which lets its caller proceed before it completes. Antonym: synchronous call. Attribute The description of a field present in all the instances of a class. Along with the routine, one of the two forms of feature. Behavior class A class, usually deferred, describing a set of adaptable behaviors through effective routines relying on some components (usually deferred features) that may be redeclared to capture specific variants of the general behaviors
1194 A GLOSSARY OF OBJECT TECHNOLOGY SD Class A partially or totally implemented abstract data type.Serves both as a module and as a type (or type pattern if the class is generic.) Class invariant An assertion which must be satisfied on creation of every instance of a class,and preserved by every exported routine of the class,so that it will be satisfied by all instances of the class whenever they are externally observable. Client A class that uses the features of another,its supplier,on the basis of the supplier's interface specification (contract). Cluster A group ofrelated classes or,recursively,of related clusters Component See reusable software component. Concurrent Able to use two or more processors.Antonym:sequential. Conformance A relation between types.A type conforms to another if it is derived from it by inheritance. Constrained genericity A form of genericity where a formal generic parameter represents not an arbitrary type,but one that is required to conform to a certain type,known as the constraint. See constrained genericity Container data structure An object whose primary use is to provide access to a number of other objects. Examples include lists,queues,stacks,arrays. Contract The set of precise conditions that govern the relations between a supplier class and its clients.The contract for a class includes individual contracts for the exported routines of the class,represented by preconditions and postconditions,and the global class properties,represented by the class invariant.See also Design by Contract. Contravariance The policy allowing a feature redeclaration to change the signature so that a new result type will conform to the original but the original argument types conform to the new.See also:covariance,novariance. Covariance The policy allowing a feature redeclaration to change the signature so that the new types of both arguments and result conform to the originals.See also:contravariance, novariance. Current object(or:current instance) During the execution of an object-oriented software system,the target of the most recently started routine call
1194 A GLOSSARY OF OBJECT TECHNOLOGY §D Class A partially or totally implemented abstract data type. Serves both as a module and as a type (or type pattern if the class is generic.) Class invariant An assertion which must be satisfied on creation of every instance of a class, and preserved by every exported routine of the class, so that it will be satisfied by all instances of the class whenever they are externally observable. Client A class that uses the features of another, its supplier, on the basis of the supplier’s interface specification (contract). Cluster A group of related classes or, recursively, of related clusters. Component See reusable software component. Concurrent Able to use two or more processors. Antonym: sequential. Conformance A relation between types. A type conforms to another if it is derived from it by inheritance. Constrained genericity A form of genericity where a formal generic parameter represents not an arbitrary type, but one that is required to conform to a certain type, known as the constraint. See constrained genericity. Container data structure An object whose primary use is to provide access to a number of other objects. Examples include lists, queues, stacks, arrays. Contract The set of precise conditions that govern the relations between a supplier class and its clients. The contract for a class includes individual contracts for the exported routines of the class, represented by preconditions and postconditions, and the global class properties, represented by the class invariant. See also Design by Contract. Contravariance The policy allowing a feature redeclaration to change the signature so that a new result type will conform to the original but the original argument types conform to the new. See also: covariance, novariance. Covariance The policy allowing a feature redeclaration to change the signature so that the new types of both arguments and result conform to the originals. See also: contravariance, novariance. Current object (or: current instance) During the execution of an object-oriented software system, the target of the most recently started routine call
SD A GLOSSARY OF OBJECT TECHNOLOGY 1195 Defensive programming A technique of fighting potential errors by making every module check for many possible consistency conditions,even if this causes redundancy of checks performed by clients and suppliers.Contradicts Design by Contract. Deferred class A class which has at least one deferred feature.Antonym:effective class. Deferred feature A feature which,in a certain class,has a specification but no implementation.May be declared as deferred in the class itself,or inherited as deferred and not effected in the class.Antonym:effective feature. Descendant (of a class) The class itself,or one of its direct or indirect heirs. Design by Contract A method of software construction that designs the components of a system so that they will cooperate on the basis of precisely defined contracts.See also:defensive programming. Direct instance (of a class) An object built according to the mold defined by the class. Dynamic Occurring during the execution of a system.See also run time.Antonym:static. Dynamic binding The guarantee that every execution of an operation will select the correct version of the operation,based on the type of the operation's target. Dynamic typing The policy whereby applicability of operations to their target objects is only checked at run time,prior to executing each operation. Effect A class effects a feature if it inherits it in deferred form and provides an effecting for that feature. Effecting A redeclaration which provides an implementation (as attribute or routine)of a feature inherited in deferred form. Effective class A class which only has effective features (that is to say,does not introduce any deferred feature,and,if it inherits any deferred feature,effects it).Antonym: deferred class. Effective feature A feature declared with an implementation -either as a routine which is not deferred,or as an attribute.Antonym:deferred feature. Encapsulation See information hiding
§D A GLOSSARY OF OBJECT TECHNOLOGY 1195 Defensive programming A technique of fighting potential errors by making every module check for many possible consistency conditions, even if this causes redundancy of checks performed by clients and suppliers. Contradicts Design by Contract. Deferred class A class which has at least one deferred feature. Antonym: effective class. Deferred feature A feature which, in a certain class, has a specification but no implementation. May be declared as deferred in the class itself, or inherited as deferred and not effected in the class. Antonym: effective feature. Descendant (of a class) The class itself, or one of its direct or indirect heirs. Design by Contract A method of software construction that designs the components of a system so that they will cooperate on the basis of precisely defined contracts. See also: defensive programming. Direct instance (of a class) An object built according to the mold defined by the class. Dynamic Occurring during the execution of a system. See also run time. Antonym: static. Dynamic binding The guarantee that every execution of an operation will select the correct version of the operation, based on the type of the operation’s target. Dynamic typing The policy whereby applicability of operations to their target objects is only checked at run time, prior to executing each operation. Effect A class effects a feature if it inherits it in deferred form and provides an effecting for that feature. Effecting A redeclaration which provides an implementation (as attribute or routine) of a feature inherited in deferred form. Effective class A class which only has effective features (that is to say, does not introduce any deferred feature, and, if it inherits any deferred feature, effects it). Antonym: deferred class. Effective feature A feature declared with an implementation — either as a routine which is not deferred, or as an attribute. Antonym: deferred feature. Encapsulation See information hiding
1196 A GLOSSARY OF OBJECT TECHNOLOGY SD Entity A name in the software text that denotes a run-time value (object or reference). Event-driven computation A style of software construction where developers define the control structure by listing possible extemal events and the system's response to each of them,rather than by specifying a pre-ordained sequence of steps. Exception The inability of a routine to achieve its contract through one of its possible strategies. May result in particular from a failure of a routine called by the original routine.Will be treated as resumption,organized panic or false alarm. Exporting a feature Making the feature available to clients.Exports may be selective(to specified classes only)or general. Extendibility The ability of a software system to be changed easily in response to different choices of requirements,architecture,algorithms or data structures. Failure The inability of a routine's execution to fulfill the routine's contract.Must trigger an exception. False alarm Along with resumption and organized panic,one of the three possible responses to an exception;resumes the execution of the current strategy,possibly after taking some corrective action. Feature renaming The attribution,by a class,of a new name to an inherited feature,not changing any other property.See also redeclaration. Field One of the values making up an object. Function A routine which returns a result.(The other form of routine is the procedure.) Garbage collection A facility provided by the runtime to recycle the memory space used by objects that have become useless.Garbage collection is automatic,that is to say does not require any change to the text of the systems whose objects are being recycled. Generalization The process of turning specialized program elements into general-purpose,reusable software components. Generating class Same as generator. Generator (of an object) The class of which the object is a direct instance
1196 A GLOSSARY OF OBJECT TECHNOLOGY §D Entity A name in the software text that denotes a run-time value (object or reference). Event-driven computation A style of software construction where developers define the control structure by listing possible external events and the system’s response to each of them, rather than by specifying a pre-ordained sequence of steps. Exception The inability of a routine to achieve its contract through one of its possible strategies. May result in particular from a failure of a routine called by the original routine. Will be treated as resumption, organized panic or false alarm. Exporting a feature Making the feature available to clients. Exports may be selective (to specified classes only) or general. Extendibility The ability of a software system to be changed easily in response to different choices of requirements, architecture, algorithms or data structures. Failure The inability of a routine’s execution to fulfill the routine’s contract. Must trigger an exception. False alarm Along with resumption and organized panic, one of the three possible responses to an exception; resumes the execution of the current strategy, possibly after taking some corrective action. Feature renaming The attribution, by a class, of a new name to an inherited feature, not changing any other property. See also redeclaration. Field One of the values making up an object. Function A routine which returns a result. (The other form of routine is the procedure.) Garbage collection A facility provided by the runtime to recycle the memory space used by objects that have become useless. Garbage collection is automatic, that is to say does not require any change to the text of the systems whose objects are being recycled. Generalization The process of turning specialized program elements into general-purpose, reusable software components. Generating class Same as generator. Generator (of an object) The class of which the object is a direct instance
SD A GLOSSARY OF OBJECT TECHNOLOGY 1197 Generic class A class having formal parameters representing types.Such a class will yield a type only through generic derivation. Generic derivation The process of providing a type for each formal generic parameter of a generic class, yielding a type as a result. Genericity The support,by a software notation,for type-parameterized modules;specifically,in an O-O notation,for generic classes.Can be unconstrained or constrained. Heir (of a class) A class that inherits from the given class.Antonym:parent. Identity See object identity. Information hiding The ability to prevent certain aspects of a class from being accessible to its clients, through an explicit exporting policy and through reliance on the short form as the primary vehicle for class documentation. Inheritance A mechanism whereby a class is defined in reference to others,adding all their features to its own. Instance (of a class) An object built according to the mold defined by the class or any one of its proper descendants.See also direct instance,proper descendant,generator. Instance variable Smalltalk term for attribute Interface(of a class) See contract,abstract data type. Invariant See class invariant,loop invariant. Iterator A control structure describing preordained sequencing of some actions but not defining the actions themselves.Iterators often apply to data structures,such as an iterator describing the traversal of a list or a tree. Loop invariant An assertion which must be satisfied prior to the first execution of a loop,and preserved by every iteration,so that it will hold on loop termination. Loop variant An integer expression which must be non-negative prior to the first execution of a loop,and decreased by every iteration,so that it will garantee loop termination. Message Routine call
§D A GLOSSARY OF OBJECT TECHNOLOGY 1197 Generic class A class having formal parameters representing types. Such a class will yield a type only through generic derivation. Generic derivation The process of providing a type for each formal generic parameter of a generic class, yielding a type as a result. Genericity The support, by a software notation, for type-parameterized modules; specifically, in an O-O notation, for generic classes. Can be unconstrained or constrained. Heir (of a class) A class that inherits from the given class. Antonym: parent. Identity See object identity. Information hiding The ability to prevent certain aspects of a class from being accessible to its clients, through an explicit exporting policy and through reliance on the short form as the primary vehicle for class documentation. Inheritance A mechanism whereby a class is defined in reference to others, adding all their features to its own. Instance (of a class) An object built according to the mold defined by the class or any one of its proper descendants. See also direct instance, proper descendant, generator. Instance variable Smalltalk term for attribute. Interface (of a class) See contract, abstract data type. Invariant See class invariant, loop invariant. Iterator A control structure describing preordained sequencing of some actions but not defining the actions themselves. Iterators often apply to data structures, such as an iterator describing the traversal of a list or a tree. Loop invariant An assertion which must be satisfied prior to the first execution of a loop, and preserved by every iteration, so that it will hold on loop termination. Loop variant An integer expression which must be non-negative prior to the first execution of a loop, and decreased by every iteration, so that it will garantee loop termination. Message Routine call