abstraction
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.
action
An executable computation that results in a change in state of the system or the return of a value.
activity diagram
A diagram that shows the flow of control and data from activity to activity. Activity diagrams address the dynamic view of a system.
aggregation
A special form of association that specifies a whole-part relationship between the aggregate (the whole) and a component (the part).
architecture
The set of 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 collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organizationthese 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 trade-offs, and aesthetic concerns.
architecture-centric
In the context of the software development life cycle, a process that focuses on the early development and baselining of a software architecture, then uses the system's architecture as a primary artifact for conceptualizing, constructing, managing, and evolving the system under development.
artifact
A quantized piece of information that is used or produced by a software development process or an existing system.
association
A structural relationship that describes a set of links, in which a link is a connection among objects; the semantic relationship between two or more classifiers that involves the connections among their instances.
association class
A modeling 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.
attribute
A named property of a classifier that describes a range of values that instances of the property may hold.
binding
The creation of an element from a template by supplying arguments for the parameters of the template.
class
A description of a set of objects that share the same attributes, operations, relationships, and semantics.
class diagram
A diagram that shows a set of classes, interfaces, and collaborations and their relationships; class diagrams address the static design view of a system; a diagram that shows a collection of declarative (static) elements.
classifier
A mechanism that describes structural and behavioral features. Classifiers include classes, interfaces, datatypes, signals, components, nodes, use cases, and subsystems.
collaboration
A society of roles and other elements that work together to provide some cooperative behavior that's bigger than the sum of all its parts; the specification of how an element, such as a use case or an operation, is realized by a set of classifiers and associations playing specific roles and used in a specific way.
communication diagram
An interaction diagram that emphasizes the structural organization of the objects that send and receive messages; a diagram that shows interactions organized around instances and their links to each other.
component
A physical and replaceable part of a system that conforms to and provides the realization of a set of interfaces.
component diagram
A diagram that shows the organization of and dependencies among a set of components; component diagrams address the static implementation view of a system.
composition
A form of aggregation with strong ownership and coincident lifetime of the parts by the whole; parts with nonfixed multiplicity may be created after the composite itself, but once created they live and die with it; such parts can also be explicitly removed before the death of the composite.
concurrency
The occurrence of two or more loci of execution during the same time interval. Concurrency can be achieved by interleaving or simultaneously executing two or more threads.
constraint
An extension of the semantics of a UML element, allowing you to add new rules or modify existing ones.
container
An object that exists to contain other objects and that provides operations to access or iterate over its contents.
containment hierarchy
A namespace hierarchy consisting of elements and the aggregation relationships that exist between them.
construction
The third phase of the software development life cycle, 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.
datatype
A type whose values have no identity. Datatypes include primitive built-in types (such as numbers and strings) as well as enumeration types (such as Boolean).
dependency
A semantic relationship between two things in which a change to one thing (the independent thing) may affect the semantics of the other thing (the dependent thing).
deployment diagram
A diagram that shows the configuration of run time processing nodes and the components that live on them; a deployment diagram addresses the static deployment view of a system.
deployment view
The view of a system's architecture that encompasses the nodes that form the system's hardware topology on which the system executes; a deployment view addresses the distribution, delivery, and installation of the parts that make up the physical system.
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.
design view
The view of a system's architecture that encompasses the classes, interfaces, and collaborations that form the vocabulary of the problem and its solution; a design view addresses the functional requirements of a system.
diagram
The graphical presentation of a set of elements, most often rendered as a connected graph of vertices (things) and arcs (relationships).
domain
An area of knowledge or activity characterized by a set of concepts and terminology understood by practitioners in that area.
dynamic classification
A semantic variation of generalization in which an object may change type or role.
elaboration
The second phase of the software development life cycle, in which the product vision and its architecture are defined.
event
The specification of a significant occurrence that has a location in time and space; in the context of state machines, the occurrence of an event can trigger a state transition.
extensibility mechanism
One of three mechanisms (stereotypes, tagged values, and constraints) that permit you to extend the UML in controlled ways.
feature
A property, such as an operation or an attribute, that is encapsulated within another entity, such as an interface, a class, or a datatype.
focus of control
A symbol on a sequence diagram that shows the period of time during which an object is performing an action directly or through a subordinate operation.
forward engineering
The process of transforming a model into code through a mapping to a specific implementation language.
framework
An architectural pattern that provides an extensible template for applications within a domain.
generalization
A specialization/generalization relationship, in which objects of the specialized element (the child) are substitutable for objects of the generalized element (the parent).
implementation
A concrete realization of the contract declared by an interface; a definition of how something is constructed or computed.
implementation inheritance
The inheritance of the implementation of a more general element; also includes inheritance of the interface.
implementation view
The view of a system's architecture that encompasses the artifacts used to assemble and release the physical system; an implementation view addresses the configuration management of the system's releases, made up of somewhat independent artifacts that can be assembled in various ways to produce a running system.
import
In the context of packages, a dependency that shows the package whose classes may be referenced within a given package (including packages recursively embedded within it) without supplying a qualified name.
inception
The first phase of the software development life cycle, in which the seed idea for the development is brought to the point of being sufficiently well-founded to warrant entering into the elaboration phase.
incremental
In the context of the software development life cycle, a process that involves the continuous integration of the system's architecture to produce releases, with each new release embodying incremental improvements over the other.
inheritance
The mechanism by which more-specific elements incorporate the structure and behavior of more-general elements.
instance
A concrete manifestation of an abstraction; an entity to which a set of operations can be applied and that has a state that stores the effects of the operations.
interaction
A behavior that comprises a set of messages that are exchanged among a set of objects within a particular context to accomplish a purpose.
interaction diagram
A diagram that shows an interaction, consisting of a set of objects and their relationships, including the messages that may be dispatched among them; interaction diagrams address the dynamic view of a system; a generic term that applies to several types of diagrams that emphasize object interactions, including communication diagrams and sequence diagrams. Activity diagrams are related but semantically distinct.
interaction view
The view of a system's architecture that encompasses the objects, threads, and processes that form the system's concurrency and synchronization mechanisms, the set of activities, and the flow of messages, control, and data among them. The interaction view also addresses the performance, scalability, and throughput of the system.
iteration
A distinct set of activities with a baseline plan and evaluation criteria that results in a release, either internal or external.
iterative
In the context of the software development life cycle, a process that involves managing a stream of executable releases.
interface inheritance
The inheritance of the interface of a more specific element; does not include inheritance of the implementation.
level of abstraction
A place in a hierarchy of abstractions ranging from high levels of abstraction (very abstract) to low levels of abstraction (very concrete).
message
A specification of a communication between objects that conveys information with the expectation that activity will ensue; the receipt of a message instance is normally considered an instance of an event.
model
A simplification of reality, created to better understand the system being created; a semantically closed abstraction of a system.
multiple classification
A semantic variation of generalization in which an object may belong directly to more than one class.
multiple inheritance
A semantic variation of generalization in which a child may have more than one parent.
namespace
A scope in which names may be defined and used; within a namespace, each name denotes a unique element.
node
A physical element that exists at run time and that represents a computational resource, generally having at least some memory and often having processing capability.
nonorthogonal substate
A substate that cannot be held simultaneously with other substates contained in the same composite state.
note
A graphic symbol for rendering constraints or comments attached to an element or a collection of elements.
object
A concrete manifestation of an abstraction; an entity with a well-defined boundary and identity that encapsulates state and behavior; an instance of a class.
object diagram
A diagram that shows a set of objects and their relationships at a point in time; object diagrams address the static design view or static process view of a system.
object lifeline
A line in a sequence diagram that represents the existence of an object over a period of time.
occurrence
An instance of an event, including a location in space and time and a context. An occurrence may trigger a state machine transition.
operation
The implementation of a service that can be requested from any object of the class in order to affect behavior.
orthogonal substate
An orthogonal substate that can be held simultaneously with other substates contained in the same composite state.
persistent object
An object that exists after the process or thread that created it has ceased to exist.
phase
The span of time between two major milestones of the development process during which a well-defined set of objectives are met, artifacts are completed, and decisions are made whether to move into the next phase.
pseudostate
A node in a state machine that has the form of a state but doesn't behave as a state; pseudostates include initial, final, and history nodes.
qualifier
An association attribute whose values partition the set of objects related to an object across an association.
realization
A semantic relationships between classifiers, in which one classifier specifies a contract that another classifier guarantees to carry out.
refinement
A relationship that represents a fuller specification of something that has already been specified at a certain level of detail.
release
A relatively complete and consistent set of artifacts delivered to an internal or external user; the delivery of such a set.
reverse engineering
The process of transforming code into a model through a mapping from a specific implementation language.
risk-driven
In the context of the software development life cycle, a process in which each new release is focused on attacking and reducing the most significant risks to the success of the project.
single inheritance
A semantic variation of generalization in which a child may have only one parent.
specification
A textual statement of the syntax and semantics of a specific building block; a declarative description of what something is or does.
state
A condition or situation during the life of an object during which it satisfies some condition, performs some activity, or waits for some event.
state diagram
A diagram that shows a state machine; state diagrams address the dynamic view of a system.
state machine
A behavior that specifies the sequences of states an object goes through during its lifetime in response to events, together with its responses to those events.
static classification
A semantic variation of generalization in which an object may not change type and may not change role.
stereotype
An extension of the vocabulary of the UML that allows you to create new kinds of building blocks derived from existing ones but that are specific to your problem.
subsystem
A grouping of elements of which some constitute a specification of the behavior offered by the other contained elements.
superclass
In a generalization relationship, the parent, which is the generalization of another class.
system
A set of elements organized to accomplish a specific purpose and described by a set of models, possibly from different viewpoints. A system is often decomposed into a set of subsystems.
tagged value
An extension of the properties of a UML stereotype, which allows you to create new information in the specification of an element bearing that stereotype.
task
A single path of execution through a program, a dynamic model, or some other representation of control flow; a thread or a process.
thread
A lightweight flow of control that can execute concurrently with other threads in the same process.
trace
A dependency that indicates an historical or process relationship between two elements that represent the same concept, without rules for deriving one from the other.
transient object
An object that exists only during the execution of the thread or process that created it.
transition
The fourth phase of the software development life cycle, in which the software is turned into the hands of the user community; a relationship between two states indicating that an object in the first state will perform certain actions and enter the second state when a specified event occurs and conditions are satisfied.
UML
The Unified Modeling Language, a language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system.
usage
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 a set of sequences of actions, including variants, that a system performs that yields an observable result of value to an actor.
use case diagram
A diagram that shows a set of use cases and actors and their relationships; use case diagrams address the static use case view of a system.
use case-driven
In the context of the software development life cycle, a process in which use cases are used as a primary artifact for establishing the desired behavior of the system, for verifying and validating the system's architecture, for testing, and for communicating among the stakeholders of the project.
use case view
The view of a system's architecture that encompasses the use cases that describe the behavior of the system as seen by its end users, analysts, and testers.
view
A projection into a model, which is seen from a given perspective or vantage point and omits entities that are not relevant to this perspective.