abstraction
A model of a real-world object or concept.
abstract
class A class that has no instances. It is usually defined with the
assumption that concrete subclasses will be derived from it, and extend its
basic attributes and behavior. In Java, an abstract class is one that includes
an abstract method.
accessor
A method that can access the state of an object.
actor
An actor is an object that can operate on other objects, but is never operated
on by other objects itself.
agent
An agent can both operate on other objects and provide services to other
objects. As the name implies, it often serves as an agent or intermediary
between other objects.
aggregation
A whole/part hierarchy. An aggregate object includes (
has-a)
other objects, each of which is considered to be a part of (
part-of)
the aggregate object.
API
Application Programming Interface. The specification of how a programmer
writing an application accesses the behavior and state of classes and
objects.
application
server A server program that allows the installation of application
specific software components, in a manner so that they can be remotely
invoked, usually by some form of remote object method call.
association
An association is a relationship between two or more classes. The association
will indicate how objects of the different classes relate to each
other.
attribute
Used to hold state information of an object. An attribute might be as simple
as an on or off boolean variable, or it might be a complex structure such as
another object. A class definition describes the attributes and operations
(methods) of a class.
base
class The most generalized class in an inheritance hierarchy. Most
applications will have many hierarchies with different base classes.
behavior
The activity of an object that is visible to the outside world. Includes how
an object responds to messages by changing its internal state or returning
state information to other objects.
callback
A method that is called when an event has taken place. Usually used in
association with a listener. When a listener detects an event, it will invoke
the callback of objects that need to know that the event has
occurred.
CASE
Computer Aided Software Engineering. Software tools used to help automate the
development process. CASE tools are most often associated with a specific
software development methodology (such as RUP or XP), or design notation
(UML).
class
A class is a description of a set of objects. The set of objects share common
attributes and common behavior. Class is similar in concept to abstract data
types found in non-OO programming languages, but is more comprehensive in that
it includes both structure and behavior. A class definition describes all the
attributes of member objects of that class, as well as the class methods that
implement the behavior of member objects.
For Java specifically, a class definition defines instance and
class variables and methods, as well as specifying the interfaces the class
implements and the immediate superclass of the class. If the superclass is not
explicitly specified, the superclass will implicitly be Object.
class
attribute Attributes of a class that are shared by all instances of the
class. There will be only one copy of each class attribute, and it is possible
to access these class attributes without creating any instances of the class.
These are sometimes called static attributes in Java.
class
method A method defined by a class that only operates on class
attributes. Class methods can be used without creating any instances of the
class. These are sometimes called static methods in Java.
cohesion
The connection or similarity (or similarity of purpose) of the components of a
class. All elements of a class should work on achieving a common
purpose.
COM
COM refers to standard developed by Microsoft Corporation which provides a
framework for integrating components. DCOM is the distributed computing
version.
composition
A composition is a form of aggregation where the whole cannot exist without
having the parts.
concrete
class A class that is completely specified and can have instances. A
Java class derived from and abstract class will define all the abstract
methods from the abstract class.
constructor
An operation that creates an object and defines its initial state. For complex
objects, construction can be a significant activity, and cause the
constructors of other objects to be invoked as well. In Java, constructors are
instance methods with the same name as their class. Constructors are invoked
using the new keyword.
container
A class whose instances are collections of other objects. These collections
may be objects all of the same type, or of mixed types, although they usually
have a common superclass. Containers include lists, stacks, queues, bags, and
others. They usually provide a method to iterate over each object in the
container.
constructor
An operation that creates an object and defines its initial state. For complex
objects, construction can be a significant activity, and cause the
constructors of other objects to be invoked as well.
CORBA
Distributed computing standard maintained by the Object Management Group
(OMG), called the Common Object Request Broker Architecture.
core
class A public class (or interface) that is a standard member of the
Java Platform.
COS
Naming CORBA standard for object directories.
customer
The organization that needs a software system, and is paying for the
development. The customer should have a clear idea of what the software system
needs to do, and how it can best help the customer's organization.
coupling
The interdependence of various components of the system on one another.
Independent objects should have no coupling with each other. Relying on the
internal implementation of a class, or using friend access couples two
classes.
DAP
Directory Access Protocol, a protocol for directory services, derived from
X.500.
DCE
Distributed Computing Environment is a distributed computing standard
developed by the Open Software Foundation (OSF) with input from
industry.
DCOM
Microsoft's Distributed Component Object Model.
deep
copy Making a copy of an object that makes a duplicate of everything,
including allocating space to build new copies of anything pointed to by
pointers.
default
behaviors In an inheritance hierarchy, the class behaviors defined by
superclasses that will be used by default unless they are overridden by some
subclass.
derived
In an inheritance hierarchy, a subclass is derived from a superclass. The
derived subclass inherits the attributes and methods of the parent
superclass.
destructor
A destructor is an operation that destroys an object and frees whatever
resources the object used. It is invoked when an object ceases to exist, such
as when it goes out of scope.
developer
An organization that develops software for a customer. The developer will work
with the customer to design a software system that best meets the needs of the
customer given the time and financial constraints imposed by the
customer.
distributed
computing A computing environment where applications are composed of
various parts and objects that can be located on different computers connected
to a network. Distributed computing requires a set of standards that specify
how the parts running on different computers communicate with each other.
Currently, the two main standards are CORBA and DCOM.
dynamic
binding Definition bound at run time.
EJB
Enterprise JavaBeans, a server component standard developed by Sun
Microsystems.
encapsulation
The process of hiding all the internal details of an object from the outside
world. In Java, encapsulation is enforced by having the definitions for
attributes and methods inside a class definition.
estimation
Before a project can proceed, the customer usually needs a feasibility study
and an estimation of the final cost of the system.
event
An occurrence that can alter the state of the system.
feasibility
Given an initial specification, the developer will work with the customer to
decide if it is feasible to continue with the development of a software
project given the technical, time, and financial constraints. This is also
known as risk assessment - is it within acceptable risks to proceed with the
project?
finalization
A finalizer method is called by the Java garbage collector when it finally
frees the storage space used by an object. It is not possible to know when an
object will be finalized.
framework
A collection of classes designed to provide a set of services for a particular
problem area. The designers of a framework should be experts in a problem
domain, and thus provide a higher level design that makes it easier for an
application using the framework to build an application for that problem
domain.
friend
A friend class is one that has access to protected data even though it is not
a direct subclass of a given class. Friend access is provided by package
access in Java.
garbage
collection The automatic detection and freeing of memory that is no
longer in use. An object becomes available for garbage collection when it is
no longer referred to by any other object. Java uses garbage collection rather
than explicit destructors found in other OO languages such as C++.
generalization/specialization
An inheritance hierarchy. Each subclass is a specialization of a more
generalized superclass.
generic/parameterized
classes A class whose final definition is determined by parameters. One
typical use is to define container classes for arbitrary types of objects. The
type of the object is specified in the parameter. Parameterized classes are
not supported by Java.
getter
A method that returns the value of a class attribute. Getters are also known
as accessors or selectors. By convention, getter methods have names such as
getLimit or getWidth.
has-a
A way to state a whole/part relationship. The whole object
has-a
part.
hierarchy
An ordering of classes. The most common OO hierarchies are inheritance and
aggregation.
HTTP
Hypertext Transfer Protocol, one of the main protocols for transferring
web pages.
identity
The characteristics or state of an object that allows it to be distinguished
from other objects.
IDL
Interface Description Language, CORBA's syntax for defining object remote
interfaces. (Another meaning of IDL is Interactive Data Languaage, a
programming tool for the interactive reduction, analysis, and visualization of
scientific data and images.)
IIOP
Internet Inter-ORB Protocol, CORBA's wire protocol for transmitting remote
object method invocations.
implements
In Java, a specification that the class will implement the code required by an
interface.
inheritance
A mechanism that allows one class (subclass) to share the attributes and
behaviors of another class (superclass). Inheritance defines an
is-a
relationship between classes. The subclass or derived class inherits the
attributes and behaviors of the superclass, and will usually extend or modify
those attributes and behaviors.
single
inheritance When a subclass is derived from a single superclass, it is
said to have single inheritance.
multiple
inheritance When a subclass is derived from multiple superclasses, it
is said to have single inheritance. Java does not allow multiple inheritance,
but provides interfaces as an alternative.
initial
specification An early description of what a software system needs to
do. Depending on the overall size of the project, the initial specification
can be simple, or consist of extensive documentation.
instance
A specific object that is an instantiation of a class. An instance has
specific attributes and behaviors, and a unique identity. Instance and object
are often used interchangeably.
instance
attribute An attribute of a class that is associated with a particular
instance of the class. Each instance will have its own copies of instance
attributes.
instance
method Methods defined by a class that operate on instance attributes.
This is the most common type of method defined by a class, and an instance
method will be used only with its associated instance of the class.
instantiation
Creating an instance of an object of a given class. Instantiating an instance
brings it into existence.
interface
In Java, an interface is a specification of methods a class using the
interface must implement. An interface is a specification, and does not define
any code. It provides an alternative to multiple inheritance.
is-a
A term used in inheritance hierarchies. In general, a subclass
is-a
specialized kind of a more general superclass.
is-a
test A simple test to check for proper inheritance design. If you
cannot say a subclass
is-a
kind of the superclass, then inheritance is probably not
appropriate.
iterator
An iterator is a method (or methods) used to access or visit each part of an
object. This allows the outside world controlled access to all important parts
of an object without the need to know the internal implementation details of a
specific object. Iterators are often used with container classes, and
typically work by accessing the first item in a container, and then each
subsequent object until all objects have been accessed.
J2EE
Java 2 Platform, Enterprise Edition, Sun's standard for developing enterprise
applications, especially targeted for distributed computing.
Java
Naming and Directory Interface The Java standard API for accessing
directory services, such as LDAP, COS Naming, and others.
Java
Transaction API Java API for coding client demarcated transactions, and
for building transactional data source drivers.
JDBC
Java database connectivity technology is the Sun API that implements the
X/Open SQL call-level interface specifications to provide cross-DBMS
connectivity to a wide range of SQL databases. This is the main Java standard
access to databases.
JNDI
Java Naming and Directory Interface.
JNI
Java Native Interface (JNI) is a standard programming interface for writing
Java native methods and embedding the Java virtual machine into native
applications.
JSP
JavaServer Pages, a technology from Sun that to build dynamic web pages using
Java and XML-like tags to generate page content.
JTA
Java Transaction API.
JTS
Java Transaction Service, the Java binding for the CORBA Transaction
Service.
JVM
Java Virtual Machine.
link
A reference to another class. Used to build associations between
classes.
listener
A method that responds to events. These are usually system events such as
mouse clicks or timer events. The listener will typically invoke callbacks of
objects that need to respond to the event.
member
An attribute or method that belongs to a given class.
method
An operation or service performed upon an object, defined as part of the
declaration of a class. Methods are used to implement object behavior.
Synonyms for method include member function, operation, and service.
message
A message is an operation one object performs on another. Messages are usually
sent by invoking a specific method or operation provided by another
object.
messaging
middleware Middleware that supports a publish-and-subscribe or
broadcast metaphor.
method
An operation or service performed upon an object, defined as part of the
declaration of a class. Methods are used to implement object behavior.
Synonyms for method include member function, operation, and service.
middleware
Middleware is a software interface between the network and the applications.
It provides services such as identification, authentication, authorization,
directories, and security. The most widespread middleware standards are the
Open Software Foundation's DCE, OMG's CORBA, and Microsoft's
COM/DCOM.
mix-in
A class (or usually an interface in Java) that is used to define a single
behavior. Mix-ins are usually not standalone classes, but are used to provide
a standard for implementing the designed behavior.
modifier
This is an operation that alters the state of an object.
module
A module is a basic technique of organizing a program, and is usually thought
of as containing all the specific code and declarations needed to implement a
given part of a design. It is the basic unit of encapsulation. In an OO
design, usually each class is implemented as a separate module, and
encapsulates all the data structures and methods, and controls access by the
outside world.
MOM
Message-Oriented Middleware.
multiplicity
An attribute that quantifies an association between objects. The multiplicity
is specified as a range of the number of objects that can participate in the
association, usually in the form
n..m,
where
n
is the lower limit and
m
the upper limit. A
*
means an unlimited number, while a single value can also be used. Common
multiplicities include
1,
0..*,
1..*,
and
*.
NSAPI
Netscape's C language API for adding application extensions to their Web
servers.
object
The basic unit of object orientation. An object is an entity that has
attributes, behavior, and identity. Objects are members of a class, and the
attributes and behavior of an object are defined by the class definition. An
object and an instance are the same thing.
object
database An object-oriented database system. See ODMG and
ODBMS.
object
orientation A method of developing software that uses abstraction with
objects, encapsulated classes, communication via messages, object lifetime,
class hierarchies, and polymorphism.
object
lifetime The time an object exists - from its instantiation in its
constructor until the object no longer exists and has been finalized by the
Java garbage collector. The creation point of an object is under program
control, but the exact moment when an object ceases to exist cannot be
determined because of the way the Java garbage collector works.
ODBC
Open Database Connectivity (ODBC) is Microsoft's standard based on the X/Open
SQL call-level interface specifications. It does not work well with
Java.
ODBMS
Object Database Management System, the result of integrating database
capabilities with object-oriented programming language capabilities.
ODMG
Object Data Management Group, responsible for setting standards for object
databases.
OMG
Object Management Group, an organization that defines and promotes object
oriented programming standards.
OODB
Object-Oriented Database.
OODBMS
Object-Oriented Database Management System.
operation
A class definition describes the attributes and operations of a class.
Attributes are implemented as variables and operations are implemented as
methods.
ORB
Object Request Broker, a middleware technology that manages communication and
data exchange between distributed objects. It is the primary message routing
component in a CORBA product.
overriding
When a subclass specifies an alternative definition for an attribute or method
of its superclass, it is overriding the definition in the superclass. Also
called overloading. Java can only overload methods.
part-of
The opposite of
has-a.
The component is a
part-of
the whole.
persistence
Some objects can thought of as persistent whose existence transcend time.
Persistent objects usually provide methods that save and restore their own
state (to disk, for example).
POA
Portable Object Adapter, a CORBA standard for defining object lifecycle and
activation.
polymorphism
Polymorphism is what allows the appropriate method for any given object to be
used automatically. Polymorphism goes hand in hand with inheritance and
classes derived from a common superclass. Polymorphism is supported by dynamic
binding of an object to the appropriate method.
private,
protected, public Private, protected, and public are access concepts
within a class. Private data and methods are available only to instances of
the immediate class. Protected items are available to other classes directly
derived from the immediate class. Public items are available to the world. It
is usually best to keep all data items and structures private or protected,
and allow public access to a class only through public methods.
problem
domain The field or area a software system is being developed for. An
accounting system would fall into a financial problem domain, and require
input from financial experts to its design, for example.
problem
statement A plain language description of what a program must do. A
problem statement will not include details of how a program is going to do it.
The problem statement must be written in the vocabulary of the problem domain.
For example, the problem statement for an accounts-payable system should be
written in the vocabulary of an accountant, not that of a computer
programmer.
reference
A data element whose value is an address. In Java, all objects are accessed by
reference. Any object variable will be a reference to an actual object, and
not the object itself.
RMI
Remote Method Invocation, the Java standard technology for building
distributed objects whose methods can be invoked remotely across a
network.
root
class The top most or most generalized user class of an inheritance
hierarchy. In Java, all classes are at least implicitly derived from the Java
Object class, which make it the most primitive root class. Most applications
will have many hierarchies with different non-Object root classes.
RUP
Rational Unified Process, an object-oriented development methodology from
Rational Software.
selector
This is an operation that gets information about the state of an object
without altering the state of the object.
servlet
Servlets are modules of Java code that run in a server application to answer
client requests. Servlets don't use a specific client-server protocol, but
they are usually used with HTTP.
setter
A method that allows the outside world to modify an attribute of a class.
Setter methods are also known as mutators or modifiers. Setter methods by
convention have names such as setLimit or setWidth.
SQL
Structured Query Language, the most widely used standardized query language
for requesting information from a database.
SQLJ
An extended Java syntax for embedding SQL-like commands in a Java
program.
state
State reflects the current values of all the attributes of a given object, and
is the result of the behavior of an object over time.
subclass
In an inheritance hierarchy, a subclass is derived from an associated
superclass. A subclass is a specialization of the generalized
superclass.
superclass
In an inheritance hierarchy, a superclass is a more generalized class. A
subclass will be derived from a superclass. (A superclass is also known as a
parent class or a base class)
this
Also called
self.
A reference to the current object. Within a class definition, references to
the attributes and methods of the class are implicit. The
this
reference can be used for clarity to make a reference explicit. Most commonly,
however,
this
is used to pass a reference to the current instance to another
object.
visibility
The ability of one class to see and use the resources of another class.
Visibility is controlled by various programming language features such as
Java's public, protected, and private specifiers.
whole/part
A relationship between classes where one class will be made up of or contain
objects of another class.
XMI
XML Metadata Interchange A new OMG standard combining UML and XML.
XML
XML is an open standard of the World Wide Web Consortium (W3C) designed as a
data format for structured document interchange on the web. For example, it
allows defining new operations when standard HTML is not a good fit.