Object Oriented Programming Glossary


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A

Abstract Class

A class that has no instances. An abstract class is written with the expectation that its concrete subclasses will add to its structure and behavior, typically by implementing its abstract operations.

Abstract Operation

An operation that is declared but not implemented by an abstract class. In C++, an abstract operation is declared as a pure virtual member function.

Abstraction

The essential characteristics of an object that distinguishes it from all other kinds of objects and thus provide crisply-defined conceptual boundaries relative to the perspective of the viewer; the process of focusing upon the essential characteristics of an object. Abstraction is one of the fundamental elements of the object model.

Access Control

The mechanism for control of access to the structure or behavior of a class. Public items are accessible by all; protected items are accessible only by the subclasses, implementation, and friends of the class containing the item; private items are accessible only by the implementation and friends of the class containing the item; implementation items are accessible only by the implementation of the class containing the item.

Action

An operation that, for all practical purposes, takes zero time. An action may denote the invocation of a method, the triggering of another event, or the starting or stopping of an activity.

Active Object

An object that encompasses its own thread of control.

Activity

An operation that takes some time to complete.

Actor

An object that can operate upon other objects but is never operated upon by other objects. In some contexts, the terms active object and actor are interchangeable.

Agent

An object that can both 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 another agent.

Aggregate Object

An object composed of one or more other objects, each of which is consider a part of the aggregate object.

Algorithmic Decomposition

The process of breaking a system into parts, each of which represents some small step in a larger process. The application of structured design methods leads to an algorithmic decomposition, whose focus is upon the flow of control within a system.

Architecture

The logical and physical structure of a system, forged by all the strategic and tactical design decisions applied during development.

Assertion

The Boolean expression of some condition whose truth must be preserved.

Association

A relationship denoting a semantic connection between two classes.

Attribute

A part of an aggregate object.

B

Base Class

The most generalized class in a class structure. Most applications have many such root classes. Some languages define a primitive base class, which serves as the ultimate superclass of all classes.

Behavior

How an object acts and reacts, in terms of its state changes and message passing; the outwardly visible and testable activity of an object.

Blocking Object

A passive object whose semantics are guaranteed in the presence of multiple threads of control. Invoking an operation of a blocking object blocks the client for the duration of the operation.

C

Cardinality

The number of instances that a class may have; the number of instances that participate in a class relationship.

CASE (Computer Assisted Software Engineering) Tool

A CASE tool is any program which provides a programmer with additional means of designing and/or analyzing the structure of their program. Traditionally, these are programs which provide a interactive graphical representation of a programs object structure.

Class

A set of objects that share a common structure and a common behavior. The terms class and type are usually (but not always) interchangeable; a class is a slightly different concept that a type, in that it emphasizes the classifications of structure and behavior.

Class Category

A logical collection of classes, some of which are visible to other class categories, and other of which are hidden. The class in a class category collaborate to provide a set of services.

Class Diagram

Part of the notation of object-oriented design, used to show the existence of classes and their relationships in the logical design of a system. A class diagram may represent all or part of the class structure of a system.

Class Operation

An operation, such as a constructor or destructor, directed at a class rather than an object.

Class Structure

A graph whose vertices represent classes and whose arcs represent relationships among these classes. The class structure of a system is represented by a set of class diagrams.

Class Utility

A collection of free subprograms or, in C++, a class that only provides static members and/or static member functions.

Class Variable

Part of the state of a class. Collectively, the class variable of a class constitute its structure. A Class variable is shared by all instances of the same class. In C++, a class variable is declared as a static member.

Client

An object that uses the services of another object, either by operation upon it or by referencing its state.

Collaboration

The process whereby several objects cooperate to provide some high-level behavior.

Concrete Class

A class whose implementation is complete and thus may have instances.

Concurrency

The property that distinguishes an active object from one that is not active.

Concurrent Object

An active object whose semantics are guaranteed in the presence of multiple threads of control.

Constraint

The expression of some semantic condition that must be preserved.

Constructor

An operation that creates an object and/or initializes its state.

Container Class

A class whose instances are collections of other objects. Container classes may denote homogeneous collections (all of the objects in the collections are of the same class) or heterogeneous collections (each of the objects in the collections may be of a different class, although all must generally share a common superclass). Container classes are most often defined as parameterized classes, with some parameter designating the class of the contained objects.

CRC Cards

Class/Responsibilities/Collaborators; a simple tools for brainstorming about the key abstractions and mechanisms in a system.

D

Data Dictionary

A comprehensive repository enumerating all the classes in a system.

Delegation

The actor of one object forwarding an operation to another object, to be performed on behalf of the first object.

Destructor

An operation that frees the state of an object and/or destroys the object itself.

Device

A piece of hardware that has no computational resources.

Dynamic Binding

Binding denotes the association of a name (such as a variable declaration) with a class; dynamic binding is a binding in which the name/class association is not made until the object designated by the name is created at execution time.

E

Encapsulation

The process of compartmentalizing the elements of an abstraction that constitute its structure and behavior; encapsulation serves to separate the contractual interface of an abstraction and its implementation.

Event

Some occurrence that may cause the state of a system to change.

Exception

An indication that some invariant has not or cannot be satisfied. In C++, we throw an exception to abandon processing and alert some other object of the problem, which in turn may catch the exception and handle the problem.

F

Field

A repository for part of the state of an object; collectively, the fields of an object constitute its structure. The terms field, instance variable, member object, and slot are interchangeable.

Forward-Engineering

The production of executable code from a logical or physical model.

Free Subprogram

A procedure of function that serves as a nonprimitive operation upon an object or objects of the same or different classes. A free subprogram is any subprogram that is not a method of an object.

Framework

A collection of classes that provide a set of services for a particular domain; a framework thus exports a number of individual classes and mechanisms that clients can use or adapt.

Friend

A class or operation whose implementation may reference the private parts of another class, who alone can extend the offer of friendship.

Function

An input/output mapping resulting from some object's behavior.

Function Point

In the context of a requirements analysis, a single, outwardly visible and testable activity.

G

Generic Class

A class that serves as a template for other classes, in which the template may be parameterized by other classes, objects, and/or operations. A generic class must be instantiated (its parameters filled in) before objects can be created. Generic classes are typically used as container classes. The terms generic class and parameterized class are interchangeable.

Generic Function

An operation upon an object. A generic function of a class may be redefined in subclasses; thus, for a given object, it is implemented through a set of methods declared in various classes related via their inheritance hierarchy. The terms generic function and virtual function are usually interchangeable.

Guard

A Boolean expression applied to an event; if true, the expression permits the event to cause the state of the system to change.

H

Hierarchy

A ranking or ordering of abstractions. The two most common hierarchies in a complex system include its class structure (including "kind of" hierarchies) and its object structure (including "part of" and collaboration hierarchies); hierarchies may also be found in the module and process architectures of a complex system.

I

Identity

The nature of an object that distinguishes it form all other objects

Idiom

An expression peculiar to a certain programming language or application culture, representing a generally accepted convention for use of the language.

Implementation

The inside view of a class, object, or module, including the secrets of its behavior.

Information Hiding

The process of hiding all the secrets of an object that do not contribute to its essential characteristics; typically, the structure of an object is hidden, as well as the implementation of its methods.

Inheritance

A relationship among classes, wherein one class shares the structure or behavior defined in one (single inheritance) or more (multiple inheritance) other classes. Inheritance defines an "is-a" hierarchy among classes in which a subclass inherits from one or more generalized superclasses; a subclass typically specializes its superclasses by augmenting or redefining existing structure and behavior.

Instance

Something you can do things to. An instance has state, behavior, and identity. The structure and behavior of similar instances are defined in their common class. The terms instance and object are interchangeable.

Instance Variable

A repository for part of the state of an object. Collectively, the instance variable of an object constitute its structures. The terms field, instance variable, member object, and slot are interchangeable.

Instantiation

The process of filling in the template of a generic or parameterized class to produce a class from which one can create instances.

Interaction Diagram

Part of the notation of object-oriented design, used to show the execution of a scenario in the context of an object diagram.

Interface

The outside view of a class, object, or module, which emphasizes its abstraction while hiding its structure and the secrets of its behavior.

Invariant

The boolean expression of some conditions whose truth must be preserved.

Iterator

An operation that permits the parts of an object to be visited.

J

K

Key

An attribute whose value uniquely identifies a single target object.

Key Abstraction

A class or object that forms part of the vocabulary of the problem domain.

L

Layer

The collection of class categories or subsystems at the same level of abstraction.

Level of Abstraction

The relative ranking of abstractions in a class structure, object structure, module architecture, or process architecture. In terms of its "part of" hierarchy, a given abstraction is at a higher level of abstraction than other if it builds upon the others; in terms of their "kind of" hierarchy, high-level abstractions are generalized, and low-level abstractions are specialized.

Link

Between two objects, one instance of an association.

M

Mechanism

A structure whereby objects collaborate to provide some behavior that satisfies a requirement of the problem.

Member Function

An operation upon an object, defined as part of the declaration of a class; all member functions are operations, but not all operations are member functions. The terms member function and method are usually interchangeable. In some languages, a member function stands alone and may be redefined in a subclass; in other languages, a member function may not be redefined, but serves as part of the implementation of a generic function or virtual function, both of which may be redefined in a subclass.

Member Object

A repository for part of the state of an object; collectively, the member objects of an object constitute its structure. The terms field, instance variable, member object, a slot are interchangeable.

Message

An operation that one object performs upon another. The terms message, method, and operation are usually interchangeable.

Metaclass

The class of a class; a class whose instances are themselves classes.

Method

An operation upon an object, defined as part of the declaration of a class; all methods are operations, but not all operations are methods, The terms message, method and operation are usually interchangeable. In some languages, a method stands alone and may be redefined in a subclass; in other languages, an method may mot be redefined, but serves as part of the implementation of a generic function or a virtual function, both of which may be redefined in a subclass.

Mixin

A class that embodies a single , focused behavior, used to augment the behavior of some other class via inheritance; the behavior of a mixin is usually orthogonal to the behavior of the classes with which it is combined.

Modularity

The property of a system that has been decomposed into a set of cohesive and loosely coupled modules.

Module

A unit of code that serves as a building block for the physical structure of a system; a program unit that contains declarations, expressed in the vocabulary of a particular programming language, that form the physical realization of some or all of the classes and objects in the logical design of the system. A module typically has two parts: its interface and its implementation.

Module Architecture

A graph whose vertices represent modules and whose arcs represent relationships among these modules. The module architecture of a system is represented by a set of module diagrams.

Module Diagram

Part of the notation of object-oriented design, used to show the allocation of classes and objects to modules in the physical design of a system. A module diagram may represent all or part of the module architecture of a system.

Monomorphism

A concept in type theory, according to which a name (such as a variable declaration) may only denote objects of the same class.

N

O

Object

Something you can do things to. An object has state, behavior, and identity; the structure and behavior of similar objects are defined in their common class. The terms instance and object are interchangeable.

Object Diagram

Part of the notation of object-oriented design, used to show the existence of objects and their relationships in the logical design of a system. An object diagram may represent all or part of the object structure of system, and primarily illustrates the semantics of mechanisms in the logical design. A single object diagram represents a snapshot in time of an otherwise transitory event of configurations of objects.

Object Model

The collection of principles that form the foundation of object-oriented design; a software engineering paradigm emphasizing the principles of abstraction, encapsulation, modularity, hierarchy, typing, concurrency, and persistence.

Object Structure

A graph whose vertices represent objects and whose arcs represent relationships among those objects. The object structure of a system is represented by a set of object diagrams.

Object-Based Programming

A method of programming in which programs are organized as cooperative collections of objects, each of which represents an instance of some type, and whose types are all members of a hierarchy of types united via other than inheritance relationships. In such programs, types are generally viewed as static, whereas objects typically have a much more dynamic nature, somewhat constrained by the existence of static binding and monomorphism.

Object-Oriented Analysis

A method of analysis in which requirements are examined form the perspective of the class and objects found in the vocabulary of the problem domain.

Object-Oriented Decomposition

The process of breaking a system into parts, each of which represents some class or object from the problem domain. The application of object-oriented design methods leads to an object-oriented decomposition, in which we view the world as a collection of objects that cooperate with one another to achieve some desired functionality.

Object-Oriented Design

A method of design encompassing the process of object-oriented decomposition and a notation for depicting both logical and physical as well as static and dynamic models of the system under design; specifically, this notation includes class diagrams, object diagrams, module diagrams, and process diagrams.

Object-Oriented Programming

A method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships. In such programs, classes are generally viewed as static, whereas objects typically have a much more dynamic nature, which is encouraged by the existence of dynamic binding and polymorphism.

Operation

Some work that one object performs upon another in order to elicit a reaction. All of the operations upon a specific object may be found in free subprograms and member functions or methods, The terms message, method, and operation are usually interchangeable.

P

Parameterized Class

A class that serves a a template for other classes, in which the template may be parameterized by other classes, objects, and/or operations. A parameterized class must be instantiated (its parameters filled in) before instances can be created. Parameterized classes are typically used as container classes; the terms generic class and parameterized class are interchangeable.

Partition

The class categories or subsystems that form a part of a given level of abstraction.

Passive Object

An object that does not encompass its own thread of control.

Persistence

The property of an object by which its existence transcends time(i.e., the object continues to exist after its creator ceases to exists) and/or space (i.e., the object's locations moves from the address space in which it was created).

Polymorphism

A concept in type theory, according to which a name (such as a variable declaration) may denote objects of many different classes that are related by some common superclass; thus, any object denoted by this name is able to respond to some common set of operations in different ways.

Postcondition

An invariant satisfied by an operation.

Precondition

An invariant assumed by an operation.

Private

A declaration that forms part of the interface of a class, object, or module; what is declared as private is not visible to any other classes, objects, or modules.

Process

The activation of a single thread of control.

Process Architecture

A graph whose vertices represent processors and devices and whose arcs represent connections among these processors and devices. The process architecture of a system is represented by a set of process diagrams.

Process Diagram

Part of the notation of object-oriented design, used to show the allocation of processes to processors in the physical design of a system. A process diagram may represent all or part of the process architecture of a system.

Processor

A piece of hardware that has computation resources.

Protected

A declaration that forms part of the interface of a class, object, or module, but that is not visible to any other classes, objects, or modules except those that represent subclasses.

Protocol

The ways in which an object may act and react, constituting the entire static and dynamic outside view of the object; the protocol of an object defines the envelope of the object's allowable behavior.

Public

A declaration that forms part of the interface of a class, object, or module, and that is visible to all other classes, objects, and modules that have visibility to it.

Q

R

Reactive System

An event-driven system; the behavior of a reactive system is not a simple input/out mapping.

Real-Time System

A system whose essential processes must meet certain critical time deadlines. A hard-real-time system must be deterministic; missing a deadline may lead to catastrophic results.

Responsibility

Some behavior for which an object is held accountable; a responsibility denotes the obligation of an object to provide a certain behavior.

Reverse-Engineering

The production of a logical or physical model from executable code.

Role

The purpose or capacity wherein one class or object participates in a relationship with another; the role of an object denotes the selection of a set of behaviors that are well-defined at a single point in time; a role is the face an object presents to the world at a given moment.

Round-Trip Gestalt Design

A style of design that emphasizes the incremental and iterative development of a system, through the refinement of different yet consistent logical and physical views of the system as a whole; the process of object-oriented design is guided by the concepts of round-trip gestalt design; round-trip gestalt design is a recognition of the fact that the big picture of a design affects its details, and that the details often affect the big picture.

S

Scenario

An outline of events that elicits some system behavior.

Selector

An operation that accesses the state of an object but does not alter that state.

Sequential Object

A passive object whose semantics are guaranteed only in the presence of a single thread of control.

Server

An object that never operates upon other objects, but is only operated upon by other objects; an object that provides certain services.

Service

The behavior provided by a given part of a system.

Signature

The complete profile of an operation's formal arguments and return type.

Slot

A repository for part of the state of an object; collectively, the slots of an object constitute its structure. The terms field, instance variable, member object, and slot are interchangeable.

Space Complexity

The relative or absolute time in which some operation completes.

State

The cumulative results of the behavior of an object; one of the possible conditions in which an object may exist, characterized by definite quantities that are distinct from other quantities; at any given point in time, the state of an object encompasses all of the (usually static) properties of the object plus the current (usually dynamic) values of each of these properties.

State Transition Diagram

Part of the notation of object-oriented design, used to show the state space of a given class, the events that cause a transition from one state to another, and the actions that result from a state change.

State Space

An enumeration of all the possible states of an object. The state space of an object encompasses an indefinite yet finite number of possible (although not always desirable not expected) states.

Static Binding

Binding denotes the association of a name (such as a variable declaration) with a class; static binding is a binding in which the name/class association is made when the name is declared (at compile time) but before the creation of the object that the name designates.

Strategic Design Decision

A design decision that has sweeping architectural implications.

Strongly Typed

A characteristic of a programming language, according to which all expressions are guaranteed to be type-consistent.

Structure

The concrete representation of the state of an object. An object does not share its state with any other object, although all objects of the same class do share the same representation of their state.

Structured Design

A method of design encompassing the process of algorithmic decomposition.

Subclass

A class that inherits from one of more classes (which are called its immediate superclasses).

Subsystem

A collection of modules, some of which are visible to other subsystems and others of which are hidden.

Superclass

The class from which another class inherits (which is called its immediate subclass).

Synchronization

The concurrency semantics of an operation. An operation may be simple (only one thread of control is involved), synchronous (two processes rendezvous), balking (one process may rendezvous with another only if the second process is already waiting), timeout (one process may rendezvous with another, but will wait or the second process only for a specified amount of time), or asynchronous (the two processes operate independently).

T

Tactical Design Decision

A design decision that has local architectural implications.

Thread of Control

A single process. The start of a thread of control is the root from which independent dynamic action within a system occurs; a given system may have many simultaneous thread of control, some of which may dynamically come into existence and then cease to exist. Systems executing across multiple CPU's allow for truly concurrent threads of control, whereas systems running on a single CPU can only achieve the illusion of concurrent threads of control.

Time Complexity

The relative or absolute space consumed by an object.

Transformational System

A system whose behavior is an input/output mapping.

Transition

The passing from one state to another state.

Type

The definition of the domain of allowable values that an object may possess and the set of operations that may be performed upon the object. The terms class and type are usually (but not always) interchangeable; a type is a slightly different concept than a class, in that it emphasizes the importance of conformance to a common protocol.

Typing

The enforcement of the class of an object, which prevents objects of different types from being interchanged or, at the most, allow them to be interchanged only in very restricted ways.

U

Use

To reference the outside view of an abstraction.

V

Virtual Function

An operation upon an object. A virtual function may be redefined by subclasses; thus, for a given object, it is implemented through a set of methods declared in various classes that are related via their inheritance hierarchy. The terms generic function and virtual function are usually interchangeable.

Visibility

The ability of one abstraction to see another and thus reference resources in its outside view. Abstractions are visible to one another only where their scopes overlap. Export control may further restrict access to visible abstractions.

W

X

Y

Z

cialis link tw886to generic cialis prices best price viagra cialis cialis attorney cincinnati cialis lowest price generic cialis trial packs black buy casino cialis diet followup gambling health jack phentermine poker post viagra cialis and bodybuilding cialis medication free generic cialis samples black buy casino cialis diet followup gambling jack online order phentermine poker post viagra cialis black box cialis message boards generic cialis american express apotheke cialis cialis and levitra and viagra and generic cialis muscle ache generic cialis hong kong archive blog cialis inurl cialis and levitra cialis line mexico does cialis work for women allowed black buy casino cialis diet holdem jack online order phentermine poker tag texas viagra xhtml cialis and multiple coitus cialis no prescription generic cialis price best for premature ejaculation viagra cialis levitra cialis and women cialis link liracrogreekbostoncom generic cialis allowed casino cialis diet phentermine poker tag viagra xhtml cialis add url cialis lawyer ohio experience cialis without ed allowed cialis phentermine tag viagra xhtml cialis back pain cialis online order how to get free cialis sample black buy casino cialis diet gambling jack order phentermine poker tag viagra xhtml cialis discount cialis maximum dose international order for generic cialis blogid buy casino cialis generic inurl order phentermine poker viagra cialis and blood pressure cialis mexico is cialis for me blogid buy casino cialis inurl phentermine poker viagra cialis and grapefruit cialis levitra viagra discount cialis best buy cialis generic ciales rock climbing cialis international shipping does cialis or levitra work best for diabetics allowed black buy casino cialis diet health jack phentermine poker sex tag title viagra xhtml cheap viagra cialis cialis lawyer cincinnati effectiveness of cialis reported allowed black casino cialis diet gambling jack phentermine poker tag viagra xhtml cheapest and cialis and generic and lowest price cialis injury attorney ohio compare levitra and cialis add cialis link suggest catholic cult and cialis cialis lcos lily online free cialis approval cialis fda cialis and early ejaculation cialis levitra viagra interaction generic cialis cheap free shipping free consultation articles on cialis cheapest cialis cialis injury lawyer columbus generic cialis international shipping buy cheapest cialis cialis compare levitra viagra cialis line prescription generic cialis next day black buy casino cheap cialis diet followup gambling health jack online order phentermine poker post viagra ciales cialis international shipping contact number cialis add buy cialis url cialis 20mg tablet cialis liquid how long does cialis take to work black buy casino cialis diet gambling health jack phentermine poker tag viagra xhtml cialis and alcohol cialis lawyer cleveland effectiveness viagra cialis levitra allowed casino cialis phentermine tag viagra xhtml cheapest cialis free samples cialis levitra versus versus viagra fda pharmaceutical testing trials cialis anti cialis impotence cheapest cialis price cialis injury attorney columbus compare viagra cialis and levitra add cialis site cheapest cialis with no perscription cialis injury lawyer cleveland compare viagra to cialis achat ligne cialis cheap cialis link suggest cialis impotence drug cialis with no prescription add buy cialis site canada cialis online cialis information prescribing cialis viagra taken together where can i buy cialis online black buy casino cialis diet followup gambling jack order phentermine poker post viagra cialis blindness cialis link suggest diabeties viagra cialis levitra allowed black buy casino cialis diet gambling jack order phentermine poker tag viagra xhtml cheap cialis online cialis generic tadalafil cialis without prescriptions add cialis generic link cialis and levitra taken together cialis information clinical trial testing cialis for high blood preasure add cialis link online canada generic cialis cialis germany cialis strength time line to buy without prescription cialis or levitra in detrit area buy cialis submit=buy cialis cialis drug interaction cialis online liquid cialis black buy casino cialis diet followup gambling jack low online order phentermine poker viagra cialis attorney cleveland cialis injury lawyer cincinnati cialis vs viagra .. can you take cialis with viagra cialis home page cialis western open ticket add buy cialis link canada cialis generic cialis generic online cialis uprima viagra value pharmaceuticals cialis buy cialis order cialis eli lilly cialis pharmacy natural supplement like cialis