Rational Unified Process – RUP Definitions



ee: activity-based costing


See: activity-based management


Of or relating to a subject in the abstract without practical purpose or intention. Not applied or practical; theoretical. Considered apart from concrete existence. Contrast: concrete. See: abstract class. A concept or idea not associated with any specific instance. Synonym: abstraction.  A summary of the main points of an argument or theory. Synonyms: outline, synopsis.

abstract class

A class that provides common behavior across a set of subclasses but is not itself designed to have instances. An abstract class represents a concept; classes derived from it represent implementations of the concept. See also: base class. Contrast: concrete class.


The creation of a view or model that suppresses unnecessary details to focus on a specific set of details of interest  The essential characteristics of an entity that distinguish it from all other kinds of entities. An abstraction defines a boundary relative to the perspective of the viewer.


An action by which the customer accepts ownership of software products as a partial or complete performance of a contract.

access modifier

A keyword that controls access to a class, method, or attribute. The access modifiers in Java are public, private, protected, and package, which is the default.

accessor methods

Methods that an object provides to define the interface to its instance variables. The accessor method to return the value of an instance variable is called a get method or getter method, and the mutator method to assign a value to an instance variable is called a set method or setter method.


Access control list.


The specification of an executable statement that forms an abstraction of a computational procedure. An action typically results in a change in the state of the system, and can be realized by sending a message to an object or modifying a link or a value of an attribute.

action sequence

An expression that resolves to a sequence of actions.

action state

A state that represents the execution of an atomic action, typically the invocation of an operation.


The execution of an action.

active class

A class representing a thread of control in the system. A class whose instances are active objects. See: active object.

active object

An object that owns a thread and can initiate control activity. An instance of active class.

Active Server Page (ASP)

Active Server Page (Microsoft®), a technology mechanism for providing dynamic behavior to web applications.


A unit of work a role may be asked to perform.

Activity-Based Costing (ABC)

A methodology that measures the cost and performance of activities, resources, and cost objects. Resources are assigned to activities, then activities are assigned to cost objects based on their use. Activity based costing recognizes the causal relationships of cost drivers to activities.

Activity-Based Management (ABM)

The broad discipline that focuses on achieving customer value and company profit by way of the management of activities. It draws on activity-based costing as a major source of information.

activity graph

A special case of a state machine that is used to model processes involving one or more classifiers. Contrast: statechart diagram . Synonym: activity diagram.

actor (class)

Defines a set of actor instances, in which each actor instance plays the same role in relation to the system.  A coherent set of roles that users of use cases play when interacting with these use cases. An actor has one role for each use case with which it communicates.

actor (instance)

Someone or something, outside the system that interacts with the system.

actor generalization

An actor generalization from an actor class (descendant) to another actor class (ancestor) indicates that the descendant inherits the role the ancestor can play in a use case.

actual parameter

Synonym: argument.

Advanced Program-to-Program Communication (APPC)

A communication protocol used primarily in IBM environments.

aggregate (class)

A class that represents the “whole” in an aggregation (whole-part) relationship. See: aggregation.


An association that models a whole-part relationship between an aggregate (the whole) and its parts.  A special form of association that specifies a whole-part relationship between the aggregate (whole) and a component part. See: composition.

American Standard Code for Information Interchange (ASCII)

American standard code for information interchange. The 8-bit character encoding scheme used by most PCs and UNIX systems. It supersedes an earlier 7-bit ASCII standard.


The part of the software development process whose primary purpose is to formulate a model of the problem domain. Analysis focuses on what to do; design focuses on how to do it. See: design.

analysis & design

(general) activities during which strategic and tactical decisions are made to meet the required functional and quality requirements of a system. See also: Design Model.  A discipline in the Unified Process, whose purpose is to show how the system’s use cases will be realized in implementation.

analysis class

An abstraction of a role played by a design element in the system, typically within the context of a use-case realization. Analysis classes may provide an abstraction for several roles, representing the common behavior of those roles. Analysis classes typically evolve into one or more design elements; for example, design classes and/or capsules, or design subsystems.

analysis mechanism

An architectural mechanism used early in the design process, during the period of discovery when key classes and subsystems are being identified. Typically analysis mechanisms capture the key aspects of a solution in a way that is implementation independent. Analysis mechanisms are usually unrelated to the problem domain, but instead are “computer science” concepts. They provide specific behaviors to a domain-related class or component, or correspond to the implementation of cooperation between classes and/or components. They may be implemented as a framework. Examples include mechanisms to handle persistence, inter-process communication, error or fault handling, notification, and messaging, to name a few.

analysis model

An object model that serves as an abstraction of the design model; provides the initial definition of the realization of the use cases.

analysis pattern

[FOW97a] speaks of analysis patterns as,

“[…] groups of concepts that represent a common construction in business modeling. It may be relevant to only one domain, or it may span many domains.”

Therefore, in this reference, the vocabulary of the domain does intrude into the description of the pattern. There is no reason why the definition in [FOW97a] should not be extended to domains other than business modeling. Another aspect of an analysis pattern is that it is an abstract, conceptual template, intended (through binding as with any pattern) for instantiation in an analysis model, which will then need further refinement through design. The scale of an analysis pattern can vary widely, though those presented in [FOW97a] are medium in scale, and would compose to form analysis models for entire applications.

analysis time

Refers to something that occurs during an analysis phase of the software development process. See: design timemodeling time.


Member of the project team who is responsible for eliciting and interpreting the stakeholder needs, and communicating those needs to the entire team.


See: application programming interface


See: advanced program-to-program communication


A Java program designed to run within a Web browser. Contrast: application.


An act of putting to use (new techniques): an act of applying techniques.

Function and industry-relevant software that is determined by a particular business (for example, banking, aerospace, stock brokerage, insurance, accounting, inventory).

In Java programming, a self-contained, stand-alone Java program that includes main() method. Contrast: applet.

Application Programming Interface (API)

A software interface that enables applications to communicate with each other. An API is the set of programming language constructs or statements that can be coded in an application program to obtain the specific functions and services provided by an underlying operating system or service program.

architectural baseline

The baseline at the end of the Elaboration phase, at which time the foundation structure and behavior of the system is stabilized.

architectural mechanism

Architectural mechanisms represent common concrete solutions to frequently encountered problems. They may be patterns of structure, patterns of behavior, or both. In the Rational Unified Process (RUP), architectural mechanism is used as an umbrella term for analysis mechanism, design mechanism, and implementation mechanism.

architectural pattern

[BUS96] defines an architectural pattern as:

“An architectural pattern expresses a fundamental structural organization schema for software systems. It provides a set of predefined subsystems, specifies their responsibilities, and includes rules and guidelines for organizing the relationships between them.”

This is the interpretation we use in the RUP. To elaborate a little: an architectural pattern is a pattern (that is, a solution template) at a particular scale, and is a template for concrete software architectures. It deals in system-wide properties and, typically, subsystem-scale (not class level) relationships. Architectural patterns seem, by their nature, not to be application domain dependent—the vocabulary of a particular domain seems not to intrude into the description of the pattern—although there is no reason in principle why architectural patterns cannot become specialized in this way. Compare with analysis pattern. The Software Architecture Document will present the architectural patterns used in the system.

architectural view

A view of the system architecture from a given perspective. Focuses primarily on structure, modularity, essential components, and the main control flows.


The highest level concept of a system in its environment, according to IEEE. The architecture of a software system (at a given point in time) is its organization or structure of significant components interacting through interfaces, those components being composed of successively smaller components and interfaces.

The organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems.

architecture, executable

See: executable architecture.


A binding for a parameter that resolves to a run-time instance. Synonym: actual parameter. Contrast: parameter.

A data element, or value, included as a parameter in a method call. Arguments provide additional information that the called method can use to perform the requested operation.


(1) A piece of information that: 1) is produced, modified, or used by a process, 2) defines an area of responsibility, and 3) is subject to version control. An artifact can be a model, a model element, or a document. A document can enclose other documents.

A physical piece of information that is used or produced by a software development process. Examples of Artifacts include models, source files, scripts, and binary executable files. An artifact may constitute the implementation of a deployable component. Synonym: product. Contrast: component.

artifact guidelines

A description of how to work with a particular artifact, including how to create and revise the artifact.

artifact set

A set of related artifacts which help to present one aspect of the system. Artifact sets cut across disciplines, as several artifacts are used in a number of disciplines; for example, the Risk List, the Software Architecture Document, and the Iteration Plan.


See: american standard code for information interchange


See: active server page


A logical expression specifying a program state that must exist or a set of conditions that program variables must satisfy at a particular point during program execution.


A relationship that models a bi-directional semantic connection among instances.

The semantic relationship between two or more classifiers that specifies connections among their instances.

association class

A model element that has both association and class properties. An association class can be seen as an association that also has class properties, or as a class that also has association properties.

association end

The endpoint of an association, which connects the association to a classifier.

asynchronous action

A request where the sending object does not pause to wait for results. Contrast: synchronous action.


A planned and methodical attempt to break or otherwise circumvent the normal operation of a running computer software program. Often malicious in nature, the concept of attacking computer software originated in the software hacker (A.K.A cracker) community whose members use various techniques to attack software systems, typically to circumvent security software and gain illegal entry to a host system. Examples of recognized attack techniques include buffer overflow, denial of service, resource constraint and Trojan horse. This term has subsequently been adopted by computer software testing professionals in discussing the methods by which they might expose potential bugs in a software system.


An attribute defined by a class represents a named property of the class or its objects. An attribute has a type that defines the type of its instances.

A feature within a classifier that describes a range of values that instances of the classifier may hold.


base class

A class from which other classes or beans are derived. A base class may itself be derived from another base class. See: abstract class.


A reviewed and approved release of artifacts that constitutes an agreed basis for further evolution or development and that can be changed only through a formal procedure, such as change management and configuration control .


Beginner’s all-purpose symbolic instruction code, a programming language. See: VB .


A small component that can be used to build applications. See: JavaBean .


A companion class for a bean that defines a set of methods that can be accessed to retrieve information on the bean’s properties, events, and methods.


The observable effects of an operation or event, including its results.

behavioral feature

A dynamic feature of a model element , such as an operation or method .

behavioral model aspect

A model aspect that emphasizes the behavior of the instances in a system, including their methods , collaborations , and state histories.

beta testing

Pre-release testing in which a sampling of the intended customer base tries out the product.

binary association

An association between two classes . A special case of an n-ary association .


The creation of a model element from a template by supplying arguments for the parameters of the template.


An enumeration whose values are true and false.

boolean expression

An expression that evaluates to a boolean value.

boundary class

A class used to model communication between the system’s environments and its inner workings.

break point

A point in a computer program where the execution will be halted.


An operational version of a system or part of a system that demonstrates a subset of the capabilities to be provided in the final product.

business actor (class)

Defines a set of business-actor instances, in which each business-actor instance plays the same role in relation to the business.

business actor (instance)

Someone or something, outside the business that interacts with the business.

business analysis model

An object model describing the realization of business use cases . Synonym: business object model.

business architecture

Business architecture is an organized set of elements with clear relationships to one another, which together form a whole defined by its functionality. The elements represent the organizational and behavioral structure of a business, and show abstractions of the key processes and structures of the business.

business creation

To perform business engineering where the goal is to create a new business process , a new line of business or a new organization.

business engineering

A set of techniques a company uses to design its business according to specific goals. Business engineering techniques can be used for both business reengineering, business improvement , and business creation .

business entity

A business entity represents a significant and persistent piece of information that is manipulated by business actors and business workers .

business event

A business event describes a significant occurrence in space and time, of importance to the business. Business events are used to signal between business processes and are usually associated with business entities .

business goal

A business goal is a requirement that must be satisfied by the business. Business goals describe the desired value of a particular measure at some future point in time and can therefore be used to plan and manage the activities of the business. Also see business objective .

business improvement

To perform business engineering where the work of change is local and does not span the entire business. It involves trimming costs and lead times and monitoring service and quality.

business modeling

Encompasses all modeling techniques you can use to visually model a business. These are a subset of the techniques you may use to perform business engineering .

business objective

The commonly-used term for high-level business goals . Because business objectives are usually abstract, they are difficult to measure and are therefore translated into more measurable lower-level business goals.

business process

A group of logically related activities that use the resources of the organization to provide defined results in support of the organization’s objectives. In the RUP, we define business processes using business use cases , which show the expected behavior of the business, and business use-case realizations , which show how that behavior is realized by business workers and business entities . See also: process .

business process engineering

See: business engineering .

business reengineering

To perform business engineering where the work of change includes taking a comprehensive view of the entire existing business and think through why you do what you do. You question all existing business processes and try to find completely new ways of reconstructing them to achieve radical improvements. Other names for this are business process reengineering (BPR) and process innovation.

business rule

A declaration of policy or condition that must be satisfied within the business. Business rules can be captured in models, in documents or in both.

business strategy

The business strategy defines the principles and goals for realizing the business idea. It consists of a collection of long-term business objectives that will ultimately result in the achievement of the business vision.

business system

A business system encapsulates a set of roles and resources that together fulfill a specific purpose, and defines a set of responsibilities with which that purpose can be achieved.

business use-case (class)

A business use case defines a set of business use-case instances, where each instance is a sequence of actions a business performs that yields an observable result of value to a particular business actor. A business use-case class contains all main, alternate workflows related to producing the “observable result of value”.

business use-case (instance)

A sequence of actions performed by a business that yields an observable result of value to a particular business actor.

business use-case model

A model of the business intended functions. The business use-case model is used as an essential input to identify roles and deliverables in the organization.

business use-case package

A business use-case package is a collection of business use cases, business actors, relationships, diagrams, and other packages; it is used to structure the business use-case model by dividing it into smaller parts.

business use-case realization

A business use-case realization describes how the workflow of a particular business use case is realized within the business analysis model, in terms of collaborating business objects.

business worker

A business worker represents a role or set of roles in the business. A business worker interacts with other business workers and manipulates business entities while participating in business use-case realizations .



An action state that invokes an operation on a classifier .

call-level interface (CLI)

A callable API for database access, which is an alternative to an embedded SQL application program interface. In contrast to embedded SQL, CLI does not require precompiling or binding by the user, but instead provides a standard set of functions to process SQL statements and related services at run time.


A specific design pattern which represents an encapsulated thread of control in the system. A capsule is a stereotyped class with a specific set of required and restricted associationsand properties .

capsule role

Capsule roles represent a specification of the type of capsule that can occupy a particular position in a capsule’s collaboration or structure. Capsule roles are strongly owned by the container capsule and cannot exist independently of it. A capsule’s structural decomposition usually includes a network of collaborating capsule roles joined by connectors.


The number of elements in a set. Contrast: multiplicity .


See: component-based development


See: change control board


See: critical design review


See: common gateway interface

change control board (CCB)

The role of the CCB is to provide a central control mechanism to ensure that every change request is properly considered, authorized and coordinated.

change management

The activity of controlling and tracking changes to artifacts . See also: scope management .

Change Request (CR)

A general term for any request from a stakeholder to change an artifact or process . Documented in the Change Request is information on the origin and impact of the current problem, the proposed solution, and its cost. See also: enhancement requestdefect.


A set of conditions that well-formed artifacts of a particular type should exhibit. May also be stated in the form of questions which should be answered in the affirmative.


In a generalization relationship, the specialization of another element, the parent. See: subclasssubtype. Contrast: parent.


A description of a set of objects that share the same attributesoperationsmethodsrelationships, and semantics. A class may use a set of interfaces to specify collections of operations it provides to its environment. See: interface.

class diagram

A diagram that shows a collection of declarative (static) model elements, such as classes,types, and their contents and relationships.

class hierarchy

The relationships among classes that share a single inheritance. All Java classes inherit from the Object class.


A mechanism that describes behavioral and structural features. Classifiers include interfacesclassesdatatypes, and components.

class library

A collection of classes.

class method

See: method.


See: call-level interface.


A classifier that requests a service from another classifier. Contrast: supplier.


The model of interaction in distributed data processing where a program at one location sends a request to a program at another location and awaits a response. The requesting program is called a client, and the answering program is called a server.


See: configuration management .


Common Business Oriented Language


The congenital union of components of the same kind that depend on one another. The act or state of sticking together; close union. Contrast: coupling.


(1) Is a description of a collection of objects that interact to implement some behavior within a context. It describes a society of cooperating objects assembled to carry out some purpose.

(2) It captures a more holistic view of behavior in the exchange of messages within a network of objects.

(3) Collaborations show the unity of the three major structures underlying computation: data structure, control flow, and data flow.

(4) A collaboration has a static and a dynamic part. The static part describes the roles that objects and links play in an instantiation of the collaboration. The dynamic part consists of one or more dynamic interactions that show message flow over time in the collaboration to perform computations. A collaboration may have a set of messages to describe its dynamic behavior.

(5) A collaboration with messages is an interaction.

The specification of how an operation or classifier, such as a use case, is realized by a set of classifiers and associations playing specific roles used in a specific way. The collaboration defines an interaction. See: interaction.

collaboration diagram

(1) A collaboration diagram describes a pattern of interaction among objects; it shows the objects participating in the interaction by their links to each other and the messages they send to each other.

(2) It is a class diagram that contains classifier roles and association roles rather than just classifiers and associations.

(3) Collaboration diagrams and sequence diagrams both show interactions, but they emphasize different aspects. Sequence diagrams show time sequences clearly but do not show object relationships explicitly. Collaboration diagrams show object relationships clearly, but time sequences must be obtained from sequence numbers.

A diagram that shows interactions organized around the structure of a model, using either classifiers and associations or instances and links. Unlike a sequence diagram, a collaboration diagram shows the relationships among the instances. Sequence diagrams and collaboration diagrams express similar information, but show it in different ways. See: sequence diagram.


An attribute of a table in a database.


Component object model (Microsoft). A software architecture from DEC and Microsoft, allowing interoperation between ObjectBroker and OLE (Object linking and embedding). Microsoft later evolved COM into DCOM.


An annotation attached to an element or a collection of elements. A note has no semantics. Contrast: constraint.


The operation that ends a unit of work to make permanent the changes it has made to resources (transaction or data).

commongateway interface (CGI)

A standard protocol through which a Web server can execute programs running on the server machine. CGI programs are executed in response to requests from Web client browsers.

common object request broker architecture (CORBA)

A middleware specification which defines a software bus—the Object Request Broker (ORB)—that provides the infrastructure.


An association between an actor class and a use case class, indicating that their instances interact. The direction of the association indicates the initiator of the communication (Unified Process convention).

communication association

In a deployment diagram an association between nodes that implies a communication. See: deployment diagram.

compile time

Refers to something that occurs during the compilation of a software module. See: modeling timerun time.


A non-trivial, nearly independent, and replaceable part of a system that fulfills a clear function in the context of a well-defined architecture. A component conforms to and provides the realization of a set of interfaces.

A modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces. A component is typically specified by one or more classifiers (e.g., implementation classes) that reside on it, and may be implemented by one or more artifacts (e.g., binary, executable, or script files). Contrast: artifact.

component-based development (CBD)

The creation and deployment of software-intensive systems assembled from components as well as the development and harvesting of such components.

component diagram

A diagram that shows the organizations and dependencies among components.

component model

An architecture and an API that allows developers to define reusable segments of code that can be combined to create a program. VisualAge for Java uses the JavaBeans component model.

composite [class]

A class that is related to one or more classes by a composition relationship. See: composition.

composite aggregation

Synonym: composition.

composite bean

A bean that is composed of other beans. A composite bean can contain visual beans, nonvisual beans, or both. See also: bean.

composite state

A state that consists of either concurrent (orthogonal) substates or sequential (disjoint) substates. See: substate.

composite substate

A substate that can be held simultaneously with other substates contained in the same composite state. See: composite state. Synonym: region.


A form of aggregation association with strong ownership and coincident lifetime as part of the whole. Parts with non-fixed multiplicity may be created after the composite itself, but once created they live and die with it; that is, they share lifetimes. Such parts can also be explicitly removed before the death of the composite. Composition may be recursive. See also: composite aggregation.


adj.Of or relating to an actual, specific thing or instance. Capable of being perceived by the senses; not abstract or imaginary. Contrast: abstract. See: concrete class.

concrete class

A class that can be directly instantiated. Contrast: abstract class.


The occurrence of two or more activities during the same time interval. Concurrency can be achieved by interleaving or simultaneously executing two or more threads. See: thread.

concurrent substate

A substate that can be held simultaneously with other substates contained in the same composite state. See: composite substate. Contrast: disjoint substate.


1) general: The arrangement of a system or network as defined by the nature, number, and chief characteristics of its functional units; applies to both hardware or software configuration.

(2) The requirements, design, and implementation that define a particular version of a system or system component. See: configuration management.

configuration item

[ISO95] An entity in a configuration that satisfies an end-use function and can be uniquely identified at a given reference point.

configuration management

[ISO95] A supporting process whose purpose is to identify, define, and baseline items; control modifications and releases of these items; report and record status of the items and modification requests; ensure completeness, consistency and correctness of the items; and control storage, handling and delivery of the items.


A semantic condition or restriction. Certain constraints are predefined in the UML, others may be user defined. Constraints are one of three extensibility mechanisms in UML. See: tagged valuestereotype.


The third phase of the Unified Process, in which the software is brought from an executable architectural baseline to the point at which it is ready to be transitioned to the user community.


A special class method that has the same name as the class and is used to construct and possibly initialize objects of its class type.


(1) An instance that exists to contain other instances, and that provides operations to access or iterate over its contents; for example, arrays, lists, sets.

(2) A component that exists to contain other components.

containment hierarchy

A namespace hierarchy consisting of model elements , and the containment relationships that exist between them. A containment hierarchy forms an acyclic graph.


A view of a set of related modeling elements for a particular purpose, such as specifying an operation .

control class

A class used to model behavior specific to one, or to several use cases .


A communication model where two distributed applications exchange information by way of a conversation; typically one application starts (or allocates) the conversation, sends some data, and allows the other application to send some data. Both applications continue in turn until one decides to finish (or de-allocate). The conversational model is a synchronous form of communication.


Small files that your Web browser creates at the request of Web sites you visit; the browser sends the contents of the file to the site upon subsequent visits.


See: common object request broker architecture


The degree to which components depend on one another. There are two types of coupling, “tight” and “loose”. Loose coupling is desirable to support an extensible software architecture but tight coupling may be necessary for maximum performance. Coupling is increased when the data exchanged between components becomes larger or more complex. Contrast: cohesion.


See: change request


Class-responsibility collaborators. This is a technique in object-oriented development, originally proposed by Ward Cunningham and Kent Beck, to help define what objects should do in the system (their responsibilities), and identify other objects (the collaborators) that are involved in fulfilling these responsibilities. The technique is described in [WIR90]. CRC cards are a way of capturing these results using ordinary index cards.

critical design review (CDR)

In the waterfall life cycle, the major review held when the detailed design is completed.


This acronym represents categories that can be used both in the definition of product requirements and in the assessment of product quality. Broken into two parts, the first part represents operational categories — capability, reliability, usability, performance, installability, compatibility — and the second part represents developmental categories — supportability, testability, maintainability, portability, localizability. See also: FURPS+.


A person or organization, internal or external to the producing organization, who takes financial responsibility for the system. In a large system this may not be the end user. The customer is the ultimate recipient of the developed product and its artifacts. See also: stakeholder.


Synonyms: lifecycledevelopment cycle . See also: test cycle .



See: direct access storage device


(1) A collection of related data stored together with controlled redundancy according to a scheme to serve one or more applications.

(2) All data files stored in the system.

(3) A set of data stored together and managed by a database management system.

database management system (DBMS)

A computer program that manages data by providing the services of centralized control, data independence, and complex physical structures for efficient access, integrity, recovery, concurrency control, privacy, and security.


A descriptor of a set of values that lack identity and whose operations do not have side effects. Datatypes include primitive predefined types and user-definable types. Predefined types include numbers, string and time. User-definable types include enumerations.


Database administrator


See: double-byte character set


See: database management system


See: distributed computing environment


Distributed component object model (Microsoft). Microsoft’s extension of their Component Object Model (COM) to support objects distributed across a network.


A condition in which two independent threads of control are blocked, each waiting for the other to take some action. Deadlock often arises from adding synchronization mechanisms to avoid race conditions .


An anomaly, or flaw, in a delivered work product. Examples include such things as omissions and imperfections found during early lifecycle phases and symptoms of faults contained in software sufficiently mature for test or operation. A defect can be any kind of issue you want tracked and resolved. See also: change request .

defining model

The model on which a repository is based. Any number of repositories can have the same defining model.


The ability of an object to issue a message to another object in response to a message. Delegation can be used as an alternative to inheritance. Contrast: inheritance .


An output from a process that has a value, material or otherwise, to a customer or other stakeholder .


To deconstruct an object so that it can be written as a stream of bytes. See also: flatten,serialize.

demilitarized zone (DMZ)

This term is now commonly used in the industry to describe a sub-network, typically used for web servers that are protected by firewalls from both the external Internet and a company’s internal network.


A relationship between two modeling elements , in which a change to one modeling element (the independent element) will affect the other modeling element (the dependent element).


A discipline in the software-engineering process, whose purpose is to ensure a successful transition of the developed system to its users. Included are artifacts such as training materials and installation procedures.

deployment diagram

A diagram that shows the configuration of run-time processing nodes and the components , processes , and objects that live on them. Components represent run-time manifestations of code units. See also: component diagram .

deployment environment

A specific instance of a configuration of hardware and software established for the purpose of installing and running the developed software for its intended use. See also: test environment , environment .

deployment unit

A set of objects or components that are allocated to a process or a processor as a group. A distribution unit can be represented by a run-time composite or an aggregate .

deployment view

An architectural view that describes one or several system configurations; the mapping of software components (tasks, modules) to the computing nodes in these configurations.

derived element

A model element that can be computed from another element, but that is shown for clarity or that is included for design purposes even though it adds no semantic information.


To construct an object from a de-marshaled state. See also: marshal , resurrect .


The part of the software development process whose primary purpose is to decide how the system will be implemented. During design, strategic and tactical decisions are made to meet the required functional and quality requirements of a system. See: analysis .

design mechanism

An architectural mechanism used during the design process, during the period in which the details of the design are being worked out. They are related to associated analysis mechanisms, of which they are additional refinements, and they may bind one or more architectural and design patterns. There is not necessarily any difference in scale between the analysis mechanism and the design mechanism— it is thus possible to speak of a persistence mechanism at the analysis level and the design level and mean the same thing, but at a different level of refinement. A design mechanism assumes some details of the implementation environment, but it is not tied to a specific implementation (as is an implementation mechanism). For example, the analysis mechanism for inter-process communication may be refined by several design mechanisms for interprocess communication (IPC): shared memory, function-call-like IPC, semaphore-based IPC, and so on. Each design mechanism has certain strengths and weaknesses; the choice of a particular design mechanism is determined by the characteristics of the objects using the mechanism.

design model

An object model describing the realization of use cases ; serves as an abstraction of the implementation model and its source code.

design package

A collection of classes , relationships , use-case realizations , diagrams , and other packages , it is used to structure the design model by dividing it into smaller parts. It’s the logical analogue of the implementation subsystem .

design pattern

[GAM94] defines a design pattern as:

“A design pattern provides a scheme for refining the subsystems or components of a software system, or the relationships between them. It describes a commonly-recurring structure of communicating components that solves a general design problem within a particular context.”

Design patterns are medium to small-scale patterns, smaller in scale than architectural patterns but typically independent of programming language. When a design pattern is bound, it will form a portion of a concrete design model (perhaps a portion of a design mechanism). Design patterns tend, because of their level, to be applicable across domains.

design subsystem

A model element which has the semantics of a package (it can contain other model elements) and a class (it has behavior). The behavior of the subsystem is provided by classes or other subsystems it contains. A subsystem realizes one or more interfaces , which define the behavior it can perform. Contrast: design package .

design time

Refers to something that occurs during a design phase of the software development process. See: modeling time . Contrast: analysis time .


A person responsible for developing the required functionality in accordance with project-adopted standards and procedures. This can include performing activities in any of the requirements, analysis & design, implementation, and test disciplines.

development case

The software-engineering process used by the performing organization. It is developed as a configuration, or customization, of the Unified Process product, and adapted to the project’s needs.

development cycle

Synonyms: lifecyclecycle . See also: test cycle .

development process

A set of partially ordered steps performed for a given purpose during software development, such as constructing models or implementing models.


A type of node which provides supporting capabilities to a processor . Although it may be capable of running embedded programs (device drivers), it cannot execute general-purpose applications, but instead exists only to serve a processor running general-purpose applications.


A graphical depiction of all or part of a model .

A graphical presentation of a collection of model elements , most often rendered as a connected graph of arcs (relationships) and vertices (other model elements). UML supports the following diagrams: class diagram , object diagram , use-case diagram , sequence diagram , collaboration diagram , statechart diagram , activity diagram , component diagram , and deployment diagram .

direct access storage device (DASD)

A device that allows storage to be directly accessed, such as a disk drive (as opposed to a tape drive, which is accessed sequentially).


A discipline is a collection of related activities that are related to a major ‘area of concern’. The disciplines in RUP include: Business Modeling, Requirements, Analysis & Design, Implementation, Test, Deployment, Configuration & Change Management, Project Management, Environment.

disjoint substate

A substate that cannot be held simultaneously with other substates contained in the same composite state. See: composite state . Contrast: concurrent substate .

distributed computing environment (DCE)

Distributed Computing Environment. Adopted by the computer industry as a de facto standard for distributed computing. DCE allows computers from a variety of vendors to communicate transparently and share resources such as computing power, files, printers, and other objects in the network.

distributed processing

Distributed processing is an application or systems model in which function and data can be distributed across multiple computing resources connected on a LAN or WAN. See: client/server computing.


See: dynamically linked library


See: de-militarized zone


See: domain name server


A document is a collection of information that is intended to be represented on paper, or in a medium using a paper metaphor. The paper metaphor includes the concept of pages, and it has either an implicit or explicit sequence of contents. The information is in text or two-dimensional pictures. Examples of paper metaphors are word processor documents, spreadsheets, schedules, Gantt charts, web-pages, or overhead slide presentations.

document description

Describes the intended content of a particular document.

document template

A concrete tool template, available for tools such as a Adobe® FrameMaker® or Microsoft® Word®.


An area of knowledge or activity characterized by a family of related values.

An area of knowledge or activity characterized by a set of concepts and terminology understood by practitioners in that area.

domain (database)

A user defined data type that defines a valid range of values for a column of a table in a database.

domain model

A domain model captures the most important types of objects in the context of the domain. The domain objects represent the entities that exist or events that transpire in the environment in which the system works. The domain model is a subset of the business analysis model.

domain name server

A system for translating domain names such as www.software.ibm.com into numeric Internet protocol addresses such as

double-byte character set (DBCS)

A set of characters in which each character is represented by 2 bytes. Languages such as Japanese, Chinese, and Korean, which contain more symbols than can be represented by 256 code points, require double- byte character sets. Contrast: single-byte character set.

dynamically linked library (DLL)

A file containing executable code and data bound to a program at run time rather than at link time (the final phase of compilation). This means that the same block of library code can be shared between several tasks rather than each task containing copies of the routines it uses. The C++ Access Builder generates beans and C++ wrappers that let your Java programs access C++ DLLs.

dynamic classification

A semantic variation of generalization in which an object may change type or role . Contrast: static classification .

dynamic information

Information that is created at the time the user requests it. Dynamic information changes over time so that each time users view it, they see different content.


earned value

[MSP97] defines this as:

“A measure of the value of work performed so far. Earned value uses original estimates and progress-to-date to show whether the actual costs incurred are on budget and whether the tasks are ahead or behind the baseline plan.”


(1) the transaction of business over an electronic medium such as the Internet

(2) a business that uses Internet technologies and network computing in their internal business processes (via intranets), their business relationships (via extranets), and the buying and selling of goods, services, and information (via electronic commerce).


See: enterprise javabean


The second phase of the process where the product vision and its architecture are defined.


An atomic constituent of a model .


The hiding of a software object’s internal representation. The object provides an interface that queries and manipulates the data without exposing its underlying structure.

enclosed document

A document can be enclosed by another document to collect a set of documents into a whole; the enclosing document as well as the individual enclosures are regarded as separate artifacts .

enhancement request

A type of stakeholder request that specifies a new feature or functionality of the system. See also: change request.

enterprise javabean (EJB)

An EJB is a non-visual, remote object designed to run on a server and be invoked by clients. An EJB can be built out of multiple, non-visual JavaBeans. EJBs are intended to live on one machine and be invoked remotely from another machine. They are platform-independent. Once a bean is written, it can be used on any client or server platform that supports Java.

entity class

A class used to model information that has been stored by the system, and the associated behavior. A generic class, reused in many use cases , often with persistent characteristics. An entity class defines a set of entity objects, which participate in several use cases and typically survive those use cases.

entry action

An action executed upon entering a state in a state machine regardless of the transition taken to reach that state.


A list of named values used as the range of a particular attribute type. For example, RGBColor = {red, green, blue}. Boolean is a predefined enumeration with values from the set {false, true}.


(1) A discipline in the software-engineering process, whose purpose is to define and manage the environment in which the system is being developed. Includes process descriptions, configuration management, and development tools.

(2) A specific instance of a configuration of hardware and software, established for the purpose of software development, software testing, or in which the final product is deployed. See also: test environment , deployment environment .

equivalence class

A classification of equivalent values for which a object is expected to behave similarly. This technique can be applied to help analyze the most significant tests to conduct when there are too many potential tests to conduct in the available time. Synonyms: equivelance partition, domain.


Enterprise Resource Planning

evalution mission

A brief, easy-to-remember statement that defines the essence of the work objectives for the test team for a given work schedule. Typically reconsidered per iteration, the evaluation mission provides focus to keep the team working productively to benefit the testing stakeholders. Some examples of mission statements include: find important problems fastadvise about perceived quality and verify to a specification.


The specification of a significant occurrence that has a location in time and space. In the context of state diagrams , an event is an occurrence that can trigger a transition.

event-to-method connection

A connection from an event generated by a bean to a method of a bean. When the connected event occurs, the method is executed.


The life of the software after its initial development cycle; any subsequent cycle, during which the product evolves.


An iterative development strategy that acknowledges that user needs are not fully understood and therefore requirements are refined in each succeeding iteration (elaboration phase).

executable architecture

An executable architecture is a partial implementation of the system, built to demonstrate selected system functions and properties, in particular those satisfying non-functional requirements. It is built during the elaboration phase to mitigate risks related to performance, throughput, capacity, reliability and other ‘ilities’, so that the complete functional capability of the system may be added in the construction phase on a solid foundation, without fear of breakage. It is the intention of the RUP that the executable architecture be built as an evolutionary prototype, with the intention of retaining what is found to work (and satisfies requirements), and making it part of the deliverable system.

exit action

An action executed upon exiting a state in a state machine regardless of the transition taken to exit that state.

exploratory testing

A technique for testing computer software that requires minimal planning and tolerates limited documentation for the target-of-test in advance of test execution, relying on the skill and knowledge of the tester and feedback from test results to guide the ongoing test effort. Exploratory testing is often conducted in short sessions in which feedback gained from one session is used to dynamically plan subsequent sessions. For more detail, see: [BAC01a].


In the context of packages, to make an element visible outside its enclosing namespace. See: visibility. Contrast: export[OMA], import.


A string that evaluates to a value of a particular type. For example, the expression “(7 + 5 * 3)” evaluates to a value of type number.


A relationship from an extension use case to a base use case, specifying how the behavior defined for the extension use case can be inserted into the behavior defined for the base use case.


An extend-relationship from a use-case class A to a use-case class B indicates that an instance of B may include (subject to specific conditions specified in the extension) the behavior specified by A. Behavior specified by several extenders of a single target use case can occur within a single use-case instance.

external link

In a Web site, a link to a URL that is located outside the current Web site. Synonym: outside link



A special package, stereotyped «facade», within a subsystem that organizes and exports all information needed by the clients of the subsystem. Included in this package are interfaces (where the interfaces are unique to the subsystem), realization relationships to interfaces outside the subsystem, and any documentation needed by clients of the subsystem to use the subsystem.


(1) A term commonly used to refer to a specific group of design patterns that deal with the creation or instantiation of objects. Examples include Abstract Factory and Factory Method[GAM94]

(2) Java—A nonvisual bean capable of dynamically creating new instances of a specified bean.


The inability of a system or component to perform its required functions within specified performance requirements [IE610.12]. A failure is characterized by the observable symptoms of one or more defects that have a root cause in one or more faults.


An accidental condition that causes the failure of a component in the implementation model to perform its required behavior. A fault is the root cause of one or more defects identified by observing one or more failures.

fault-based testing

A technique for testing computer software using a test method and test data to demonstrate the absence or existence of a set of pre-defined faults. For example, to demonstrate that the software correctly handles a divide by zero fault, the test data would include zero.

fault model

A model for testing computer software which uses the notion of a plausible fault as it’s basis and provides a test method to uncover the fault. The good fault model provides a definition of the fault or root cause, discussion of the observable failures the fault can produce, a test technique for uncovering the fault and a profile of appropriate test data.


An externally observable service provided by the system which directly fulfills a stakeholder need .

A property, like operation or attribute, which is encapsulated within a classifier, such as an interface, a class or a datatype.


See: attribute .

file transfer protocol (FTP)

The basic Internet function that enables files to be transferred between computers. You can use it to download files from a remote, host computer, as well as to upload files from your computer to a remote, host computer.

final state

A special kind of state signifying that the enclosing composite state or the entire state machine is completed.


To execute a state transition. See: transition .


A computer, or programmable device, with associated software which can be used to restrict traffic passing through it according to defined rules. Controls would typically be applied based on the origin or destination address and the TCP/IP port number.


Synonym: de-marshal .

focus of control

A symbol on a sequence diagram that shows the period of time during which an object is performing an action, either directly or through a subordinate procedure.

foreign key

A column or set of columns of a database table that references the primary key of another table.

formal parameter

Synonym: parameter .


A micro-architecture that provides an extensible template for applications within a specific domain.


See: file transfer protocol


Functionality, usability, reliability, performance, supportability + others. Described in [GRA92], this acronym represents categories that can be used in the definition of product requirements as well as in the assessment of product quality. Alternative categorization methods can also be used. See: CRUPIC STMPL.



A host computer that connects networks that communicate in different languages; for example, a gateway connects a company’s LAN to the Internet.

generalizable element

A model element that may participate in a generalization relationship. See: generalization.


A taxonomic relationship between a more general element and a more specific element. The more specific element is fully consistent with the more general element and contains additional information. An instance of the more specific element may be used where the more general element is allowed. See: inheritance.


Final release at the end of a cycle.

graphical user interface (GUI)

A type of interface that enables users to communicate with a program by manipulating graphical features, rather than by entering commands. Typically, a GUI includes a combination of graphics, pointing devices, menu bars and other menus, overlapping windows, and icons.

green-field development

Development “starting from scratch”, as opposed to “evolution of an existing system” or “reengineering of a legacy piece”. Origin: from the transformation that takes place when building a new factory on an undeveloped site—with grass on it.

guard condition

A condition that must be satisfied in order to enable an associated transition to fire.


See: graphical user interface


home page

See: start page.


A Java-enabled Web and intranet browser developed by Sun Microsystems, Inc. HotJava is written in Java.


See: hypertext markup language

HTML browser

See: web browser.


Hypertext transport protocol

HTTP request

A transaction initiated by a Web browser and adhering to HTTP. The server usually responds with HTML data, but can send other kinds of objects as well.


Areas on a Web page that, when clicked, connect you to other areas on the page or other Web pages.


Text in a document that contains a hidden link to other text. You can click a mouse on a hypertext word and it will take you to the text designated in the link. Hypertext is used in Windows help programs and CD encyclopedias to jump to related references elsewhere within the same document. The wonderful thing about hypertext, however, is its ability to link—using HTTP over the Web—to any Web document in the world, yet still require only a single mouse click to jump clear around the world.

hypertext markup language

The basic language that is used to build hypertext documents on the World Wide Web. It is used in basic, plain ASCII-text documents, but when those documents are interpreted (called rendering) by a Web browser such as Netscape, the document can display formatted text, color, a variety of fonts, graphic images, special effects, hypertext jumps to other Internet locations, and information forms.



Information Technology


See: integrated development environment


[BUS96] defines idiom so:

“An idiom is a low-level pattern specific to a programming language. An idiom describes how to implement particular aspects of components or the relationships between them using the features of the given language.”

Also called an implementation pattern. When taking a concrete design expressed in UML, say, and implementing it in Java for example, recurring implementation patterns for that language may be used. Idioms thus span design and implementation.


Internet explorer (Microsoft)


The Institute of Electrical and Electronics Engineers, Inc.


See: internet inter-ORB protocol


Internet Message Access Protocol – version 4


A discipline in the software-engineering process, the purpose of which is to implement software components that meet an appropriate standard of quality.

A definition of how something is constructed or computed. For example, a class is an implementation of a type, a method is an implementation of an operation.

implementation inheritance

The inheritance of the implementation of a more specific element. Includes inheritance of the interface. Contrast: interface inheritance .

implementation mechanism

An architectural mechanism used during the implementation process. They are refinements of design mechanisms , which specify the exact implementation of the mechanism, and which will also very likely employ several implementation patterns (idioms) in their construction. Again, there is not necessarily any difference in scale between the design mechanism and the implementation mechanism. For example, one particular implementation of the inter-process communication analysis mechanism is a shared memory design mechanism utilizing a particular operating system’s shared memory function calls. Concurrency conflicts (inappropriate simultaneous access to shared memory) may be prevented using semaphores, or using a latching mechanism, which in turn rest upon other implementation mechanisms.

implementation model

The implementation model is a collection of components , and the implementation subsystems that contain them.

implementation pattern

See: idiom.

implementation subsystem

A collection of components and other implementation subsystems used to structure the implementation model by dividing it into smaller parts. Note that in the RUP, the implementation model and the implementation subsystems are the target of the implementation view and are, therefore, of primary importance at development time. It is the physical analogue of the design package. The name “implementation subsystem” reflects a common usage of the term “subsystem” to indicate something of a larger scale than a component. In UML terms, however, it’s a stereotyped package, not a subsystem.

implementation view

An architectural view that describes the organization of the static software elements (code, data, and other accompanying artifacts) in the development environment in terms of both packaginglayering, and configuration management (ownership, release strategy, and so on). In the Unified Process, it’s a view on the implementation model.


In the context of packages, a dependency that shows the packages whose classes may be referenced within a given package (including packages recursively embedded within it). Contrast: export.


A stereotyped dependency in the design whose source is a design package, and whose target is a different design package. The import dependency causes the public contents of the target package to be referenceable in the source package.


The first phase of the Unified Process, in which the seed idea, request for proposal, for the previous generation is brought to the point of being (at least internally) funded to enter the elaboration phase.


A relationship from a base use case to an inclusion use case, specifying how the behavior defined for the inclusion use case can be inserted into the behavior defined for the base use case.


An include-relationship is a relationship from a base use case to an inclusion use case, specifying how the behavior defined for the inclusion use case is explicitly inserted into the behavior defined for the base use case.


The difference (delta) between two releases at the end of subsequent iterations.


Qualifies an iterative development strategy in which the system is built by adding more and more functionality at each iteration .


A mechanism used to improve the efficiency of searches of rows in a database table.


The mechanism that makes generalization possible; a mechanism for creating full class descriptions out of individual class segments.

The mechanism by which more specific elements incorporate structure and behavior of more general elements related by behavior. See: generalization .


(1) An artifact used by a process. See: static artifact .

(2) A value used in a given test that stimulates the execution condition to occur. Input values are defined in the test case .


A formal evaluation technique in which some artifact (model, document, software) is examined by a person or group other than the originator, to detect faults, violations of development standards, and other problems.


An individual entity satisfying the description of a class or type .

An entity to which a set of operations can be applied and which has a state that stores the effects of the operations. See: object .

integrated development environment (IDE)

A software program comprising an editor, a compiler, and a debugger.


The software development activity in which separate software components are combined into an executable whole.

integration build plan

Defines the order in which components are to be implemented and integrated in a specific iteration. Typically enclosed within an Iteration Plan.


A specification of how stimuli are sent between instances to perform a specific task. The interaction is defined in the context of a collaboration. See: collaboration .

interaction diagram

A general term that applies to certain types of diagrams that emphasize object interactions. These include: collaboration diagrams and sequence diagrams .


A collection of operations that are used to specify a service of a class or a component .

A named set of operations that characterize the behavior of an element.

interface inheritance

The inheritance of the interface of a more specific element. Does not include inheritance of the implementation. Contrast: implementation inheritance .

internal transition

A transition signifying a response to an event without changing the state of an object.


The vast collection of interconnected networks that all use the TCP/IP protocols and that evolved from the ARPANET of the late 1960s and early 1970s.

Internet Inter-ORB Protocol (IIOP)

An industry standard protocol that defines how General Inter-ORB Protocol (GIOP) messages are exchanged over a TCP/IP network. The IIOP makes it possible to use the Internet itself as a backbone ORB through which other ORBs can bridge.

Internet Protocol (IP)

The protocol that provides basic Internet functions.

internet protocol address

A numeric address that uniquely identifies every computer connected to a network. For example,


A private network inside a company or organization that uses the same kinds of software that you would find on the public Internet, but that is only for internal use. As the Internet has become more popular, many of the tools used on the Internet are being used in private networks. For example, many companies have Web servers that are available only to employees.


See: internet protocol

IP number

An Internet address that is a unique number consisting of four parts separated by dots, sometimes called a dotted quad (for example, Every Internet computer has an IP number, and most computers also have one or more domain names that are mappings or aliases for the dotted quad.


See: IP security protocol

IP security protocol (IPSec)

Provides cryptographic security services at the network layer.


Internet server API


International organization for standardization.


Internet service provider. A company which provides other companies or individuals with access to, or presence on, the Internet. Most ISPs are also IAPs (Internet access providers).


A distinct sequence of activities with a base-lined plan and valuation criteria resulting in a release (internal or external).



See: java archive (JAR)


Java is a programming language invented by Sun Microsystems that is specifically designed for writing programs that can be safely downloaded to your computer through the Internet and immediately run without fear of viruses or other harm to your computer or files. Using small Java programs called applets, Web pages can include functions such as animations, calculators, and other fancy tricks. We can expect to see a huge variety of features added to the Web using Java, since you can write a Java program to do almost anything a regular computer program can do, and then include that Java program in a Web page.

Java archive (JAR)

A platform-independent file format that groups many files into one. JAR files are used for compression, reduced download time, and security. Because the JAR format is written in Java, JAR files are fully extensible.


A javabean is a component that can be integrated into an application with other beans that were developed separately. This single application can be used stand-alone, within a browser and also as an ActiveX component. Javabeans are intended to be local to a single process and they are often visible at runtime. This visual component may be, for example, a button, list box, graphic or chart.

Java database connectivity (JDBC)

In JDK 1.1, the specification that defines an API that enables programs to access databases that comply with this standard.

Java development kit (JDK)

The Java Development Kit is available to licensed developers from Sun Microsystems. Each release of the JDK contains the following: the Java Compiler, Java Virtual Machine, Java Class Libraries, Java Applet Viewer, Java Debugger, and other tools.

Java foundation class (JFC)

Developed by Netscape, Sun, and IBM, JFCs are building blocks that are helpful in developing interfaces to Java applications. They allow Java applications to interact more completely with the existing operating systems.


See: Java database connectivity


See: Java development kit


See: Java foundation class


Just in time.


Java virtual machine. A specification for software which interprets Java programs that have been compiled into byte-codes, and usually stored in a “.class” file. The JVM itself is written in C and so can be ported to run on most platforms. The JVM instruction set is stack-oriented, with variable instruction length. Unlike some other instruction sets, the JVM’s support object-oriented programming directly by including instructions for object method invocation (similar to subroutine call in other instruction sets).


key mechanism

A description of how an architectural pattern is realized in terms of patterns of interaction between elements in the system. Typically presented in a software architecture document.


A predefined word reserved for Java, for example, return, that may not be used as an identifier.



See: local area network


A specific way of grouping packages in a model at the same level of abstraction.

The organization of classifiers or packages at the same level of abstraction. A layer represents a horizontal slice through an architecture, whereas a partition represents a vertical slice. Contrast: partition.


Lightweight directory access protocol. A protocol for accessing on-line directory services, LDAP defines a relatively simple protocol for updating and searching directories running over TCP/IP .


One complete pass through the four phases: inception , elaboration , construction and transition . The span of time between the beginning of the inception phase and the end of the transition phase. Synonyms: development cyclecycle . See also: test cycle .


A semantic connection between two objects. An instance of an association. See: association.

link end

An instance of an association end. See: association end .


In JDK 1.1, a class that receives and handles events.

local area network (LAN)

A computer network located at a user’s establishment within a limited geographical area. A LAN typically consists of one or more server machines providing services to a number of client workstations.

logical view

An architectural view that describes the main classes in the design of the system: major business-related classes, and the classes that define key behavioral and structural mechanisms (persistency, communications, fault-tolerance, user-interface). In the Unified Process, the logical view is a view of the design model.



A discipline in the software-engineering process, whose purpose is to plan and manage the development project.


Synonym: deserialize.


A mechanism is an instance of a pattern. It may require some further refinement to become a collaboration in a particular model. A mechanism is thus a specific solution (to a recurring problem) in a single context. A mechanism can be said to fit or conform to a pattern. Any collaboration could be termed a mechanism, but the term is usually reserved for collaborations which deliver a solution to a commonly recurring problem in software applications, for example, to handle persistence, to which a pattern is applicable. In analysis and design, the notion of a mechanism can be used as a ‘placeholder’— having identified that persistence is needed for example, the analyst and designer can say that a persistence mechanism will be used, which will force that problem to be addressed systematically and consistently.


A specification of the conveyance of information from one instance to another, with the expectation that activity will ensue. A message may specify the raising of a signal or the call of an operation.


A communication model whereby the distributed applications communicate by sending messages to each other. A message is typically a short packet of information that does not necessarily require a reply. Messaging implements asynchronous communications method. A fragment of Java code within a class that can be invoked and passed a set of parameters to perform a specific task.


A class whose instances are classes. Metaclasses are typically used to construct metamodels.


A model that defines the language for expressing a metamodel. The relationship between a meta-metamodel and a metamodel is analogous to the relationship between a metamodel and a model.


A model that defines the language for expressing a model.


A generic term for all meta-entities in a metamodeling language. For example, metatypes, metaclasses, meta-attributes, and meta-associations.


(1) A regular and systematic way of accomplishing something; the detailed, logically ordered plans or procedures followed to accomplish a task or attain a goal.

(2) UML 1.1: The implementation of an operation, the algorithm or procedure that effects the results of an operation.

The implementation of an operation. It specifies the algorithm or procedure associated with an operation

method call

Synonym: message .


Management Information Base


The point at which an iteration formally ends; corresponds to a release point.


See: multipurpose internet mail extension


A semantically closed abstraction of a system. In the Unified Process, a complete description of a system from a particular perspective (‘complete’ meaning you don’t need any additional information to understand the system from that perspective); a set of model elements. Two models cannot overlap.

A semantically closed abstraction of a subject system. See: system.

Usage note: In the context of the MOF specification, which describes a meta-metamodel , for brevity the meta-metamodel is frequently referred to as simply the model.

model aspect

A dimension of modeling that emphasizes particular qualities of the metamodel. For example, the structural model aspect emphasizes the structural qualities of the metamodel.

model elaboration

The process of generating a repository type from a published model. Includes the generation of interfaces and implementations which allows repositories to be instantiated and populated based on, and in compliance with, the model elaborated.

model element

An element that is an abstraction drawn from the system being modeled. Contrast: view element.

In the MOF specification model elements are considered to be meta-objects.

modeling conventions

How concepts will be represented, restrictions on the modeling language that the project team management has decided upon; that is, dictums such as “Do not use inheritance between subsystems.”; “Do not use extend or include associations in the Use Case Model.”; “Do not use the friend construct in C++.”. Presented in the Software Architecture Document.

modeling time

Refers to something that occurs during a modeling phase of the software development process. It includes analysis time and design time. Usage note: When discussing object systems, it is often important to distinguish between modeling-time and run-time concerns. See: analysis timedesign time. Contrast: run time.

model viewcontroller (MVC)

An application architecture which separates the components of the application: the model represents the business logic or data; the view represents the user interface and the controller manages user input or, in some cases, the application flow.


A software unit of storage and manipulation. Modules include source code modules, binary code modules, and executable code modules. See: component.


An OMG-defined technology: the meta-object facility (MOF) specification defines a set of CORBA IDL interfaces that can be used to define and manipulate a set of interoperable metamodels and their corresponding models. These interoperable metamodels include the UML metamodel, the MOF meta-metamodel, as well as future OMG adopted technologies that will be specified using metamodels. The MOF provides the infrastructure for implementing CORBA-based design and reuse repositories. This definition is taken from the MOF specification version 1.3.


Message-oriented middleware

multiple classification

A semantic variation of generalization in which an object may belong directly to more than one class. See: dynamic classification.

multiple inheritance

A semantic variation of generalization in which a type may have more than one supertype. Contrast: single inheritance.


A specification of the range of allowable cardinalities that a set may assume. Multiplicity specifications may be given for roles within associations, parts within composites, repetitions, and other purposes. Essentially a multiplicity is a (possibly infinite) subset of the non-negative integers. Contrast: cardinality.

multipurpose internet mail extension (MIME)

The Internet standard for mail that supports text, images, audio, and video.


A model element with multiplicity defined whose Multiplicity Type:: upper attribute is set to a number greater than one. The term multi-valued does not pertain to the number of values held by an attribute, parameter, and so on at any point in time. Contrast: single-valued.

mutator methods

Methods that an object provides to define the interface to its instance variables. The accessor method to return the value of an instance variable is called a get method or getter method, and the mutator method to assign a value to an instance variable is called a set method or setter method.


See: model view controller


Multiple virtual storage



A string used to identify a model element.


A part of the model in which the names may be defined and used. Within a namespace, each name has a unique meaning. See: name.

n-ary association

An association among three or more classes. Each instance of the association is an n-tuple of values from the respective classes. Contrast: binary association.


Network Computer or Network Computing


Network Computing Framework


A node is classifier that represents a run-time computational resource, which generally has at least a memory and often processing capability. Run-time objects and components may reside on nodes.



Netscape server API


Windows NT (New Technology)



An entity with a well-defined boundary and identity that encapsulates state and behavior . State is represented by attributes and relationships, behavior is represented by operations, methods, and state machines. An object is an instance of a class. See: classinstance.

object class

A template for defining the attributes and methods of an object. An object class can contain other object classes. An individual representation of an object class is called an object.

object diagram

A diagram that encompasses objects and their relationships at a point in time. An object diagram may be considered a special case of a class diagram or a collaboration diagram. See: class diagramcollaboration diagram.

object flow state

A state in an activity graph that represents the passing of an object from the output of actions in one state to the input of actions in another state.

object lifeline

A line in a sequence diagram that represents the existence of an object over a period of time. See: sequence diagram.

object model

An abstraction of a system’s implementation.

object-oriented programming (OOP)

A programming approach based on the concepts of data abstraction and inheritance. Unlike procedural programming techniques, object-oriented programming concentrates on those data objects that constitute the problem and how they are manipulated, not on how something is accomplished.

object request broker (ORB)

A CORBA term designating the means by which objects transparently make requests and receive responses from objects, whether they are local or remote.


See: open database connectivity

ODBC driver

An ODBC driver is a dynamically linked library (DLL) that implements ODBC function calls and interacts with a data source.

ODBC driver manager

The ODBC driver manager, provided by Microsoft, is a DLL with an import library. The primary purpose of the Driver Manager is to load ODBC drivers. The Driver Manager also provides entry points to ODBC functions for each driver and parameter validation and sequence validation for ODBC calls.


See: online transaction processing


Object Management Group

online transaction processing (OLTP)

A style of computing that supports interactive applications in which requests submitted by terminal users are processed as soon as they are received. Results are returned to the requester in a relatively short period of time. An online transaction-processing system supervises the sharing of resources to allow efficient processing of multiple transactions at the same time.


Object oriented.


See: object-oriented programming

open database connectivity (ODBC)

A Microsoft-developed C database application programming interface (API) that allows access to database management systems calling callable SQL, which does not require the use of a SQL preprocessor. In addition, ODBC provides an architecture that allows users to add modules called database drivers that link the application to their choice of database management systems at run time. This means applications no longer need to be directly linked to the modules of all the database management systems that are supported.

operating system process

An unique address space and execution environment in which instances of classes and subsystems reside and run. The execution environment may be divided into one or more threads of control. See also: process and thread.


A service that can be requested from an object to effect behavior. An operation has a signature, which may restrict the actual parameters that are possible.


See: object request broker

organization unit

Primary component of an organization, providing a context for its management. Organization structure relates a parent unit to its subsidiaries in a hierarchy, and each unit is responsible for collections of other business components [MARS00]. See: business system


An originator is anyone who submits a change request (CR). The standard change request mechanism requires the originator to provide information on the current problem, and a proposed solution in accordance with the change request form.


(1) Any artifact that is the result of a process step. See: deliverable.

(2) A raw outcome or product that results from a test having been conducted. Expected outputs are defined in the test case.

outside link

Synonym: external link



A general purpose mechanism for organizing elements into groups. Packages may be nested within other packages.


See: beans palette.


The specification of a variable that can be changed, passed, or returned. A parameter may include a name, type, and direction. Parameters are used for operations, messages, and events. Synonyms: formal parameter. Contrast: argument.

parameter connection

A connection that satisfies a parameter of an action or method by supplying either a property’s value or the return value of an action, method, or script. The parameter is always the source of the connection. See also: connection.

parameterized element

The descriptor for a class with one or more unbound parameters. Synonym: template.


In a generalization relationship, the generalization of another element, the child. See: subclass, subtype. Contrast: child.

parent class

The class from which another bean or class inherits data, methods, or both.


The connection of a model element to a relationship or to a reified relationship. For example, a class participates in an association, an actor participates in a use case.


(1) activity graphs : A portion of an activity graphs that organizes the responsibilities for actions. See also: swimlane .

(2) architecture : A subset of classifiers or packages at the same level of abstraction. A partition represents a vertical slice through an architecture, whereas a layer represents a horizontal slice. Contrast: layer .


A solution template for a recurring problem that has proven useful in a given context. Good patterns successfully resolve the conflicting forces that define the problem, and one pattern is chosen over another based on the way it resolves those forces. To be worthy of being called a pattern, at least three practical applications of the pattern should already be evident. For software, the UML can support the representation of a pattern by using a parameterized collaboration although UML does not directly model other aspects of patterns such as lists of consequences of use, examples of use, and so on—text can be used for these. A software pattern is instantiated by binding values to its parameters. Patterns can exist at various scales and levels of abstraction, for example, as architectural patternsanalysis patternsdesign patterns, test patterns and idioms or implementation patterns.


See: point of control and observation


See: preliminary design review


Practical extraction & reporting language.

persistent object

An object that exists after the process or thread that created it has ceased to exist.


Pretty good privacy.


The time between two major project milestones, during which a well-defined set of objectives is met, artifacts are completed, and decisions are made to move or not move into the next phase.


Public key infrastructure.

point of control and observation

A specific point in the procedural flow of a test at which either an observation is recorded of the test environment, or a decision is made regarding the test’s flow of control. Closely related concepts, a point of control usually requires the details of one or more points of observations to make the necessary control decision.


Post Office Protocol 3


Ports are boundary objects, acting as interfaces through which messages are passed, for a capsule instance. Ports are “owned” by the capsule instance in the sense that they are created along with their capsule and destroyed when the capsule is destroyed. Each port has an identity and a state that are distinct from the identity and state of its owning capsule instance (to the same extent that any part is distinct from its container).

In TCP/IP terminology, a port is a separately addressable point to which an application can connect. For example, by default HTTP uses port 80 and Secure HTTP (HTTPS) uses port 443.

To modify (software) for use on a different machine or platform.


A textual description defining a constraint on the system when a use case has terminated.

A constraint that must be true at the completion of an operation.


See: project review authority


See: product requirements document


A textual description defining a constraint on the system when a use case may start.

A constraint that must be true when an operation is invoked.

preliminary design review (PDR)

In the waterfall life cycle, the major review held when the architectural design is completed.

primary key

Column or set of columns of a database table used to identify rows in the table.

primitive type

A predefined basic datatype without any substructure, such as an integer or a string.


An access modifier associated with a class member. It allows only the class itself to access the member.


(1) A thread of control that can logically execute concurrently with other processes, specifically an operating system process. See also: thread.

(2) A set of partially ordered steps intended to reach a goal; in software engineering the goal is to build a software product or to enhance an existing one; in process engineering, the goal is to develop or enhance a process model; corresponds to a business use case in business engineering.

(1) A heavyweight unit of concurrency and execution in an operating system. Contrast: thread, which includes heavyweight and lightweight processes. If necessary, an implementation distinction can be made using stereotypes.

(2) A software development process—the steps and guidelines by which to develop a system.

(3) To execute an algorithm or otherwise handle something dynamically.


A type of node which possesses the capability to run one or more processes. Generally this requires a computational capability, memory, input-output devices, and so on. See also: node , process , and device .

process view

An architectural view that describes the concurrent aspect of the system: tasks (processes) and their interactions.


Software that is the result of development, and some of the associated artifacts (documentation, release medium, training).

product champion

A high-ranking individual who is the sponsor for the vision of the product and acts as an advocate between the development team and the customer.

product-line architecture

Defines element types, how they interact, and how the product functionality is mapped to them. It may also go further by defining some of the instances of the architecture elements. This term generally applies to a set of products within an organization or company. See also: [HOF99].

product requirements document (PRD)

A high level description of the product (system), its intended use, and the set of features it provides.


Projects are performed by people, constrained by limited resources, and planned, executed, and controlled. A project is a temporary endeavor undertaken to create a unique product or service. Temporary means that every project has a definite beginning and a definite ending. Unique means that the product or service is different in some distinguishing way from all similar products and services. Projects are often critical components of the performing organizations’ business strategy.


A mapping from a set to a subset of it.

project manager

The role with overall responsibility for the project. The Project Manager needs to ensure tasks are scheduled, allocated and completed in accordance with project schedules, budgets and quality requirements.

Project Review Authority (PRA)

The organizational entity to which the Project Manager reports. The PRA is responsible for ensuring that a software project complies with policies, practices and standards.


Within a JavaBean, to make features of a contained bean available to be used for making connections. For example, a bean consisting of three push buttons on a panel. If this bean is placed in a frame, the features of the push buttons would have to be promoted to make them available from within the frame.


A named value denoting a characteristic of an element. A property has semantic impact. Certain properties are predefined in the UML; others may be user defined. See: tagged value .

property-to-property connection

A connection from a property of one object to a property of another object. See also: connection.


An access modifier associated with a class member. It allows the class itself, sub-classes, and all classes in the same package to access the member.


A specification of a compatible set of messages used to communicate between capsules. The protocol defines a set of incoming and outgoing messages types (for example, operations, signals), and optionally a set of sequence diagrams which define the required ordering of messages and a state machine which specifies the abstract behavior that the participants in a protocol must provide.

protocol (TCP/IP)

The basic programming foundation that carries computer messages around the globe via the Internet. The suite of protocols that defines the Internet. Originally designed for the UNIX operating system, TCP/IP software is now available for every major kind of computer operating system. To be truly on the Internet, your computer must have TCP/IP software.


A release that is not necessarily subject to change management and configuration control.


An application gateway from one network to another for a specific network application such as Telnet of FTP, for example, where a firewall’s proxy Telnet server performs authentication of the user and then lets the traffic flow through the proxy as if it were not there. Function is performed in the firewall and not in the client workstation, causing more load in the firewall. Compare with socks.


A vertex in a state machine that has the form of a state, but doesn’t behave as a state. Pseudo-states include initial and history vertices.

published model

A model which has been frozen, and becomes available for instantiating repositories and for the support in defining other models. A frozen model’s model elements cannot be changed.



See: quality assurance


Quality Engineering. See also: quality assurance


An association attribute or tuple of attributes whose values partition the set of objects related to an object across an association.


The totality of features and characteristics of a product or service that bear on its ability to satisfy stated or implied needs.

quality assurance(QA)

All those planned and systematic actions necessary to provide adequate confidence that a product or service will satisfy given requirements for quality.

quality risk

An upcoming or ongoing concern that has a significant probability of adversely affecting the quality of the software product. While the is arguably a limitless number of qulaity dimensions on which to assess quality risks, RUP uses the FURPS+ requirements model as a basis to discuss dimensions of quality.


race condition

A condition which occurs when two or more independent tasks simultaneously attempt to access and modify the same state information. This condition can lead to inconsistent behavior of the system and is a fundamental issue in concurrent system design.


An attribute of a use case, or scenario that describes its impact on the architecture, or its importance for a release.

Rational process workbench (RPW)

A process customization and publishing tool that enables process engineers to accelerate delivery of customized software development process, visually model process using Unified Modeling Language, and leverage the best practices captured in the RUP.


Relational database management system.

receive [a message]

The handling of a stimulus passed from a sender instance. See: senderreceiver.


The object handling a stimulus passed from a sender object. Contrast: sender .


A declaration that a classifier is prepared to react to the receipt of a signal.


(1) A denotation of a model element.

(2) A named slot within a classifier that facilitates navigation to other classifiers. Synonym: pointer.


A relationship that represents a fuller specification of something that has already been specified at a certain level of detail. For example, a design class is a refinement of an analysis class.


A semantic connection among model elements. Examples of relationships include associations and generalizations .


A subset of the end-product that is the object of evaluation at a major milestone. A release is a stable, executable version of product, together with any artifacts necessary to use this release, such as release notes or installation instructions. A release can be internal or external. An internal release is used only by the development organization, as part of a milestone, or for a demonstration to users or customers. An external release (or delivery) is delivered to end users. A release is not necessarily a complete product, but can just be one step along the way, with its usefulness measured only from an engineering perspective. Releases act as a forcing function that drives the development team to get closure at regular intervals, avoiding the “90% done, 90% remaining” syndrome. See also: prototype , baseline .

release manager

A release manager is responsible for ensuring that all software assets are controlled and configurable into internal and external releases as required.

remote method invocation (RMI)

In JDK 1.1, the API that allows you to write distributed Java programs, allowing methods of remote Java objects to be accessed from other Java virtual machines.

remote procedure call (RPC)

A communication model where requests are made by function calls to distributed procedure elsewhere. The location of the procedures is transparent to the calling application.


An automatically generated description, describing one or several artifacts . A report is not an artifact in itself. A report is in most cases a transitory product of the development process, and a vehicle to communicate certain aspects of the evolving system; it is a snapshot description of artifacts that are not documents themselves.


A storage place for work products (artifacts) output during process enactment, such as requuirements, results (i.e. metrics), object models, interfaces, and implementations.


A requirement describes a condition or capability to which a system must conform; either derived directly from user needs, or stated in a contract, standard, specification, or other formally imposed document. See: software requirements .

A desired feature, property, or behavior of a system.

requirement attribute

Information associated with a particular requirement providing a link between the requirement and other project elements—for example, priorities, schedules, status, design elements, resources, costs, hazards.


A discipline in the software-engineering process, whose purpose is to define what the system should do. The most significant activities are to develop vision , use-case model , and supplementary specification artifacts.

requirements management

A systematic approach to eliciting, organizing and documenting the software requirements of the system, and establishing and maintaining agreement between the customer and the project team on changes to those requirements.

requirements tracing

The linking of a requirement to other requirements and to other artifacts and their associated project elements.

requirement type

A categorization of requirements based on common characteristics and attributes. Sometime requirement types are based on the requirement source or area of effect—for example, stakeholder need, feature, use case, supplementary requirement, documentation requirement, hardware requirement, software requirement, and so on. Requirements may also be categorized based on the dimension of software quality that they represent—for example, FURPS+.

resource file

A file that is referred to from your Java program. Examples include graphics and audio files.


A contract or obligation of a classifier.


Synonym of output. See also: deliverable .


See: deserialize.


Further use or repeated use of an artifact.

The use of a pre-existing artifact.


A review is a group activity carried out to discover potential defects and to assess the quality of a set of artifacts.


(1) Request for change. A buyer or seller request to spend contract funds on an engineering change proposal for a change. The request states the technical or contractual issue being addressed, the impact on or benefit to the project, and an assessment of the cost and schedule impact.

(2) Request for comment. Internet Standards are defined in documents known as RFCs.


Request for information. A formal inquiry in the market place for information, typically concerning ‘Expressions of Interest’, capacity, capability and availability of contractors to undertake and bid on work described in the solicitation.


Request for proposal. A formal invitation containing a scope of work which seeks a formal response (proposal) describing both methodology and compensation to form the basis of a contract.


Request for quotation. A formal invitation to submit a price for goods and/or services as specified.


An ongoing or upcoming concern that has a significant probability of adversely affecting the success of major milestones.


See: remote method invocation

RMI compiler

The compiler that generates stub and skeleton files that facilitate RMI communication. This compiler can be automatically invoked from the Tools menu item.

RMI registry

A server program that allows remote clients to get a reference to a server bean.


A definition of the behavior and responsibilities of an individual, or a set of individuals working together as a team, within the context of a software engineering organization.

The named specific behavior of an entity participating in a particular context. A role may be static (for example, an association end) or dynamic (for example, a collaboration role).


See: remote procedure call


See: Rational process workbench


Rivest-Shamir-Adleman algorithm

run time

The period of time during which a computer program executes. Contrast: modeling time .


Rational Unified Process



Secure MIME


A restricted environment, provided by the Web browser, in which Java applets run. The sandbox offers them services and prevents them from doing anything naughty, such as doing file I/O or talking to strangers (servers other than the one from which the applet was loaded). The analogy of applets to children led to calling the environment in which they run the sandbox.


See: systems, applications, and products (SAP)


A specific sequence of actions that illustrates behaviors. A scenario may be used to illustrate an interaction or the execution of one or more use-case instances. See: interaction, test scenario.

schema [MOF]

In the context of the MOF, a schema is analogous to a package which is a container of model elements. Schema corresponds to an MOF package. Contrast: metamodel, package corresponds to an MOF package.

scope management

The process of prioritizing and determining the set of requirements that can be implemented in a particular release cycle, based on the resources and time available. This process continues throughout the lifecycle of the project as changes occur. See also: change management .

semantic variation point

A point of variation in the semantics of a metamodel . It provides an intentional degree of freedom for the interpretation of the metamodel semantics.


The passing of a stimulus from a sender instance to a receiver instance. See: senderreceiver .


The object passing a stimulus to a receiver object. Contrast: receiver .


See: software engineering process authority

sequence diagram

A diagram that shows object interactions arranged in time sequence. In particular, it shows the objects participating in the interaction and the sequence of messages exchanged. Unlike a collaboration diagram, a sequence diagram includes time sequences but does not include object relationships. A sequence diagram can exist in a generic form (describes a general scenario) and in an instance form (describes one scenario instance). Sequence diagrams and collaboration diagrams express similar information, but show it in different ways. See: collaboration diagram.


Synonymous with de-marshal .


A computer that provides services to multiple users or workstations in a network; for example, a file server, a print server, or a mail server.

Service-Oriented Architecture (SOA)

A service-oriented architecture is a conceptual description of a the structure of a software system in terms of its components and the services they provide, without regard for the underlying implementation of these components, services and connections between components.


Servlets are Java objects which execute on the server in response to a browser request. They can either generate HTML or XML directly, or call a JSP to produce the output.


Secure electronic transaction


Secure hypertext transfer protocol


The specification of an asynchronous stimulus communicated between instances. Signals may have parameters.


The name and parameters of a behavioral feature. A signature may include an optional returned parameter.

single-byte character set

A set of characters in which each character is represented by a 1-byte code.

single inheritance

A semantic variation of generalization in which a type may have only one supertype . Contrast: multiple inheritance .

single valued

A model element with multiplicity defined is single valued when its Multiplicity Type:: upper attribute is set to one. The term single-valued does not pertain to the number of values held by an attribute, parameter, and so on, at any point in time, since a single-valued attribute (for instance, with a multiplicity lower bound of zero) may have no value. Contrast: multi-valued.

smoke test

A phrase used to describe a subset of tests—typically limited in number—that can be run against each software build to determine whether the software has regressed in form or function since a previous build. Synonyms: build validation test, build verification test, build acceptance test, build regression test and sanity check.


Simple mail transport protocol


Simple Network Management Protocol

soap-opera testing

A technique for defining test scenarios by reasoning about dramatic and exaggerated usage scenarios. Like a soap opera on television, these scenarios reflect “real life”, but are condensed and exaggerated to depict dramatic instances of system use. When defined in collaboration with experienced users, soap operas help to test many functional aspects of a system quickly and—because they are not related directly to either the systems formal specifications, or to the systems features—they have a high rate of success in revealing important yet often unanticipated problems. The definition of this term and the associated technique were developed by Hans Buwalda during his test consultancy experience with customers.

socket secure (SOCKS)

The gateway that allows compliant client code (client code made socket secure) to establish a session with a remote host.


See: socket secure.

software architecture

Software architecture encompasses: the significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed together with their behavior as specified in the collaboration among those elements, the composition of the structural and behavioral elements into progressively larger subsystems and the architectural style that guides this organization, these elements and their interfaces, their collaborations, and their composition.

Software architecture is not only concerned with structure and behavior, but also with usage, functionality, performance, resilience, reuse, comprehensibility, economic and technology constraints and tradeoffs, and aesthetic concerns.

Software Engineering Process Authority (SEPA)

The organizational entity with responsibility for process definition, assessment and improvement.

software requirement

A specification of an externally observable behavior of the system; for example, inputs to the system, outputs from the system, functions of the system, attributes of the system, or attributes of the system environment.

software requirements specifications (SRS)

A set of requirements which completely defines the external behavior of the system to be built—sometimes called a functional specification.

software specification review (SSR)

In the waterfall life cycle, the major review held when the software requirements specification is complete.


A declarative description of what something is or does. Contrast: implementation.


Structured query language.


See: system requirements review


See: software requirements specifications


Secure sockets layer.


See: Software Specification Review


An individual who is who is materially affected by the outcome of the system.

stakeholder need

The business or operational problem (opportunity) that must be fulfilled in order to justify purchase or use.

stakeholder request

A request of various specialized types—for example, change requestenhancement request, request for a requirement change, defect—from a stakeholder.

start page

The first page a user sees when browsing a Web site. Synonyms: default page, home page .


A condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event.

statechart diagram

A diagram that shows a state machine. See: state machine .

state machine

A state machine specifies the behavior of a model element , defining its response to events and the life cycle of the object.

A behavior that specifies the sequences of states that an object or an interaction goes through during its life in response to events, together with its responses and actions.

static artifact

An artifact that is used, but not changed, by a process.

static classification

A semantic variation of generalization in which an object may not change type or may not change role. Contrast: dynamic classification .

static information

Web files that do not change on every access.


A meta-classification of an element. Stereotypes have semantic implications which can be specified for every specific stereotype value. See the “UML Representation” attributes on the artifacts in RUP to see the predefined stereotypes that are recommended for in use in the RUP.

A new type of modeling element that extends the semantics of the metamodel. Stereotypes must be based on certain existing types or classes in the metamodel. Stereotypes may extend the semantics, but not the structure of pre-existing types and classes. Certain stereotypes are predefined in the UML, others may be user defined.


The passing of information from one instance to another, such as raising a signal or invoking an operation. The receipt of a signal is normally considered an event. See: message.

stored procedure

A functional unit of code or script that is associated with the database.


A sequence of text characters. The details of string representation depend on implementation, and may include character sets that support international characters and graphics.

structural feature

A static feature of a model element, such as an attribute.

structural model aspect

A model aspect that emphasizes the structure of the objects in a system, including their types, classes, relationships, attributes, and operations.


A component containing functionality for testing purposes. A stub is either a pure “dummy”, just returning some predefined values, or it is “simulating” a more complex behavior.

subactivity state

A state in an activity graph that represents the execution of a non-atomic sequence of steps that has some duration.


In a generalization relationship, the specialization of another class; the superclass. See: generalization. Contrast: superclass.

submachine state

A state in a state machine which is equivalent to a composite state but its contents are described by another state machine.


A state that is part of a composite state. See: concurrent substate, disjoint substate.


A model element which has the semantics of a package, such that it can contain other model elements, and a class, such that it has behavior. The behavior of the subsystem is provided by classes or other subsystems it contains. A subsystem realizes one or more interfaces, which define the behavior it can perform.

A subsystem is a grouping of model elements, of which some constitute a specification of the behavior offered by the other contained model elements. See also: packagesystem.


In a generalization relationship, the specialization of another type; the supertype. See: generalization. Contrast: supertype.


In a generalization relationship, the generalization of another class; the subclass. See: generalization. Contrast: subclass.


In a generalization relationship, the generalization of another type; the subtype. See: generalization. Contrast: subtype.


A classifier that provides services that can be invoked by others. Contrast: client.


A partition on a activity diagram for organizing the responsibilities for actions. Swimlanes typically correspond to organizational units in a business model. See: partition.

synchronous action

A request where the sending object pauses to wait for results. Contrast: asynchronous action.

synch state

A vertex in a state machine used for synchronizing the concurrent regions of a state machine.


(1) A collection of connected units that are organized to accomplish a specific purpose. A system can be described by one or more models, possibly from different viewpoints. Synonym: physical system.

(2) A top-level subsystem.

system requirements review (SRR)

In the waterfall life cycle, the name of the major review held when the system specification is completed.

Systems, Applications, and Products (SAP)

Originally “Systemanalyse und Programmentwicklung” and now named Systems, Applications, and Products in Data Processing, SAP supplies widely-used software for integrated business solutions.



Element of a database that represents a collection of information about a specific entity or topic.


A logical unit of storage in a database.

tagged value

The explicit definition of a property as a name-value pair. In a tagged value, the name is referred as the tag. Certain tags are predefined in the UML; others may be user defined. Tagged values are one of three extensibility mechanisms in UML. See: constraintstereotype .


Synonym: target test item.

target test item

An aspect of the developed product—typically software or hardware—which has been identified as a target of the testing effort. A target test item might be scoped at the level of an operationinterfacefeaturecomponentimplementation subsystem, or system; or it may be an external aspect of the system, such as an operating system or peripheral device (eg printer). Synonyms: target-of-test, test item.


See: operating system processprocess and thread.


Transmission Control Protocol


Transmission Control Protocol/Internet Protocol

team leader

The team leader is the interface between project management and developers. The team leader is responsible for ensuring that a task is allocated and monitored to completion. The team leader is responsible for ensuring that development staff follow project standards, and adhere to project schedules.

technical authority

The project’s technical authority has the authority and technical expertise to arbitrate on if, and how, a change request is to be implemented. The technical authority defines change tasks, and estimates the effort of engineering the work tasks, corresponding to a change request.


U.S. Department of Defense virtual terminal protocol.


A predefined structure for an artifact.

Synonym: parameterized software element .


(1) A discipline in the software-engineering process whose purpose is to integrate and test the system.

(2) An instance of a given test case .

(3) To execute a test.


The ability for the target test items to be appropriately tested: if the target item cannot have the required tests implemented against it, it is possibly lacking testability. Arguably, the two major aspects discussed in regard to testability are: 1) the ability for the target test items to provide appropriate support for being tested and 2) the suitability of the process and tools employed by the test team – and the specific strategy taken to applying them. See: test interfacetest approach.

test case

The specification (usually formal) of a set of test inputs, execution conditions, and expected results, identified for the purpose of making an evaluation of some particular aspect of a target test item. A test case differs from a test idea, in that the test case is a more fully-formed specification of the test, describing what the test(s) that result form the test case will be required to do.

test coverage

A term used generically to refer to how the extent of testing should be or has been measured. Typical approaches to measuring, the extent of testing include: considering the degree to which a given set of tests address the formal specifications specified test cases for a given system or component .

test cycle

A period of test activity that includes amongst other things the execution and evaluation of tests. The span of time between the acceptance of a software build into the test environment , when a build is made available for independent testing and, when the current period of testing activity on that build ends. The majority of iterations will contain at least one test cyle, although an iteration can contain from none to many test cycles.

test driver

A software module or application used to invoke a test and, often, provide test data, control and monitor execution, and report test outcomes. A test driver sequences and controls the automated execution of one or more tests. Synonym: test suite .

test environment

A specific instance of a configuration of hardware and software established for the purpose of conducting tests under known and controlled conditions. See also: deployment environment , environment .

test escape

A fault or defect that escapes detection during the enactment of the activities the test team conducts to detect defects which is discovered subsequently during downstream product use.

test idea

A brief statement identifying a test that is potentially useful to conduct. The test idea typically represents an aspect of a given test: an input, an execution condition or an expected result, but often only addresses a single aspect of a test. A test idea differs from a test case, in that the test idea is an incomplete definition containing no specification of the test workings, only the essence of the idea behind the test. Synonym: test requirement. See also: test case.

test mission

See: evaluation mission.

test motivator

Something which provides an incentive to undertake tests; moves testers to action; impels them to test. Test motivators help to identify and make visible the things that will motivate testers to evaluate the appropriate aspects of a given executable software release: as a generalization, test motivators in RUP normally represent specific quality risks and are scoped within the context of an evaluation mission.

test oracle

A strategy for knowing whether a test passes or fails. The test oracle includes both the medium through which the output from the test can be observed, and the technique for interpreting what that medium exposes. It provides a means by which observed results can be evaluated against expected results.

test procedure

The procedural aspect of a given test, usually a set of detailed instructions for the setup and step-by-step execution of one or more given test cases. The test procedure is captured in both test scenarios and test scripts. See: test scenariotest script.

test requirement

A requirement placed on the test effort that must be fulfilled the implementation and execution of one or more tests. This term has been superseded by the term test idea.

test scenario

A sequence of actions (execution conditions) that identifies behaviors of interest in the context of test execution. The test scenario provides a way to generalize equivalent classes of action sequences, where they are deemed equivalent based on characteristics such as ranges rather than specific data values. A test scenario describes behavior at a single level of scope, and relates to one or more behavioral instances at that level: for example, a test scenario can relate to one or more use-case instances, or it can relate to behavioral instances that span use-cases. See: scenariouse-case instancetest procedure.

test script

A collection of step-by-step instructions that realize a test, enabling its execution. Test scripts may take the form of either documented textual instructions that are executed manually or computer readable instructions that enable automated test execution. See: test scenario , test procedure .

test suite

A package-like artifact used to group collections of test scripts , both to sequence the execution of the tests and to provide a useful and related set of Test Log information from which Test Results can be determined.. Synonyms: test driver , shell script.

thin client

Thin client usually refers to a system that runs on a resource-constrained machine or that runs a small operating system. Thin clients don’t require local system administration, and they execute Java applications delivered over the network.


An independent computation executing within an the execution environment and address space defined by an enclosing operating system process . Also sometimes called a “lightweight process”.

A single path of execution through a program, a dynamic model, or some other representation of control flow. Also, a stereotype for the implementation of an active object as lightweight process. See: process .


A value representing an absolute or relative moment in time.


The approach to the management of an iteration’s schedule recommended in the RUP: having initially established the scope and schedule for an iteration, the project manager is encouraged to actively manage that scope (and the resources committed to the iteration) so as to meet the planned iteration end date, rather than slipping the end date to accommodate the originally planned scope, if development takes longer than planned. In the RUP, reduction of scope is preferred to addition of resources to manage a slipping schedule. The motivations for this approach are to make the results of an iteration visible to the stakeholders and to assess the iteration, so that the lessons learned may be applied to subsequent iterations.

time event

An event that denotes the time elapsed since the current state was entered. See: event .

time expression

An expression that resolves to an absolute or relative value of time.

timing mark

A denotation for the time at which an event or message occurs. Timing marks may be used in constraints.

tool mentor

A description that provides practical guidance on how to perform specific process activities or steps using a specific software tool.


A dependency that indicates a historical or process relationship between two elements that represent the same concept without specific rules for deriving one from the other.


The ability to trace a project element to other related project elements, especially those related to requirements . Project elements involved in traceability are called traceability items.

traceability item

Any project element which needs to be explicitly traced from another project element in order to keep track of the dependencies between them. With respect to Rational RequisitePro this definition can be rephrased as: any project element represented within RequisitePro by an instance of a RequisitePro requirement type.


A unit of processing consisting of one or more application programs initiated by a single request. A transaction can require the initiation of one or more tasks for its execution.

transaction processing

A style of computing that supports interactive applications in which requests submitted by users are processed as soon as they are received. Results are returned to the requester in a relatively short period of time. A transaction processing system supervises the sharing of resources for processing multiple transactions at the same time.

transient object

An object that exists only during the execution of the process or thread that created it.


The fourth phase of the process in which the software is turned over to the user community.

A relationship between two states indicating that an object in the first state will perform certain specified actions and enter the second state when a specified event occurs and specified conditions are satisfied. On such a change of state, the transition is said to fire.


With the exception of the initial transition, all behavior in a state machine is triggered by the arrival of events on one of an object’s interfaces. Therefore, a trigger defines those events from which interfaces will cause the transition to be taken. The trigger is associated with the interface on which the triggering event is expected to arrive. Moreover, a transition can have multiple triggers such that an event that satisfies any one of the triggers will cause the transition to be taken.

trigger (database)

Code associated with a database that causes the database to perform a specific action or set of actions.


Description of a set of entities which share common characteristics, relations, attributes, and semantics.

A stereotype of class that is used to specify a domain of instances (objects) together with the operations applicable to the objects. A type may not contain any methods. See: class,instance . Contrast: interface.

type expression

An expression that evaluates to a reference to one or more types.



See: user interface


See: unified modeling language


A character coding system designed to support the interchange, processing, and display of the written texts of the diverse languages of the modern world. Unicode characters are typically encoded using 16-bit integral unsigned numbers.

unified modeling language (UML)

A language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system [BOO98]. See Unified Modeling Language [UML01]. In the RUP Glossary, definitions from the Unified Modeling Language are indicated by the symbol ; .

uniform resource locator (URL)

A standard identifier for a resource on the World Wide Web, used by Web browsers to initiate a connection. The URL includes the communications protocol to use, the name of the server, and path information identifying the objects to be retrieved on the server.


A placeholder for a type or types whose implementation is not specified by the UML. Every uninterpreted value has a corresponding string representation. See: any [CORBA].


See: uniform resource locator.


A dependency in which one element (the client ) requires the presence of another element (the supplier ) for its correct functioning or implementation.

use case

A description of system behavior, in terms of sequences of actions. A use case should yield an observable result of value to an actor. A use case contains all flows of events related to producing the “observable result of value”, including alternate and exception flows. More formally, a use case defines a set of use-case instances or scenarios.

The specification of a sequence of actions, including variants, that a system (or other entity) can perform, interacting with actors of the system. See: use-case instancescenario.

use-case diagram

A diagram that shows the relationships among actors and use cases within a system.

use-case instance

The performance of a sequence of actions being specified in a use case. An instance of a use case. A use-case instance is a specific “end-to-end” concrete path through a use case—actors are replaced by specific persons (actor instances), specific values and responses are given and only a single path is taken through one or more possible flows of the use case. See also: scenariotest scenario.

use-case model

A model that describes a system’s functional requirements in terms of use cases.

use-case package

A use-case package is a collection of use cases, actors, relationships, diagrams, and other packages; it is used to structure the use-case model by dividing it into smaller parts.

use-case realization

A use-case realization describes how a particular use case is realized within the design model, in terms of collaborating objects.

use-case section

A use-case section is any section of a use case, including preconditions, postconditions, subflows, steps, and text. Use-case sections can be used as traceability items.

use-case view

An architectural view that describes how critical use cases are performed in the system, focusing mostly on architecturally significant components (objects, tasks, nodes). In the RUP, it is a view of the use-case model.

user interface

(1) The hardware, or software, or both that enables a user to interact with a computer.

(2) The term user interface typically refers to the visual presentation and its underlying software with which a user interacts.


A stereotype that groups global variables and procedures in the form of a class declaration. The utility attributes and operations become global variables and global procedures, respectively. A utility is not a fundamental modeling construct, but a programming convenience.



An element of a type domain.


(1) A storage place within an object for a data feature. The data feature is an object, such as number or date, stored as an attribute of the containing object.

(2) A bean that receives an identity at run time. A variable by itself contains no data or program logic; it must be connected such that it receives run-time identity from a bean elsewhere in the application.


The Visual Basic—a specialized version of BASIC—programming language and associated IDE created by Microsoft.


A variant of some artifact; later versions of an artifact typically expand on earlier versions.


A source or a target for a transition in a state machine. A vertex can be either a state or a pseudo-state. See: state , pseudo-state .


A simplified description (an abstraction) of a model, which is seen from a given perspective or vantage point and omits entities that are not relevant to this perspective. See also: architectural view .

A projection of a model, which is seen from a given perspective or vantage point and omits entities that are not relevant to this perspective.

view (database)

A virtual table composed of column information from one or more physical tables in the database.

view element

A view element is a textual and/or graphical projection of a collection of model elements.

view projection

A projection of model elements onto view elements. A view projection provides a location and a style for each view element.

virtual machine

A software program that executes other computer programs. It allows a physical machine, a computer, to behave as if it were another physical machine.


An enumeration whose value (public, protected, or private) denotes how the model element to which it refers may be seen outside its enclosing namespace.


The user’s or customer’s view of the product to be developed, specified at the level of key stakeholder needs and features of the system.

visual programming tool

A tool that provides a means for specifying programs graphically. Application programmers write applications by manipulating graphical representations of components.


See: virtual machine


Virtual private network.


waterfall model

[IE610.12] defines the waterfall model as;

“A model of the software development process in which the constituent activities, typically a concept phase, requirements phase, design phase, implementation phase, test phase, and installation and checkout phase, are performed in that order, possibly with overlap but with little or no iteration.”

This definition applies in the RUP, with the substitution of the term “discipline” for “phase”. In the RUP, the disciplines are named Business Modeling, Requirements, Analysis & Design, Implementation, Test, and Deployment and in the waterfall model of development, these would occur only once, in sequence, with little or no overlap.

web application

A system that uses the internet as the primary means of communication between the system users and the system. See also: web system.

web browser

A piece of software that runs on a client which allows a user to request and render HTML pages.

web server

The server component of the World Wide Web. It is responsible for servicing requests for information from Web browsers. The information can be a file retrieved from the server’s local disk or generated by a program called by the server to perform a specific application function.

web site

A web system that is all on one server. Users navigate the Web site with a browser.

web system

A hyper media system that contains pages of information that are linked to each other in the form of a graph, as opposed to being hierarchical or linear. A Web system can manifest itself as a Web server that can be accessed through a browser.


In this context, a generic term for something that can be put on a window such as a button, scrollbar, label, listbox, menu, or checkbox.

windows registry

The Microsoft® Windows® registration database, used to store the configuration settings and user options for the software programs installed on a given PC.

work breakdown structure (WBS)

The planning framework; a project decomposition into units of work from which cost, artifacts, and activities can be allocated and tracked.


The sequence of activities performed in a business that produces a result of observable value to an individual actor of the business.

workflow detail

A grouping of activities which are performed in close collaboration to accomplish some result. The activities are typically performed either in parallel or iteratively, with the output from one activity serving as the input to another activity. Workflow details are used to group activities to provide a higher level of abstraction and to improve the comprehensibility of workflows.


The work area that contains all the code you are currently working on; that is, current editions. The workspace also contains the standard Java class libraries and other class libraries.


A configuration of input/output equipment at which an operator works. A terminal or microcomputer, usually one that is connected to a mainframe or a network, at which a user can perform applications.

World Wide Web (WWW or web)

A graphic hypertextual multimedia Internet service.


What you see is what you get.



Extensible markup language.


Extreme programming.