TOC PREV NEXT INDEX

Put your logo here!

The Essence of Object Oriented Programming with Java and UML


Glossary
 
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.


TOC PREV NEXT INDEX

The Essence of Object-Oriented Programming with Java and UML (DRAFT)

Copyright © 2001 by Addison-Wesley

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior consent of the publisher. You may view this document on a web browser, but you must not mirror or make local copies.