 |
Microgold offers technical assistance on a number of different levels depending on the tech support package that you purchase with your software. Many questions can be answered by simply reviewing the topics under our FAQs. We can be contacted by phone or email, or through the web interface. |
 |
Object Oriented Programming Glossary
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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.
back to top
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).
back to top
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.
back to top
U
Use
- To reference the outside view of an abstraction.
back to top
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.
back to top
W
X
Y
Z
back to top
|
 |