Glossary

abstract class

A class that can be used only as a superclass of some other class; no objects of an abstract class may be created except as instances of a subclass.

abstraction

The act of concentrating the essential or general qualities of similar things. Also, the resulting essential characteristics of a thing.

active object

An object with its own thread of control.

aggregation

A property of an association representing a whole-part relationship and (usually) life-time containment.

analysis

An investigation of a domain that results in models describing its static and dynamic characteristics. It emphasizes questions of "what," rather than "how."

architecture

Informally, a description of the organization, motivation, and structure of a system. Many different levels of architectures are involved in developing software systems, from physical hardware architecture to the logical architecture of an application framework.

association

A description of a related set of links between objects of two classes.

attribute

A named characteristic or property of a class.

RJB99]. May be used to represent software or conceptual elements.

class attribute

A characteristic or property that is the same for all instances of a class. This information is usually stored in the class definition.

class hierarchy

A description of the inheritance relations between classes.

class method

A method that defines the behavior of the class itself, as opposed to the behavior of its instances.

classification

Defines a relation between a class and its instances. The classification mapping identifies the extension of a class.

collaboration

Two or more objects that participate in a client/server relationship in order to provide a service.

composition

The definition of a class in which each instance is comprised of other objects.

concept

A category of ideas or things. In this book, used to designate real-world things rather than software entities. A concept's intension is a description of its attributes, operations and semantics. A concept's extension is the set of instances or example objects that are members of the concept. Often defined as a synonym for domain class.

concrete class

A class that can have instances.

constraint

A restriction or condition on an element.

constructor

A special method called whenever an instance of a class is created in C++ or Java. The constructor often performs initialization actions.

container class

A class designed to hold and manipulate a collection of objects.

contract

Defines the responsibilities and postconditions that apply to the use of an operation or method. Also used to refer to the set of all conditions related to an interface.

coupling

A dependency between elements (such as classes, packages, subsystems), typically resulting from collaboration between the elements to provide a service.

delegation

The notion that an object can issue a message to another object in response to a message. The first object therefore delegates the responsibility to the second object.

derivation

The process of defining a new class by reference to an existing class and then adding attributes and methods The existing class is the superclass; the new class is referred to as the subclass or derived class.

design

A process that uses the products of analysis to produce a specification for implementing a system. A logical description of how a system will work.

domain

A formal boundary that defines a particular subject or area of interest.

encapsulation

A mechanism used to hide the data, internal structure, and implementation details of some element, such as an object or subsystem. All interaction with an object is through a public interface of operations.

event

A noteworthy occurrence.

extension

The set of objects to which a concept applies. The objects in the extension are the examples or instances of the concept.

framework

A set of collaborating abstract and concrete classes that may be used as a template to solve a related family of problems. It is usually extended via subclassing for application-specific behavior.

generalization

The activity of identifying commonality among concepts and defining a superclass (general concept) and subclass (specialized concept) relationships. It is a way to construct taxonomic classifications among concepts, which are then illustrated in class hierarchies. Conceptual subclasses conform to conceptual superclasses in terms of intension and extension.

inheritance

A feature of object-oriented programming languages by which classes may be specialized from more general superclasses. Attributes and method definitions from superclasses are automatically acquired by the subclass.

instance

An individual member of a class. In the UML, called an object.

instance method

A method whose scope is an instance. Invoked by sending a message to an instance.

instance variable

As used in Java and Smalltalk, an attribute of an instance.

instantiation

The creation of an instance of a class.

intension

The definition of a concept.

interface

A set of signatures of public operations.

link

A connection between two objects; an instance of an association.

message

The mechanism by which objects communicate; usually a request to execute a method.

metamodel

A model that defines other models. The UML metamodel defines the element types of the UML, such as Classifier.

method

In the UML, the specific implementation or algorithm of an operation for a class. Informally, the software procedure that can be executed in response to a message.

model

A description of static and/or dynamic characteristics of a subject area, portrayed through a number of views (usually diagrammatic or textual).

multiplicity

The number of objects permitted to participate in an association.

object

In the UML, an instance of a class that encapsulates state and behavior. More informally, an example of a thing.

object identity

The feature that the existence of an object is independent of any values associated with the object.

object-oriented analysis

The investigation of a problem domain or system in terms of domain concepts, such as conceptual classes, associations, and state changes.

object-oriented design

The specification of a logical software solution in terms of software objects, such as their classes, attributes, methods, and collaborations.

object-oriented programming language

A programming language that supports the concepts of encapsulation, inheritance, and polymorphism.

OID

Object Identifier.

RJB99]. An operation has a signature, specified by its name and parameters, and it is invoked via a message. A method is an implementation of an operation with a specific algorithm.

pattern

A named description of a problem, solution, when to apply the solution, and how to apply the solution in new contexts.

persistence

The enduring storage of the state of an object.

persistent object

An object that can survive the process or thread that created it. A persistent object exists until it is explicitly deleted.

polymorphic operation

The same operation implemented differently by two or more classes.

polymorphism

The concept that two or more classes of objects can respond to the same message in different ways, using polymorphic operations. Also, the ability to define polymorphic operations.

postcondition

A constraint that must hold true after the completion of an operation.

precondition

A constraint that must hold true before an operation is requested.

private

A scoping mechanism used to restrict access to class members so that other objects cannot see them. Normally applied to all attributes, and to some methods.

public

A scoping mechanism used to make members accessible to other objects. Normally applied to some methods, but not to attributes, since public attributes violate encapsulation.

pure data values

Data types for which unique instance identity is not meaningful, such as numbers, booleans, and strings.

qualified association

An association whose membership is partitioned by the value of a qualifier.

receiver

The object to which a message is sent.

recursive association

An association where the source and the destination are the same object class.

responsibility

A knowing or doing service or group of services provided by an element (such as a class or subsystem); a responsibility embodies one or more of the purposes or obligations of an element.

role

A named end of an association to indicate its purpose.

state

The condition of an object between events.

state transition

A change of state for an object; something that can be signaled by an event.

subclass

A specialization of another class (the superclass). A subclass inherits the attributes and methods of the superclass.

subtype

A conceptual superclass. A specialization of another type (the supertype) that conforms to the intension and extension of the supertype.

superclass

A class from which another class inherits attributes and methods.

supertype

A conceptual superclass. In a generalization-specialization relation, the more general type; an object that has subtypes.

transition

A relationship between states that is traversed if the specified event occurs and the guard condition met.

visibility

The ability to see or have reference to an object.