The
Software Process
Client,
Developer, and User
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Client - the
individual or organization who wants a product to be developed. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Developers -
the members of the organization responsible for building that product |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Software development
- all aspects of software production before the product enters the maintenance
phase. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Internal software development
- the client and developers are part of the same organization |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Contract software -
the client and development are two totally independent organizations. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
User - person
or persons on whose behalf the client has commissioned the product and
who will utilize the software. |
Requirements
Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Client outlines the product as he or she conceptualizes
it. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Sometimes called concept
exploration. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Emphasis needs to be on what the client needs
as opposed to what the client wants. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Client may not truly understand what is going
on in his own organization - doesn't really know what to ask for. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
complexity of software - client may not be
computer literate enough |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Task of the developers is to determine what
it is that the client needs and to find out from the client what constraints
exist |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
typical constraints are cost and deadline |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
other constraints |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
reliability |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
size of the object code |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Rapid prototyping can help |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
A rapid prototype is a piece of software rapidly
put together that incorporates much of the functionality of the target
product but omits those aspects generally invisible to the client, such
as file updating or error handling. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
User can interact with it to determine if
it meets needs |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Can be changed until client and users are
satisfied that it encapsulates the functionality desired. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Requirements Phase Testing |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
SQA-
Software
Quality Assurance Group |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
primary responsibility
is to ensure that the delivered product is what the client ordered and
has been correctly built in every way. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
verifies with the client
that the final version of the rapid prototype is totally satisfactory. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
moving target problem
- client changes the requirements during the development |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Quality
of software is the extent to which it meets its specifications. |
Specification
Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Specification document explicitly describes
the functionality of the product - precisely what the product is
supposed to do, and lists any constraints that the product must satisfy. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Includes inputs to the product and the required
outputs. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Constitutes a contract. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
should not include imprecise terms. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
should always be written as if it will be
used as evidence at a trial. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Difficulties that can arise: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Specs may be ambiguous |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Specs may be incomplete |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
example: does not include what to do if input
has errors |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Specs may be contradictory |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
SPMP (Software Project Management Plan) must
be drawn up |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
reflects the separate phases of the development
process and shows which members of the organization are involved in each
task, as well as the deadlines for completing each task. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Major components of the plan: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
deliverables (what the client is going to
get) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
milestones (when the client gets them) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
budget (how much it is going to cost) |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Plan describes the process in fullest detail: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
life cycle model to be used |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
organizational structure of the development
organization |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
project responsibilities |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
managerial objectives and priorities |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
techniques and CASE tools to be used |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
detailed schedules, budgets, and resource
allocations |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Duration and cost estimates |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Specification Phase Testing |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
SQA group must carefully test the specifications,
looking for contradictions, ambiguities, and any signs of incompleteness. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
must ensure that the specifications are feasible |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
examples: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
specified hardware component is fast enough |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
current online disk storage capacity is adequate |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Specification document must have traceability. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Must be possible to
trace every statement in the specification document back to a statement
made in the requirements phase. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Reviews: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
walkthroughs and inspections |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
representatives of the
specification team and of the client are present |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
meeting is usually chaired
by a member of the SQA group |
Design
Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Determines how the product is to do
what it is supposed to do. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Algorithms are selected and data structures
chosen. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Internal data flows are determined. (Inputs
and outputs have already been laid down in the specifications) |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Product is decomposed into modules. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
what module has to do and how |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
module interfaces (arguments passed to and
returned by the module) |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Careful record is kept of the design decisions
being made. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Document the designs that don't work
as well as the ones that do. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Major output from the design phase: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Architectural design |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
a description of the product in terms of its
modules |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Detailed design |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
a description of each module |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Design Phase Testing |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Traceability
- critical that every part
of the design should be linked to a statement in the specification document. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Design reviews are similar to specification
reviews, except that the client is not usually present. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
members of the design team and the SQA group
review the design. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
faults to look for include: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
logic faults |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
interface faults |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
lack of exception handling (processing of
error conditions) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
nonconformance to the specifications |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
should also look for possible overlooked specification
faults |
Implementation
Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Component modules of the design are coded. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Documentation includes: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
the source code itself, including comments |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
all the test cases, the expected results,
and the actual output |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Implementation Phase Testing |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Testing done by the
programmer |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
modules are tested while
they are being implemented - Desk checking |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
then modules are run
against test cases |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Code Review |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
programmer guides the
review team through the listing of the modules |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
review team must include
an SQA representative |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
review is similar to
reviews of specifications and designs |
Integration
Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Combine the modules
and determine whether the product as a whole functions correctly. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Implementation and Integration
should be performed in parallel. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Integration Phase
Testing |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Module interfaces should
be tested |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
number, order, and types
of formal arguments should match the number, order, and types of actual
arguments |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
checking best done by
a compiler and linker, but if it is not a strongly typed language, the
SQA group does this. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
SQA group then performs
product
testing. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
The functionality of
the product as a whole is checked against the specifications. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
constraints must be
tested. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
product checked for
robustness |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
check that source code
and all other types of documentation are consistent. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Acceptance testing |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Testing is done by the
client with actual data as opposed to test data. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Alpha and Beta Testing |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
done by manufacturers
of shrink-wrapped software, or COTS (commercial off-the-shelf software) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
should not replace testing
by the Software Quality Assurance Group |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Alpha testing - company
gets to test product on site |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Beta Testing - corrections
to the Alpha version - "close to product" |
Maintenance
Phase
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Any changes to the product after the product
has been accepted by the client. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Design should take future enhancements into
account. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Coding must be performed with future maintenance
kept in mind. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
3 types of maintenance: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
perfective |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
corrective |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
adaptive |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Common problem is the lack of documentation. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Maintenance Phase Testing |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Check that the required changes have been
correctly implemented. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
check that no other inadvertent changes were
made |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Regression Testing
- checking that new changes don't affect other parts of the product |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Rerun original test cases. |
Retirement
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
True retirement occurs when a product has
outgrown its usefulness. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
The product is actually no longer in existence,
as opposed to products with different versions. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
A stage is reached when further maintenance
is no longer cost effective. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Possible reasons for retirement: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Less expensive to retire than to redesign. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Interdependencies between components
are too strong. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Documentation is insufficient. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Hardware and operating system must be changed. |
Problems
with Software Production: Essence and Accidents
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Over the past 40 years hardware has become
cheaper and faster, and hardware has shrunk in size. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
performance-price factor has decreased by
an order of magnitude 8 times in 40 years. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
There are however physical limits on hardware
size and speed. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
speed of light (186,300 miles per second) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
nonzero width of an atom |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Software is conceptual, and therefore nonphysical. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Fred Brooks, 1986, article "No Silver
Bullet", argued that there are inherent problems
with
current techniques of software production that can never be solved. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
"building software will always be hard. There
is inherently no silver bullet." |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Brooks divides the difficulties of software
into 2 Aristotelian categories: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
essence -
the difficulties inherent in the intrinsic nature of software |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
accidents -
the difficulties encountered today that are not inherent in software production |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
accidents are amenable
to breakthroughs whereas essence is not. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Four aspects of software
production that are inherently difficult:(according to Brooks) |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Complexity -
can be reduced, by using the object-oriented paradigm for example, but
it can never be totally eliminated. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
with large products,
no one person can know how every part works; |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
maintenance is compounded |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
can be controlled also
with documentation |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
the number of possible
states of a system is product of the numbers of possible states of each
component, which is compounded by the interdependence of the statements. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Conformity |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
There is a misconception
that software is the easiest component of a system to change |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
In science fiction,
the software for the USS enterprise was designed before the hardware |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Changeability |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
the product changes
because the real world changes, and software models reality |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
with a successful product,
there are requests for more functionality |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
successful software
survives longer than the hardware for which it was written |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Invisibility |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Product cannot be seen
and handled |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
To aid in this, rapid
prototyping can be used |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Visual diagrams and
visual representations cannot embody every aspect of software as a blueprint
for a building can do. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
No Silver
Bullet |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
What Brooks considers
to be three major breakthroughs in software technology, (but stresses that
they solved only accidental not essential difficulties) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
high-level languages |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
time sharing |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
software development
environments |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
example: UNIX Programmer's
Workbench |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Brooks suggests we change
the way software is produced. |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
when possible, software
should be bought off the shelf |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
greater use of incremental
development |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
use of rapid prototyping |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
training and encouraging
great designers |
Improving
the Software Process
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
SEI -
Software Engineering Institute - 1987 - founded by the US Department
of Defense - set up at Carnegie Mellon University in Pittsburgh |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
DoD - said "fundamental problem is the inability
to manage the software process" |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
one of its major successes: the CMM
(Capability Maturity Model) |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Related software process improvement methods: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
ISO 9000-series standards of the International
Standards Organization |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
SPICE - Software Process Improvement Capability
Determination - an international initiative |
Capability
Maturity Models:
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Several different versions of the CMM exist,
to allow organizations to have a standard for improving their process. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
The term maturity is a measure
of the goodness of the process itself. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
SW-CMM first put forward by Watts-Humphrey
in 1986 |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
The strategy of the SW-CMM is to improve the
management of the software process in the belief that improvements in techniques
will be a natural consequence. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
SW-CMM induces change incrementally |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
SW-CMM defines 5 different levels of maturity: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Maturity Level 1: Initial Level (Ad Hoc
Process) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Everything is done on an ad
hoc basis ("code and test" mentality) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
usual pattern: time and cost overruns |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
most activities are response to crises |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
process is unpredictable - depends on current
staff |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
most software organizations are at this level |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Maturity Level 2: Repeatable Level (Basic
Project Management) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
planning and management techniques are based
on past experiences (hence the name repeatable). |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Measurements are taken |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
careful tracking of costs and schedules |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
use for future planning |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
KPAs include: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
configuration control |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
software quality assurance |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
project planning |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
project tracking |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
requirements management |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Maturity Level 3: Defined Level (Process
Definition) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Process for software production is fully documented
and clearly defined |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Reviews |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Use of CASE tools |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Maturity Level 4: Managed Level (Process
Measurement) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Quality and productivity goals are set for
each project |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
continuous measurement, corrective action,
and statistical quality control |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Maturity Level 5: Optimizing Level (Process
Control) |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Knowledge from past projects is used in future
products |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
positive "feed back loop" |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
continuous process improvement |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
Key process areas (KPAs) include: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
defect prevention |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
technology innovation |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
process change management |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
SEI has developed a series of questionnaires
that form the basis of an assessment by an SEI team. |
ISO
9000
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
ISO (International Standards Organization)
9000-series standards: |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
a series of five related standards that are
applicable to a wide variety of industrial activities, including: |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
design |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
development |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
production |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
installation |
![](_themes/sumi-painting-smallfont/sumbul3a.gif) |
servicing |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Stresses documenting the process in both words
and pictures. |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
emphasizes measurement |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
underlines the need for continuous training
of software professionals |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
ISO 9001 for quality systems is the standard
most applicable to software development |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
Because of the broadness of the 9001, ISO
has published specific guidelines to assist in applying 9001 to software,
namely, ISO 9000-3. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
ISO standards have been adopted by over 60
countries. |
SPICE
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
An international process improvement initiative |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
SPICE = Software Process Improvement Capability
dEtermination. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Initiated by the British Ministry of Defense
- 1995 |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Nominally a process assessment initiative,
but goes beyond that to include process improvement and software procurement. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Sets out a framework for assessment methods,
but does not lay down a specific method. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Generates a separate assessment of each
component of the overall process, such as requirements analysis and
configuration management. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
since 1997, under a joint committee of the
ISO and the International Electrotechnical Commission - |
![](_themes/sumi-painting-smallfont/sumbul2a.gif) |
now sometimes referred to as ISO/IEC 15504,
or 15504 for short. |
Costs
and Benefits of Software Process Improvement
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
From an SEI report on a study on CMM, productivity
and early defect detection increased, and time to market and post-release
defect reports decreased. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Hughes Aircraft spent $500,000 over a 3 yr.
period, moved from CMM level 2 to level 3, and estimates its annual savings
to be about $2 million. |
![](_themes/sumi-painting-smallfont/sumbul1a.gif) |
Conclusion: process improvement is cost effective. |
|