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.
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.
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.
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.
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.
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.
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.
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.
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.
A discipline in the Unified Process, whose
purpose is to show how the system's use cases
will be realized in implementation; (general) activities during which strategic
and tactical decisions are made to meet the required functional and quality
requirements of a system. For the result
of analysis and design activities, see Design Model.
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.
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.
[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.
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 mechanisms represent common concrete solutions to frequently
encountered problems. They may be patterns of structure, patterns of behavior,
or both. In the Unified Process for EDUcation (UPEDU), architectural mechanism
is used as an umbrella term for analysis mechanism, design mechanism, and
implementation mechanism.
â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 UPEDU. 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.
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 [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.
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 piece of information that is used or produced by a software development
process. An artifact can be a model, a description, or software. Synonym:
product.
A set of related artifacts which presents one aspects 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.
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 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.
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 attacks on computer software originated from the community
known as software hackers or crackers who use various techniques to attack
software systems, typically to circumvent security software and gain illegal
entry to the host system. Examples of recognized attack techniques include
buffer overflow, denial of service, resource constraint and Trojan horse.
This term has now 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.
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.
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.
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.
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.
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 UPEDU, 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
workersand business entities.
See also process.
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.
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".
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.
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.
A
business use-case realization describes how the workflow of a particular
business use case is realized within the business
object model, in terms of collaborating business objects.
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.
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.
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.
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
request, defect.
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.
A description of a set of objects that share the same attributes,
operations, methods,
relationships, and semantics. A class may
use a set of interfaces to specify collections of operations it provides to
its environment. See interface.
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.
(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.
(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.
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.
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).
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 physical realization of a set of
interfaces.
A physical, replaceable part of a system that packages implementation and
conforms to and provides the realization of a set of interfaces. A component
represents a physical piece of implementation of a system, including software
code (source, binary or executable) or equivalents such as scripts or command
files.
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.
A bean that is composed
of other beans. A composite bean can contain visual beans, nonvisual beans,
or both. See also bean, nonvisual bean, and visual bean.
A form of aggregationassociation 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. Synonym: composite
aggregation.
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.
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.
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. (ISO)
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 value, stereotype.
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.
(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.
A namespace hierarchy consisting of model elements,
and the containment relationships that exist between them. A containment hierarchy
forms an acyclic graph.
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.
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.
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.
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.
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.
See test cycle
(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.
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.
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.
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.
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.
A specific instance of a configuration of hardware and software established
for the purpose of installing and running the developed software for it's
intended use. See test environment
and environment.
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 component
diagram.
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.
An architectural
view that describes one or several system configurations; the mapping
of software components (tasks, modules) to
the computing nodes in these configurations.
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.
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.
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.
â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.
A model
elementwhich 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.
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.
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.
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 discipline is a collection
of related activities that are related to a major 'area of concern'. Thedisciplines
in UPEDU include: Business Modeling, Requirements, Analysis & Design,
Implementation, Test, Deployment, Configuration & Change Management, Project
Management, Environment.
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 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.
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.
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 object model.
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. Compare
with single-byte character set.
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.
A file containing
executable code and data bound to a program at run time rather than at link
time. The C++ Access Builder generates beans and C++ wrappers that let your
Java programs access C++ DLLs.
Either (1) the transaction
of business over an electronic medium such as the Internet or (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).
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."
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.
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.
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.
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.
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 test
environment and deployment environment.
A brief, easy-to-remember statement that distills the essence of the work
objectives for the test team for a given work schedule. Typically defined
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 fast, advise about perceived
project risks, advise 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.
An iterative development
strategy that acknowledges that user needs are not fully understood and therefore
requirements are refined in each succeeding iteration (elaboration
phase).
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 UPEDU 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.
A technique for testing computer software that requires minimal advanced
planning and tolerates limited documentation for the target-of-test, relying
mainly on the skill and knowledge of the tester to guide the testing. Thought
to have first been first defined by Cem Kaner, Exploratory Testing has been
broadly publicized by the work of James Bach. James advocates a style of exploratory
testing where short sessions of exploration lasting approximately 90 minutes
are briefly planned, undertaken, and results recorded and reviewed.
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.
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.
The inability of a system or component to perform its required functions
within specified performance requirements [IEEE90].
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.
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.
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.
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.
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.
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.
Functionality, Usability, Reliability, Performance, Supportability (+ others): this
acronym represents categories for both defining product requirements and assessing
product quality.
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.
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.
Development "starting from scratch", as opposed to "evolution
of an existing system" or "reengineering of a legacy piece".
Originated from the transformation that takes place when building a new factory
on an undeveloped siteâwith grass on it.
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.
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.
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.
â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.
A discipline in the software-engineering
process, whose purpose is to implement and perform developer testing on software
components.
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.
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.
A collection of components and other implementation
subsystems used to structure the implementation
model by dividing it into smaller parts. Note that in the UPEDU, 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.
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 packaging, layering,
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.
(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.
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.
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.
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.
An Internet address
that is a unique number consisting of four parts separated by dots,
sometimes called a dotted quad (for example, 198.204.112.1). Every Internet
computer has an IP number, and most computers also have one or more domain
names that are mappings for the dotted quad.
Java is a new 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.
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.
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.
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.
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.
A description of how an architectural
patterns is realized in terms of patterns of interaction between elements
in the system. Presented in the Software
Architecture Document
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.
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.
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 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 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.
(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
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.
A dimension of modeling that emphasizes particular qualities of the metamodel.
For example, the structural model aspect emphasizes the structural qualities
of the metamodel.
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.
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.
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.
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 time,
design time. Contrast: run
time.
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.
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.
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.
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.
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.
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.
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.
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
diagram, collaboration diagram.
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.
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.
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.
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.
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.
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.
A collection of
business workers, business entities, relationships, business use-case
realizations, diagrams, and other organization units. It is used to
structure the business object model by dividing it into smaller parts.
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.
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.
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.
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 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 patterns,
analysis patterns, design
patterns, test patterns and idioms
or implementation patterns.
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.
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.
(1) n. 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). (2) n. A 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. (3) tr. v.
To modify (software) for use on a different machine or platform.
In
the waterfall life cycle, the major review held when the architectural design
is completed. See Guidelines:
Software Development Plan#Aligning the Traditional Waterfall Review Sequence
with the Iterative Approach.
(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.
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. [HOF98]
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.
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.
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.
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.
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.
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 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.
The function of Quality Assurance is the responsibility of (reports to)
the Project Manager and is responsible for ensuring that project standards
are correctly and verifiably followed by all project staff.
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, UPEDU uses the
FURPS+ requirements model as a basis to discuss
dimensions of quality.
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.
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 UPEDU.
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 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.
A release manager
is responsible for ensuring that all software assets are controlled and
configurable into internal and external releases
as required.
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.
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 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 Concept:
Requirements.
A desired
feature, property, or behavior of a system.
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 categorization
of requirementsâfor example, stakeholder need, feature, use case,
supplementary requirement, test requirement, documentation requirement,
hardware requirement, software requirement, and so onâbased on common
characteristics and attributes.
A discipline in the software-engineering
process, whose purpose is to define what the system should do. The most significant
activities are to develop a vision,
a use-case model,
and supplementary specifications.
A systematic
approach to eliciting, organizing and documenting the requirements
of the system, and establishing and maintaining agreement between the
customer and the project team on the changing requirements of the system.
The compiler that
generates stub and skeleton files that facilitate RMI communication. This
compiler can be automatically invoked from the Tools menu item.
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).
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.
A specific sequence of actions that illustrates behaviors. A scenario may
be used to illustrate an interaction or the execution of a use case instance.
See interaction, test
scenario.
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.
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.
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 all possible scenarios)
and in an instance form (describes one actual scenario). Sequence diagrams
and collaboration diagrams express similar information, but show it in different
ways. See collaboration diagram.
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.
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.
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).
A technique for defining test scenario's 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.
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
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.
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.
In
the waterfall life cycle, the major review held when the software
requirements specification is complete. See Guidelines:
Software Development Plan, Aligning the Traditional Waterfall Review Sequence
with the Iterative Approach.
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.
A meta-classification
of an element. Stereotypes have semantic implications which can be specified
for every specific stereotype value.
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.
A sequence of text characters. The details of string representation depend
on implementation, and may include character sets that support international
characters and graphics.
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.
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 package.
See also system.
A partition on a activity diagram for
organizing the responsibilities for actions. Swimlanes typically correspond
to organizational units in a business model. See partition.
(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.
Originally
"Systemanalyse und Programmentwicklung" and now named Systems, Applications,
and Products in Data Processing, SAP supplies widely-used software for integrated
business solutions.
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 constraint, stereotype.
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 operation,
interface, feature,
component, implementation
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.
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.
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.
(1) A discipline in the software-engineering
process whose purpose is to integrate and test the system. (2) n. an
instance of a given test case (3). v.
To execute a test.
The definition (usually formal) of a specific 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.
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.
A period of test activity that includes amongst other things the execution
and evaluation of tests. Each iteration can contain from none to many test
cycles, with the majority of iterations containing at least one. Each test
cycle starts with the acceptance of a software build
into the test environment.
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.
A specific instance of a configuration of hardware and software established
for the purpose of conducting tests under known and controlled conditions.
See deployment environment and
environment.
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.
A brief statement identifying a test that is potentially useful to conduct.
This statement often represents one aspect of a given test: an input, an execution
condition or an expected result, but typically only one of these. A test idea
differs from a test case, in that the test
idea contains no specification of the test workings, only the essence of the
idea behind the test. Synonym: test
requirement. See also: test case.
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 normally represent specific quality
risks.
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.
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 an abstract idea realized by one or more
specific test scripts. See test scenario.
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.
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.
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.
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 interface, test approach.
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.
The approach to the
management of an iteration's schedule recommended in the UPEDU: 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 UPEDU, 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.
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.
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.
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.
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.
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.
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.
A language for visualizing, specifying, constructing, and documenting the
artifacts of a software-intensive system [BOO98].
See Unified Modeling Language [UML99].
In the UPEDU Glossary, definitions from the Unified Modeling Language are indicated
by the symbol .
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].
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 alternate flows of events related to producing the
"observable result of value".
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 instance, scenario.
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.
Synonyms: scenario. See test scenario.
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.
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.
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 UPEDU, it is a view of
the use-case model.
(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.
(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.
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.
An enumeration whose value (public, protected, or private) denotes how the model
element to which it refers may be seen outside its enclosing namespace.
A tool
that provides a means for specifying programs graphically. Application
programmers write applications by manipulating graphical representations of
components.
[IEEE90]
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 UPEDU, with the substitution of the term
"discipline" for "phase". In the UPEDU,
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.
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.
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.
A description which provides practical guidance on how to perform an activity
or set of activities. It usually considers techniques which are useful during
the activity.
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.