|

Glossary
Glossary for Software Reliability
This
glossary is intended for use by anyone involved with or interested
in software reliability, risk assessment and defect prediction.
It contains many common words and phrases frequently used in
the context of this specialized discipline of software engineering.
Reliametrics
makes no claim to the ownership of these definitions. In fact,
we have borrowed freely and extensively from many sources in
order to compile and consolidate these definitions. You are encouraged
to use the glossary in any way that helps you in the course of
your work.
We
also request you to help us in our efforts to continually improve
the value of this information. Please email to us any recommended
additions, corrections or modifications to definitions, as well
as information regarding other glossaries you feel are especially
relevant to the subject.
Availability (for software) The
probability that a system will be operative at any given instant
during a specified time period. The measure of the availability
combines reliability and time to restore service. The relevant
time domain must therefore be real time, and reliability must
be transformed to that domain if expressed relative to some other
such as execution time. Note that many software failures are
intermittent and recovery may be automatic, without significant
interruption of service. Therefore, time to recover is not the
same as time to repair, since repair may be done off-line.
Availability is the capability of the software
product to be in a state to perform a required function at a
given point in time, under stated conditions of use. Externally,
availability can be assessed by the proportion of total time
during which the software product is in an up state. Availability
is therefore a combination of maturity (which governs the frequency
of failure), fault tolerance and recoverability (which governs
the length of down time following each failure).
Bugs Problems that find their way into
programs and systems. The term "bugs" is generally
synonymous with other terms such as errors, defects, faults,
and failures. It originated in the 1950's when the late Admiral
Grace Hopper actually found an insect jamming the contacts of
an electromechanical switch. A bug can be any segment of software
or hardware that produces an undesired result.
Change Control An umbrella process that
enables a project team to accept, evaluate, and act on changes
in a systematic manner.
Cleanroom Software Engineering An engineering
and managerial process for the development of high-quality software
with certified reliability. Cleanroom was originally developed
by Dr. Harlan Mills. The name "Cleanroom" was taken
from the electronics industry, where a physical clean room exists
to prevent introduction of defects during hardware fabrication.
Cleanroom software engineering reflects the same emphasis on
defect prevention rather than defect removal, as well as certification
of reliability for the intended environment of use.
Common Cause Failure A failure which is
the result of an event(s) which because of dependencies, causes
a coincidence of failure states of components in two or more
separate channels of a redundancy system, leading to the defined
system failing to perform its intended function. (IEC 1508, 3.6)
Common Mode Failure A failure of apparently
independent components or communication links due to an initiating
event that affects them all.
Complexity A measure of how complicated
a section or unit (typically of code or design) is. It represents
how complex it is to understand (although this also involves
cognitive features of the person doing the understanding) and/or
how complex it is to execute the code (for instance, the computational
complexity). The complexity evaluation can be performed by considering
the computational complexity of the functional part of the system
-- i.e., the dominant instructions in the most iterative parts
of the system. The complexity may be also a measure of the amount
of memory used or the time spent in execution an algorithm.
Component Physical part of a subsystem
that can be used to compose larger systems. A reusable encapsulation
that is typically larger scale than an individual class. Components
can be bought and sold and are therefore real, not conceptual.
Any self-contained item or equipment that is part of a larger
item and contributes to the function performed by the larger
item.
Component Failure The failure of a component
of a larger item. This leads to a component fault and an internal
error, which may propagate and lead to a system failure unless
error recovery is performed.
Component Fault A fault in a component
of a larger item. This may lead to an internal error that may
propagate and lead to system failure unless error recovery is
performed.
Configuration Management A discipline
applying technical and administrative controls throughout the
life-cycle to: (i) identify and document physical and functional
characteristics of configuration items; (ii) limit changes to
characteristics of those configuration items; (iii) record and
report change processing and implementation of the system.
Cost of Measurement The cost (e.g., the
person month spent or the total cost) of the project part related
to system assessment performed by measuring software characteristics
with metrics.
Cost per Defect The average cost (i.e.,
effort in person/month) spent for correcting a defect in the
system. It is obtained by dividing the total cost for correcting
the defect by the number of defects corrected.
Cost of Failure A measure of the severity
of the consequences of failure. Depending on the type of system,
different scales may be used, such as duration of down time,
consequential cash loss, number of lives lost, etc. Cost of failure
to user must be distinguished from cost of maintenance to vendor.
Cost/Benefits Analysis The analysis of
benefits and costs related to the implementation of a project
or product.
Coverage A measure of achieving a complete
assessment. In the situation of test coverage, an assessment
of 100% coverage is achieved when every one of the types of tests
specified in the software test plan has been observed, e.g. 100%
decision coverage occurs when every decision has been executed
within the software.
Coverage Analysis An analysis of the degree(s)
of coverage assessed and the sum of the coverage's used, i.e.
analysis of whether 50% decision coverage and 10% path coverage
is rigorous enough for the integrity level.
Critical Failure A failure that is assessed
as likely to result in injury to persons, significant material
damage or other unacceptable consequences. Precisely which failure
modes are critical will obviously depend on the type of system.
Criticality Classification of the consequences,
or likely consequences, of a failure mode, or classification
of the importance of a component for the required service of
an item. Synonymous with severity.
Cumulative Defect Removal Efficiency Sum
of all the defects found by all available methods (review, testing,
etc) before delivery to the customer.
Cyclomatic Complexity A measure of the
complexity of a module's decision structure. Cyclomatic complexity
is a widely used member of a class of static software metrics.
Cyclomatic complexity may be considered a broad measure of soundness
and confidence for a program. Introduced by Thomas McCabe in
1976, it measures the number of linearly-independent paths through
a program module. This measure provides a single ordinal number
that can be compared to the complexity of other programs. Cyclomatic
complexity is often referred to simply as program complexity,
or as McCabe's complexity.
Dead Code Dead code is non-functional
code (1) unintentionally included in the baseline, (2) left in
the system from an original software configuration, not erased
or overwritten, and left functional after a new program is loaded
in, over, or around it, or (3) deactivated code not tested for
the current configuration and environment.
Debug With software, to detect, locate,
and correct logical or syntactical errors in a computer program.
To attempt to determine the cause of the symptoms of malfunctions
detected by testing or by user complaints. The process of locating
and eliminating errors that have been shown, directly or by inference,
to exist in software.
Debugger A program designed to help in
debugging another program by allowing the programmer to step
through the program, examine data, and check conditions. There
are two basic types of debuggers: machine-level and source-level.
Machine-level debuggers display the actual machine instructions
(disassembled into Assembly language) and allow the programmer
to look at registers and memory locations. Source-level debuggers
let the programmer look at the original source code (C for example),
examine variables and data structures by name, and so on.
Defect Non-fulfillment of an intended
usage requirement or reasonable expectation, including one concerned
with safety. A non-conformance between the input products and
the output products of a system development phase. The main purpose
of verification activities (e.g., inspection) is to detect defects
so that they can be corrected before subsequent development phases.
If not detected and corrected during development, defects may
give rise to one or more faults in the delivered system, and
hence to failure in operation. Some defects (e.g., inappropriate
comments in source code) cannot give rise to faults, but may
adversely affect maintainability or other quality characteristics.
A failure observed by a customer, client, or user.
Defect Potential The potential number
of defects that can be encountered during the entire life cycle.
Defect Prevention The set of technologies
that minimize the risk of human error by software staffs.
Defect Removal The action performed to
remove defects in software. This process is a part of the software
maintenance process.
Defect Severity The relative impact of
a defect on the software use.
Defects Count The number of defects identified
in a system or sub-system in a given period.
Dependability Collective term used to
describe the availability performance and its influencing factors:
reliability performance, maintainability performance and maintenance
support performance. Dependability is described in terms of several
external attributes of a system: safety, security, usability,
maintainability, recoverability, availability, and extendibility.
Dependability is used only for general descriptions in non-quantitative
terms. No single measure can be defined for dependability. The
importance of the different attributes, and hence the target
values for the corresponding measures, depend on the type of
system. Synonyms with reliability.
Design Fault A fault caused by inadequate
design of an item. A design fault is caused by human error during
system development. Design faults in software are usually latent,
transient, recurrent, and systematic. Design faults give rise
to failure during operation when activated by a certain combination
of conditions referred to as the trigger. Since these conditions
are encountered at random during operation, design failures can
appear to be random events.
Design Review The process in which the
design is presented to project personnel: managers, developers,
users, etc. for discussion and approval.
Development Process The process by means
of which the software is developed from its requirement analysis
to the final product. It typically includes requirement definition,
analysis, design, coding, assessing, risk evaluating, testing
software, etc. The process of development is structured on the
basis of a specific life-cycle (spiral, waterfall, rapid prototyping)
that states the evolution of the phases of the development process
and the rules that have to be followed for the development process.
Dynamic Analysis Defect removal method
where defects are found during execution of the software. Opposed
with static analysis.
Emulator A combination of computer program
and hardware that mimic the instruction and execution of another
computer or system. (MCCR).
Error In software, an error is usually
a programmer action or omission that results in a fault.
Mistake in engineering, requirement specification, or design.
Mistake in design, implementation or operation which could cause
a failure. The cause of an error is a fault.
An incorrect internal state of a system,
due to a component failure or an external failure. Unless redundancy
or fault tolerant design enables a successful error recovery
to be performed, a system failure may result. An error can be
caused by a faulty item, e.g., a computing error made by faulty
computer equipment.
Error-Prone Module A module in a software
system containing a lot of errors. At first glance, one might
think that errors are normally distributed of a software system.
Empirical research has pointed out that on the average 50% of
the errors are located in about 3% of the modules.
Execution Time A measure of the execution
time spent by a software item. The measure chosen will depend
on the type of system. Generally, it will not be equivalent to
real time. Possible measures are processor time consumed, number
of instructions executed, etc.
Failure The termination of the ability
of a system element to perform a required function. (Note: hardware
can fail but software can only have faults.) (ISO 2382, IEEE
729). The lack of correct performance. The cause of a failure
is an error. A failure that is observed by a customer, client,
or user is a defect.
The inability of a computer system to perform
its functional requirements, or the departure of software from
its intended behavior as specified in the requirements. Failure
can also be considered to be the event when either of these occurs,
as distinguished from "fault" which is a state. A failure
is an event in time. A failure may be due to a physical failure
of a hardware component, to activation of a latent design fault,
or to an external failure. Following a failure, an item may recover
and resume its required service after a break, partially recover
and continue to provide some of its required functions (fail
degraded) or it may remain down (complete failure) until repaired.
Failure Intensity Also known as Failure
Rate. The rate of failure of a system. The instantaneous failure
intensity is the approximate failure rate at a given point in
time (failure intensity is assumed to be a continuous function)
while the overall failure intensity typically reflects the number
of failures over some elapsed interval divided by the length
of the interval. If the failure intensity varies (non-constant),
then the failures are said to come from a non-homogenous process
(often assumed to be Poisson).
Failure Rate The number of failures of
a specified category in a given period in a given number of computer
runs, or in some other given rate of measure. The hardware and
software failure rate of a system or component varies during
its lifetime. For hardware systems, the usual scenario is that
the rate decreases at first as problems are detected and repaired
and finally increases at the end-of-life due to deterioration.
Between these two periods the rate usually remains steady. For
software systems, the rate may initially go up or down depending
on exposure rates, patching/repair rates and fault avoidance
but then decreasing steadily over time as patching/repair and
fault avoidance continue past the exposure saturation point.
Failure Severity The seriousness of the
effect of a failure. This may be measured on an ordinal scale
(e.g., classification as major, minor or negligible) or on a
ratio scale (e.g., cost of recovery, length of down-time). This
value may depend also on the frequency of the error.
Fault (also Software Fault) A fault is
a software defect that causes a failure. The state of an item
characterized by inability to perform a required function, excluding
the inability during preventive maintenance or other planned
actions, or due to lack of external resources. A fault is often
the result of a failure of the item itself, but may exist without
prior failure.
(1) A condition that causes a device or
system component to fail to perform in a required manner. (2)
A defect which may cause a failure under some set of conditions.
(3) Hardware: An accidental condition that causes a functional
unit to fail to perform its required function. (4) Software:
A manifestation of a mistake in acquisition, specification, design
or implementation. A cause of an error in software. Can be synonymous
with "bug". A fault, if encountered or detected, results
in an error. NOTE: (IEC 1508) (1)
(1) From the above definitions it can be
seen that TfaultIerrorIfailureU are part of a chain; (faultIerrorIfailure/faultIerrorIfailure/faultIerrorI).
(2) The definitions of fault, error, failure have to be seen
in the context of the system. The definitions above refer to
one level of the hierarchical system decomposition. An error
is thus the manifestation of a fault in the system, and a failure
is the effect of an error in service. The failure of a system
component can be considered in two different ways depending on
the hierarchical level from which it is seen. If the component
itself is seen as a system (lower level view) this failure is
the result of an internal erroneous state caused by a fault within
the component. On the next higher level the failure of the component
is a fault possibly resulting in erroneous states and a failure
of the next system level. (3) At first sight the definitions
of fault. Error, failure in this international standard seem
to deviate from the definitions given I IEC 50 (IEV).
The reason for using these different definitions
lies in the fact that they refer to a clear hierarchical concept
of system structure. The relationship to the definitions given
in IEC 50 (IEV) may be established by recognizing that the term
RitemS, used in IEC 50 (IEV), refers to a component of the system
without regard to the level of system decomposition from which
it is seen. This means that the failure of an item corresponds
to the view of where this component is seen as a failing (sub)system.
Afterwardsm if viewed from the next higher system level, this
component, or item, is faulty.
Fault Avoidance The use of techniques
and procedures which aim to avoid the introduction of faults
during any phase of the lifecycle and therefore avoiding faults
in the safety-related system. (Adapted from IEC 1508, 3.22)
Fault Density Defined as the number of
faults compared to the volume of the software work product. This
volume for software is often expressed in terms of Lines of Code,
Number of Statements, or Function points, but other measures
or volume may be appropriate given the stage of development.
For example, Faults per number of pages may be appropriate when
discussing fault density of a software design document.
Fault Exposure Ratio The probability that
a fault will cause a failure. This may (and often does) vary
from fault to fault. Alternatively, it may be viewed as an overall
probability regarding the number of faults that would be found
versus the number of faults that would still exist after a sequence
of fault removal or software exposure steps.
Fault Injection The process of purposely
or accidentally inserting or injecting a fault into a software
artifact. Faults may be injected on purpose to test fault tolerance
capabilities.
Fault Masking A condition in which the
occurrence of a fault is masked, often by another fault. Only
when the first fault is discovered and removed does the second
fault become apparent.
Fault-prone Component A software component
in which faults are often found, usually after a series of changes
or updates have been made to the component.
Fault Removal The act or process of removing
the fault. As faults are removed, reliability should generally
increase.
Fault Seeding A process in which faults
are purposely injected into the software so that an organization
can:
a) determine how efficient its fault removal processes are (efficiency
equals the number of seeded faults found versus the number of
seeded faults injected)
b) determine failure modes and effects, including the visibility
of failures in alarms and logs
c) test fault tolerance features
Fault Tolerance The designed and built-in
capability of a system, or system component, to provide continued
though perhaps degraded, functionality in the presence of generally
expected failures and special-case failures (such as providing
for graceful degradation or continued minimum safety)."
Fault-tree Analysis Analysis (often quantitative)
of a fault tree model in which minimal sets of component failures
which cause system failures (termed minimal cutsets) are enumerated
and studied. A fault tree model is a graphical representation
of the logical relationships between events, including failure
events. Quantitative analysis is used to determine the probability
of the "top" events given the probability of occurrence
for the basic events.
Formal Methods The use of mathematical
techniques in design and analysis. (from Formal Methods and the
Certification of Critical Systems by John Rushby, Technical Report
CSL-93-7 December 1993) System - The use of mathematical techniques
in the design and analysis of the system). Hardware - The use
of mathematical techniques in the design and analysis of a component.
Software - The use of discrete mathematical techniques in the
design and analysis of software components and systems.
A software specification and production
method, based on a precise mathematical syntax and semantics,
that comprises: a collection of mathematical notations addressing
the specification, design and development phases of software
production; a well-founded logical inference system in which
formal verification proofs and proofs of other properties can
be formulated; and a methodological framework within which software
may be developed from the specification in a formally verifiable
manner. Formal methods can be operational denotational or dual
(hybrid).
Formal Verification(for software) The
process of evaluating the products of a given phase using formal
mathematical proofs to ensure correctness and consistency with
respect to the products and standards provided as input to that
phase (ISO 9000-3, 3.6 applied)
FMECA (Failure Mode Effects and Criticality Analysis)
A design review process that examines the ways and likelihood
that a system can fail, the severity and effects on the mission,
and the ability to detect, isolate and recover from the fault.
While the roots of FMECA are in hardware design and defect analysis,
it can be effectively applied to software and processes, as well.
Various industries have their own standards.
Aerospace and defense companies generally use either the MIL-STD-1629
FMECA standard (the C in FMECA represents the Criticality calculation)
or the SAE ARP5580 FMEA standard. Automotive suppliers use SAE
J1739, or the Automotive Industry Action Group (AIAG), Daimler-Chrysler,
Ford, and GM FMEA methodologies. Other industries generally adopt
one of these standards, sometimes customizing them to meet their
own requirements.
Goel-Okumoto Model A particular software
reliability growth model that assumes that the failure/fault
discovery events behave according to a non-homogeneous Poisson
process where the rate is a decaying exponential function with
respect to execution time. The cumulative expected number is
exponential (with asymptote) with respect to time
Growth Models (for software reliability)
Any of a class of models (most assume a non-homogeneous Poisson
process for the distribution of interfailure times) where the
failure intensity will tend to decrease asymptotically with respect
to time (that is, the successive interfailure times will tend
to become larger), thus reflecting an eventual monotonic increase
or growth in reliability.
Halstead Complexity Measures Halstead
complexity measurement was developed to measure a program module's
complexity directly from source code, with emphasis on computational
complexity. The measures were developed by the late Maurice Halstead
as a means of determining a quantitative measure of complexity
directly from the operators and operands in the module. Among
the earliest software metrics, they are strong indicators of
code complexity.
Hazard A condition that is prerequisite
to a mishap/accident (882C)
A state of an item which, in conjunction with certain environmental
conditions, could lead to an accident. A physical situation,
often following from some initiating event, that can lead to
an accident.
Hazard Probability The aggregate probability
of occurrence of the individual events that create a specific
hazard (882C).
Probability of a system getting into a hazardous state within
a given time interval under given conditions. It is assumed that
the system is not in a hazardous state at the start of the interval.
Hazard Severity An assessment of the consequences
of the worst credible mishap that could be caused by a specific
hazard (882C).
Impact Analysis Impact Analysis is the
activity aimed at determining the impact of a change before its
actual implementation, in order to anticipate the extent of its
effects, and thus the associated risk and cost.
Incident An event during operation of
an item that may indicate that a failure has occurred. The true
nature of an incident may not become apparent until after diagnosis.
Some incidents will turn out to be due to mistaken observation.
Others will turn out to be "genuine" and relevant to
the measurement of one or more dependability attributes.
Independent Verification & Validation (IV&V)
Confirmation by independent examination and provision of objective
evidence that specified requirements have been fulfilled (ISO
8402, 2.17), and that the particular requirements for a specific
intended use are fulfilled (ISO 8402, 2.18).
Instantaneous Failure Rate -(See Failure Intensity)
Interfailure Times Times between failures
of a system, often assumed to be exponentially distributed.
Invalid Defect A defect that looks like
a defect in some software product but in reality it is not a
defect. Either it is not a defect, or it is a defect in some
other software product. It is common to receive about 15% of
invalid defects for software vendors. Possible causes are user
errors, hardware errors, and errors in other products.
Life-Cycle All the steps or phases an
item passes through during its useful life. The life may include:
problem identification, requirements engineering, analysis, design,
implementation, testing, assessment, risk analysis, maintenance,
etc.
Log Poisson Model A particular software
reliability growth model that assumes that the failure/fault
discovery events behave according to a non-homogeneous Poisson
process where the rate is inversely proportional with respect
to execution time. The cumulative expected number is logarithmic
with respect to time, thus the name. This model is also known
as the Musa-Okumoto execution time model.
Latent Fault An existing fault that has
not yet been recognized. A fault that is present in a part of
a system but has not yet contributed to a system failure.
Maintainability The maintainability of
software is the ease with which it can be understood, corrected,
adapted, and/or enhanced.
Modification may include corrections, improvements or adaptation
of software to changes in the environment, and in requirements
and functional specifications. Maintainability is defined as
the effort to perform maintenance tasks, the impact domain of
the maintenance actions, and the error rate caused by those actions.
The probability that an item can be retained
in or restored to specified condition when maintenance is performed
by personnel having specified skill levels, using prescribed
procedures, resources and equipment at each prescribed level
of maintenance and repair (MCCR). Maintainability can be stated
as a performance or a measure. (BS4778)
Maintenance An important part of the software
life-cycle. Maintenance is expensive in manpower and resources,
and software engineering aims to reduce its cost. Maintenance
activities include: Perfective maintenance - Changes which improve
the system in some way without changing its functionality; Adaptive
maintenance - Maintenance which is required because of changes
in the environment of a program; Corrective maintenance - The
correction of previously undiscovered system errors.
Actions performed by personnel having specified
skill levels, using prescribed procedures, resources and equipment
at a prescribed level of repair, scheduled or reactive, to return
the system to within specified limits of operation.
Major Defect The relevant defect resulted
in the failure of a software system or component that leads it
to non operative conditions.
Markov Model for Software A Markov Model
consists of system states and transitions from one state to another.
A system state represents a combination of both operational and
failed components in the system. The system stays in a state
for a random time, defined by an exponential distribution, and
then goes into another state. A transition from one state to
another state is characterized by a transition rate. A Markov
model can be solved mathematically to obtain reliability and
availability measures. For example, the expected proportion of
time that the system spends in the failure states, which is called
the system unavailability, can be calculated.
Maturity The capability of the software
product to avoid failure as a result of faults in the software.
Attributes of software that bear on the frequency of failure
by faults in the software.
Maturity Level Refers to the 5 Levels
of maturity in the Software Engineering Institute - Capability
Maturity Model.
Mean-Time-Between-Failures (MTBF) MTBF
is the average time (usually expressed in hours) that a component
works without failure. It is calculated by dividing the total
number of failures by the total number of operating hours observed.
Thus, the term is related to the time a user may reasonably expect
a device or system to work before an incapacitating fault occurs.
The total cumulative functioning time of
a population divided by the number of failures. As with failure
rate the same applies to observed, assessed and extrapolated
MTBF. MTBF is used for items which involve repair. Mean Time
to Failure (MTTF) is used for items with no repair. (TNO)
Mean-Time-To-Failure (MTTF) The mean time
elapsed until a failure occurs.
Mean-Time-To-Repair (MTTR) The mean time
to carry out a defined maintenance action. Usually refers to
corrective maintenance. (TNO)
The mean time that a device will take to
recover from a non-terminal failure. The MTTR is usually part
of a maintenance contract, where the user would pay more for
a system whose MTTR was 24 hours, than for one of, say, 7 days.
This means the supplier is guaranteeing to have the system up
and running again within 24 hours (or 7 days). Fault tolerant
devices have a MTTR of zero.
Mean-Value Function The expected value
function of a Poisson process, that is a process where the interarrival
times for the events are exponentially distributed. Each event
increment the process by 1, thus the mean-value function is the
expected number of events by time t.
Metric The defined measurement method
with its measurement scale. Metrics can be internal or external,
and direct or indirect. Metrics include methods for categorizing
qualitative data. Synonymous with measure. A quantitative measure
of the degree to which a system, component, or process possesses
a given attribute.
Minor Defect The defect does not cause
a failure, does not impair usability, and the desired processing
results are easily obtained by working around the defect.
Mishap An undesirable consequence of system
failure, whose cost, whether economic, ecological, or in terms
of injury or loss of life, is unacceptable. In some cases, it
is a synonymous malign failure or accident.
Module A self-contained software item
with a specified function and a defined interface to the rest
of the system. The concept is hierarchical: big modules may consist
of composition of little modules, and a complete program may
be thought of as a module of a larger system. The term is also
applied to a self-contained hardware component or to one consisting
of hardware and software. In programming languages, a module
is a piece of code that can be separately compilable.
Musa-Okumoto model (See Log Poisson model)
Mutation Testing A technique for which
two or more program mutations are executed and tested in order
to detect if the used test cases are capable of detecting mutations.
N-Version Software Software developed
and tested to fulfill a set of requirements where multiple versions
of software are intentionally made independent and different.
Differences can be in some or all of: specifications, design,
use of language, algorithms, data structures, etc.
Operational Profile A characterization
of the conditions of use of a system. The term is generally applied
to software. The profile can sometimes be defined by a partitioning
of the input space and estimate of the probability of encountering
an input from each feature. A system trial must therefore be
performed using a realistic operational profile. Definition of
conditions of use is essential for measurement of reliability
(and some other dependability attributes), since a system will
generally exhibit different reliabilities under different conditions.
Usage is synonymous.
Orthogonal Defect Classification A scheme
for classifying software defects detected throughout the development
cycle that provides feedback about a process stage based on the
defects associated with that stage. Each defect is classified
across multiple dimensions or attributes, such as defect type,
defect trigger, impact, and source code type, that contain orthogonal
or independent values.
Outage An event which causes the state
of a system to be unavailable to some or all of its potential
users. A failure that denies availability for a period of time
to a class of customers.
Patch A change to machine code (object
code) representation of a computer program that bypasses the
compiler (MCCR).
Physical Fault A fault which is the result
of a physical failure.
Predicted Quality Software quality that
is estimated and predicted for the end software product quality
at each stage of development, and which is based on fundamental
design quality and intermediate product quality.
Process Assessment A disciplined examination
of the processes used by an organization against a set of criteria
to determine the capability of those processes to perform within
quality, cost and schedule goals by characterizing current practice
and identifying strengths and weaknesses.
Product A package of software or hardware,
providing functionality designed for use or incorporation within
a multiplicity of systems. (ITSEC 91)
A product is broader than a system. It incorporates all components
that the producer uses, and all the items delivered to customers.
Documentation and confidential source code, for instance, is
part of the product but not part of the system. Result of activities
or processes. Product may include service, hardware, processed
materials, software, or combination thereof.
A product can be tangible (e.g., assemblies
or processed materials) or intangible (e.g., information or concepts),
or a combination thereof. Product can be either intended (e.g.,
offering to customers) or unintended (e.g., pollutant or unwanted
effects). Examples of software products are also: specifications,
test reports, executable object code, user manuals, and support
documentation. Something that has value and is generated by a
manufacturing or development process.
Product Liability Generic term used to
describe the onus on a producer or others to make restitution
for loss related to personal injury, property damage or other
harm caused by a product (ISO 8402).
Project Manager The leader of the project.
He/she has the responsibility to: (i) control but facilitating
the information flow among teams; (ii) to ensure that the project
program, milestones and time scales are maintained and deviations
resolved and recorded with change control; (iii) managing related
documentation; (iv) maintaining relationships between partners;
(v) control the behavior of project against the planned activities;
(vi) communicate progress; (vii) establishing external relationships
according to the dissemination activity; (viii) controlling quality
of all activities and deliverables via specific tools; (ix) administrations,
e.g., collection of cost statements on a timely basis, collection
of information for EC management and progress reports on a timely
basis; (x) act as a link between this project and other related
projects; (xi) arrange for the preparation of necessary project
review documentation, etc.
Quality The totality of features and characteristics
of a product or service that bear on its ability to satisfy stated
or implied needs. Not to be exchanged with the "degree of
excellence" or "fitness for use" that meet only
partially the definition. Software quality is defined in the
ISO 9126 norm series. Software quality includes: functionality,
reliability, usability, efficiency, maintainability, portability.
The quality of a system is the evaluation of the extent to which
the system meets the above mentioned features. The response of
the system to these features is called the estimated quality
profile. Quality should not be used as a single term to express
a degree of excellence in a comparative sense nor should it be
used in a quantitative sense for technical evaluations. To express
these meanings, a qualifying adjective shall be used. For example,
use can be made of the following terms: "relative quality"
where entities are ranked on a relative basis in the "degree
of excellence" or " comparative sense" (not to
be confused with grade); "quality level" in a "quantitative
sense" (as used in acceptance sampling) and "quality
measure" where precise technical evaluations are carried
out.
Quality Evaluation Systematic examination
of the extent to which an entity is capable of fulfilling specified
requirements (ISO 8402, 4.6).
A quality evaluation may be used to determine
supplier quality capability. In this case, depending on specific
circumstances, the result of quality evaluation may be used for
qualification, approval, registration, certification or accreditation
purposes.
An additional qualifier may be used with
the term quality evaluation depending on the scope (e.g., process,
personnel, system) and timing (e.g. pre-contract) of the quality
evaluation such as "pre-contract process quality evaluation".
An overall supplier quality evaluation also may include an appraisal
of financial and technical resources.
Quality evaluation is sometimes called
"quality assessment", "quality appraisal",
or "quality survey" in specific circumstances.
The process of measurement, rating and
assessment of quality attributes for an evaluation item to determine
if the specified software quality characteristics are fulfilled.
Random Failures Failures that result from
a variety of degradation mechanisms in the hardware. Unlike failures
arising from systematic failures, system failure rates arising
from random hardware failures can be quantified with reasonable
accuracy.
A sub-class of systematic failures, while
occurring at random times, which result from a variety of degradation
mechanisms at a predictable rate. (Derived from IEC 1508, 3.45)
NOTE: (1) There are many degradation mechanisms occurring at
different rates at different times in operation, failures of
a total equipment comprising many components occur at predictable
rates but at unpredictable times. (2) A major distinguishing
feature between random hardware failures and systematic failures
(See also Systematic Failures) is that systematic failure rates
(or other appropriate measure), arising from random hardware
failures, can be predicted with reasonable accuracy but systematic
failures, by their very nature, cannot be quantified with reasonable
accuracy but those arising from systematic failures cannot be
accurately quantified.
Regression Testing The test that is performed
on a system when it has been produced in a new version/release.
The regression testing has to verify: (i) all the already tested
functionalists that were correct and available in the previous
version are also present in the new version without any problems,
(ii) that the problems solved in the new version have been effectively
solved without causing second level problems. The regression
testing is very important in order to verify if the new release
has solved the problems without adding at the same time new problems.
Relevant Failure A failure that should
be included in interpreting test or operational results or in
calculating the value of a reliability performance measure.
Reliability The probability of a given
system or component to perform its required functions under stated
conditions for a specified period of time (or cycles). The reliability
of a system is generally measured using operating time as the
time domain, i.e., as the probability of non-failure in a given
period of time during which the item is actually operating. For
calculating the probability of failure over real time, operating
time or execution time must be transformed into real time taking
into account the frequency of use of the item, simultaneous operation
of multiple copies, etc.
Limitations in reliability are caused by
faults in requirements, design, and implementation. Failures
due to these faults depend on the way the software product is
used and the program options selected rather than on elapsed
time.
Risk A measure of the severity and likelihood
of an accident or mishap. The probability that a specific threat
will exploit a particular vulnerability of the system. A measure
of the cost of operating a system, derived by combining hazard
probability, danger, and severity of mishap.
Risk is defined as the possibility of loss
or injury. Risk exposure is defined by the relationship RE =
P(UO) * L(UO) Where RE is the risk exposure, P(UO) is the probability
of an unsatisfactory outcome, and P(LO) is the loss to the parties
affected by if the outcome is unsatisfactory. Examples of unsatisfactory
outcome include schedule slips, budget overruns, wrong functionality,
compromised non-functional requirements, user-interface shortfalls
and poor quality.
Safety State in which the risk of harm
(to persons) or damage is limited to an acceptable level (ISO
8402). Freedom from those conditions that can cause death, injury,
or occupational illness, or damage to or loss of equipment or
property, or damage to the environment (882C).
The ability of a system to operate without
unacceptable risk in accordance with its requirements in a consistent
and predictable manner for a given time in a given environment
without mishap. For system safety, all causes of failures which
lead to an unsafe state shall be included; hardware failures,
software failures, failures due to electrical interference, due
to human interaction and failures in the controlled object. The
system safety also depends on many factors which cannot be quantified
but can only be considered qualitatively.
Safety-Critical A term applied to a condition,
event, operation, process, object, function or system whose proper
recognition, control, performance or tolerance is essential to
safe system operation or use; e.g., safety critical function,
safety critical path, safety critical component (882C). A system
whose failure may cause injury or death to human beings (e.g.
an aircraft or nuclear power station control system). Common
tools used in the design of safety-critical systems are redundancy
and formal methods.
Security Attributes of software that bear
on its ability to prevent unauthorized access, whether accidental
or deliberate, to programs and data. The ability of a system
to deliver its required service and data under given conditions
without unauthorized access.
The in-built resistance of a system to
deliberate attempts to influence its operation in an undesired
way, including release of information. (CORD)
Sensitivity A measurement of responsiveness
to or recording slight changes to externally or internally sensed
parameters.
Software Defect A software defect is a
perceived departure in a software product from its intended properties,
which if not rectified, would under certain conditions contribute
to a software system failure (departure from required system
behavior during operational use).
Software Failure System failure due to
the activation of a design fault in a software component. All
software failures are design failures, since software consists
solely of design, and does not wear out or suffer from physical
failure.
Software Fault A design fault located
in a software component. (see Fault)
Software Quality The totality of features
and characteristics of a software product that bear on its ability
to satisfy stated or implied needs, including internal and external
aspects and contributing on functionality, reliability, usability,
efficiency, maintainability, portability of the system under
development.
Software Reliability The measurement of,
prediction of, or improvement to the duration or probability
of failure-free performance under stated conditions.
Software Reliability Measurement (Estimation and Prediction)
Estimation - To determine the previous and current software reliability
by applying statistical inference techniques to failure data
obtained during system test or operation.
Prediction - To determine (or estimate) the probable future software
reliability based on available software metrics and measures.
When failure data are available, estimation techniques that use
models based on this and related data are called reliability
predictions. When failure data are unavailable or not yet available,
and the estimation techniques are based on measurement of the
software process of characteristics of the product, the estimation
technique is called early prediction. (Handbook of Software Reliability
Engineering, McGraw-Hill)
Software Testing Software testing is the
process of examining the behavior of a program or part of a program
by executing it on selected or exhaustive sets of input data.
Testing is performed to discover defects in a program. Testing
is not the process of confirming that a program is correct, nor
is it a demonstration that defects are not present.
Stability Attributes of software that
bear on the risk of unexpected effects of modifications. The
capability of the software product to avoid unexpected effects
from modifications of the software.
Static Analysis The analysis of a system
or component directly performed on the code and documentation
without compiling it.
Statistical Usage Testing Software testing
that is viewed as a statistical experiment. A subset of all possible
uses of the software is generated,
and performance on the subset is used as a basis for conclusions
about general operational performance. In standard experimental
parlance, a "sample" is used to draw conclusions about
a "population."
In statistical testing:
(1) expected operational use is represented in a usage model
of the software,
(2) test cases are randomly generated from the usage model and
executed in an environment that simulates the operational
environment, and
(3) failure data are interpreted according to mathematical and
statistical models.
Stress Testing Test by applying a high
load.
A performance testing in which the test cases are oriented in
stressing the functionalities of the system.
System Test and Evaluation Process A process
that plans, develops, and documents the quantitative demonstration
of the fulfillment of all baseline functional performance, operational,
and interface requirements.
Test Case A set of test inputs, conditions
for execution, and expected outputs with the aim of testing a
particular part of the system or particular functionalities or
particular requirements.
Testing The process of executing a series
of test cases and evaluating the results. Operating a system
(possibly under unrealistic conditions of use) in order to detect
faults. See debug, and software testing.
Test Procedure (1) Specified way to perform
a test (ISO 8402, 1.3 procedure). (2) Detailed instructions for
the set-up and execution of a given set of test cases, and instructions
for the evaluation of results of executing the test cases. (RTCA/DO-178B)
Time May denote either real time (also
referred to as elapsed, calendar or wall-clock time) or execution
time.
Traceability Ability to trace the history,
application or location of an entity by means of recorded identifications
(ISO 8402, 3.16). One of three main meanings: (a) In a product
sense it may relate to (1) the origin of materials and parts,
(2) the product processing history and (3) the distribution and
location of the product after delivery. (b) In a calibration
sense, it relates to measuring equipment to national or international
standards, primary standards, basic physical constants or properties,
or reference materials. (c) in a data-collection sense, it relates
calculations and data generated throughout the quality loop sometimes
back to the requirements for quality for an entity (ISO 8402,
3.16 Notes). All aspects of traceability requirements, if any,
should be clearly specified, for example, in terms of periods
of time, point of origin or identification.
The property that allows to trace a features
or and error along a system or process. For example, it can be
useful to trace, the requirements along the development life-cycle,
the errors along the system structure, the messages along the
communication channel, the email along the network.
Undetectable failures A failure which
cannot be detected using a stated device or function in a stated
environment. For example, a failure may not be detectable using
on-line systems, devices, or functions yet has been demonstrated
to be detectable using special external test equipment. In the
context of normal operations the failure is undetectable. (Derived
from -882 and IEC 1508 3.74 and other standards) NOTE: Other
names used in the past for undetectable failure include: covert
failure, unrevealed failure, latent failure, hidden failure,
or dormant failure.
Unit Test Part of the testing strategy
that focuses on tests to individual program components.
Validation Steps taken to ensure that
the output products of any development phase correctly implement
the input products. Confirmation by examination and provision
of objective evidence that specified requirements have been fulfilled.
In design and development, verification concerns the process
of examining the result of a given activity to determine conformity
with the stated requirement for that activity. It answers the
question: "Are we building the system right?"
The verification includes activities such
as inspection, proof of correctness, static analysis, etc. It
may includes the act of reviewing, inspecting, testing, checking,
auditing, comparing or otherwise establishing and documenting
whether items, processes, services, or documents conform to specified
requirements. It also includes the formal proof of program correctness.
(1) Confirmation by examination and provision
of objective evidence that the particular requirements for a
specific use are fulfilled (ISO 8402, 2.18). (for software) The
process of evaluating software to ensure compliance with specified
requirements (ISO 9000-3, 3.7). (2) The process of determining
whether the system operates correctly and executes the correct
functions.
Verification and Validation (V&V)
The process of verification and validation. In some cases, with
some techniques the distinction of the boundary between these
formal activities is blurred.
(1) Confirmation by examination and provision
of objective evidence that specified requirements have been fulfilled
(ISO 8402, 2.17). (for software) The process of evaluating the
products of a given phase to ensure correctness and consistency
with respect to the products and standards provided as input
to that phase (ISO 9000-3, 3.6) (2) The process of evaluating
the products of a given phase to determine the correctness and
consistency of those products with respect to the products and
standards provided as input to that phase. |