Project Overview

advertisement
Elements of Software
Configuration Management –
Edward H. Bersoff
Presented by: Diala T. Gammoh
eel6883 – Software Engineering II
Dr. Damla Turgut
Agenda
• Introduction
• SCM in Context
• The Elements of SCM
- Software Configuration
- Software Configuration
- Software Configuration
- Software Configuration
Accounting
• Conclusion
• My Opinion
Identification
Control
Auditing
Status
Introduction
 Software Configuration Management
is one of the disciplines of the 1980s
in response to the many failures in
industry in 1970s, it has more focus
on:
- the failures.
- what went wrong and how we are
going to correct it.
- dissecting the software development
process.
- defining techniques by which it could
be effectively managed.
SCM in Context
• Product integrity is defined as the
intrinsic set of attributes that
characterize the product:
- that fulfills user functional needs
- that can easily & completely be
traced through its life cycle
- that meets specified performance
- whose cost expectations are met
- whose delivery expectations are met
SCM in Context
• Software is not simply a set of computer
programs, but includes the
documentation required to define,
develop and maintain these programs.
Here, it escapes the software
development manager who assumes
that controlling a software product is the
same as controlling computer code.
• Developers structure themselves into
three basic discipline sets includes:
project management, development and
product assurance
SCM in Context
• The project management discipline:
- supports general management
needs to see what’s going on in
a project and to ensure that the
organization develops product
with integrity.
- looks inside the project in support of
the assignment, allocation and control
of all project resources.
- determines the relative allocation of
resources to the set of development
and product assurance disciplines.
SCM in Context
• The development disciplines represent
those traditionally applied to a software
project include:
- Analysis
- Design
- Engineering
- Production(coding)
- Test(unit/subtesting)
- Installation
- Documentation
- Training
- Maintenance
SCM in Context
• The product assurance disciplines which
are used by project management to gain
visibility into the development process
include:
- Configuration Management
- Quality Assurance
- Validation and Verification
- Test and Evaluation
SCM in Context
Product Assurance –
Configuration Management
• Configuration Management (CM) is the
discipline of identifying the configuration
of a system at discrete points in time for
the purpose of systematically controlling
changes to the configuration and
maintaining the integrity and traceability
of the configuration throughout the
system life cycle.
• Software Configuration Management
(SCM) is simply configuration
management tailored to systems or
portions of systems that are comprised
of software.
Product Assurance –
Quality Assurance
• Quality Assurance (QA) consists of the
procedures, techniques, and tools
applied by professionals to insure that a
product meets or exceeds prespecified
standards during a product’s
development cycle.
Product Assurance –
Quality Assurance
• QA discipline has not been uniformly
treated or invoked relative to software
development because:
1- Very few organizations have software
design and development standards
that compare in any way with
hardware standards for detail and
completeness
2- It takes a high level of software
expertise to assess whether a
software product meet prescribed
standards.
Product Assurance –
Quality Assurance
• QA discipline has not been uniformly
treated or invoked relative to software
development:
3- Few buyer organizations have
provided for or have developed the
capability to impose and then monitor
software endeavors on seller
organizations.
4- Few organizations have been
concerned over precisely defining the
difference between QA and other
product assurance discipline.
Product Assurance –
Validation and Verification
• Validation and Verification (V&V)
- The purpose is to cope with the
software and its development.
- Unlike QA which deals which the
problem of a product adherence to a
pre established standards, V&V deals
with the issue of how well software
fulfills functional and performance
requirement and the assurance
that specified requirements are indeed
stated and interpreted correctly.
Product Assurance –
Validation and Verification
• Validation and Verification (V&V)
- Verification assures that a product
meets its prescribed goals as defined
through baseline documentation. It
insures that the end-user gets the
product right.
- Validation assures that the product
not only meets the objectives specified
through baseline documentation, but
in addition, does the right job. It
insures that the end-user gets the
right product.
Product Assurance –
Test and Evaluation
• Test and Evaluation (T&E) is defined as
the discipline imposed outside the
development project organization to
independently assess whether a product
fulfills objectives.
• The definitions given for CM, QA, V&V,
and T&E suggest some overlap.
• There are those who believe that CM,
V&V are subsets of the QA and others
who argue that V&V and T&E have come
into being as separate disciplines
because QA methods have failed to do
an adequate job with respect to
providing product assurance.
The Elements of SCM
• SCM elements were chosen to be the
same as those for hardware, the four
components of SCM are:
-
identification
control
auditing
status accounting
The Elements of SCM
• Software Configuration Identification
- Effective management of a system
requires careful definition of its
baseline components, changes to these
components need to be defined.
- A system baseline is like a snapshot of
the aggregate of system components.
- Updates to this baseline is like frames
in a movie strip of the system life
cycle.
The Elements of SCM
• Software Configuration Identification
- The role of software configuration
identification in the SCM process is to
provide labels for these snapshots and
the movie strip.
- A baseline can be characterized by two
labels, one label for the baseline itself
and the other label identifies the
update to a particular baseline.
- The most elementary entity in the
software configuration identification is
the software configuration item (SCI)
The Elements of SCM
• Software Configuration Identification
- From SCM perspective; a software
baseline appears as a set of SCI’s.
- The SCI’s within a baseline are related
to one another via a tree like
hierarchy.
- As the software system evolves
through its life cycle, the number of
branches in this hierarchy generally
increases.
- The first baseline may consist of no
more than one SCI.
The Elements of SCM
• Software Configuration Identification
- The lowest level SCI’s in the tree
hierarchy may still be under
development and not yet under SCM
control.
- These entities are termed design
objects or computer program
components. (Figure 3, page 13)
- Each baseline and each member in the
associated family of the updates will
exist in one or more forms such as a
design document, source code on a
disk or executing object code.
The Elements of SCM
• Software Configuration Identification
- The identification of baselines and
updates provides an explicit
documentation trail linking all stages of
the software life cycle.
- With the aid of this documentation
trail, the software developer can assess
the integrity of his product, and the
software buyer can assess the integrity
of the product he is paying for.
The Elements of SCM
• Software Configuration Control
- The evolution of a software system, in
the language of SCM, is the
development of baselines and
incorporation of a series of changes
into the baselines.
- In addition to these changes, there are
changes that occur during early stages
of the system life cycle that may affect
baselines that do not yet exist.
The Elements of SCM
• Software Configuration Control
- The role of the software configuration
control is to provide the administrative
mechanism for preparing, evaluating,
approving or disapproving all change
proposal throughout the system life
cycle.
- SCC focuses on managing changes to
SCI’s (existing or to be developed) in
all of their representations.
The Elements of SCM
• Software Configuration Control
This process involves 3 basic
ingredients:
1- Documentation: administrative forms,
supporting technical and
administrative material.
2- Configuration Control Board (CCB):
organizational body for formally
evaluating and approving or
disapproving a proposed change to
the system.
3- Procedures for controlling changes to
a software system.
The Elements of SCM
• Software Configuration Control
The Engineering Change Proposal (ECP) is a
major control document, contains
information such as:
- a description of the proposed
change.
- identification of the originating
organization.
- rationale for the change.
- identification of the affected baselines
and SCI’s (if appropriate).
- specification of cost and schedule
impacts.
Figure 5 page 14.
The Elements of SCM
• Software Configuration Control
Many automated tools support the control
process such as the PSL’s (Program Support
Libraries).
- There are automation for other functions
such as library access control, software
and documentation version maintenance,
change recording, and document
reconstruction.
- These capabilities are available in
systems such as SOFTTOOL’s change
and configuration control environment.
The Elements of SCM
• Software Configuration Control
- PSL should support 3 main activities:
code development, software
management, and configuration
control.
- A PSL provides the support for code
development:
1- storage and maintenance of
software documentation and code.
2- support to program/compilation
testing.
3- support for the generation of
program/system documentation.
The Elements of SCM
• Software Configuration Control
Support to the management of the
software development process involves
the storage and output of programming
data such as:
1- collection and automatic reporting of
management data related to program
development.
2- control over the integrity and security
of the data in the PSL.
3- separation of the clerical activity
related to the programming process.
The Elements of SCM
• Software Configuration Control
PSL provides support to the
configuration control process through:
1- access and change authorization
control for all data in the library.
2- control of software code releases.
3- automatic program and document
reconstruction.
4- automatic change tracking and
reporting.
5- assurance of the consistency between
documentation, code and listings.
The Elements of SCM
• Software Configuration Control
A PSL has four major components:
1- internal libraries in machine-readable
form.
2- external libraries in hardcopy form.
3- computer procedures.
4- office procedures.
The Elements of SCM
• Software Configuration Auditing
- It provides the mechanism for
determining the degree to which the
current state of the software system
mirrors the software system pictured in
baseline and requirements
documentation.
- It also provides the mechanism for
formally establishing a baseline.
The Elements of SCM
• Software Configuration Auditing
SCA serves two purposes:
1- Configuration Verification: which
ensures that what is intended for
each software configuration item as
specified in one baseline or update is
actually achieve in the succeeding
baseline or update.
2- Configuration Validation: which
ensures that the SCI configuration
solves the right problem.
The Elements of SCM
• Software Configuration Auditing
- SCA is intended to increase visibility
and to establish traceability throughout
the life cycle of the software product.
- This visibility and traceability are not
achieved without cost. It costs time
and money.
- The investment in time and money in
the early stages of a project is worth it
at the later stages like avoiding the
sudden appearance of new
requirements and discovery of major
design flaws.
The Elements of SCM
• Software Configuration Status Accounting
- It is the administrative tracking and
reporting of all software items formally
identified and controlled.
- It also involves the maintenance of
records to support software
configuration auditing.
- It records the activity associated with
the other three SCM functions and
therefore provides the mans by which the
history of the software system life cycle can
be traced.
The Elements of SCM
• Software Configuration Status Accounting
The scope encompasses the recording and
reporting of:
1- the time at which each representation of a
baseline and update came into being.
2- the time at which each SCI came into being.
3- descriptive information about each SCI.
4- engineering change proposal status (approved,
disapproved, awaiting action).
5- descriptive information about each ECP.
6- change status.
7- descriptive information about each change.
8- status of technical and administrative
documentation associated with a baseline or
update.
9- deficiencies in a to-be-established baseline
uncovered during a configuration audit.
The Elements of SCM
• Software Configuration Status
Accounting
Because of its large data input and
output requirements, it is generally
supported by PSL described earlier.
Conclusion
• We must have the visibility and control
that the product assurance disciplines
have the capacity to provide.
• We must be careful not to
overcompensate and over control, this is
the fine line that will distinguish that
successful software managers of the
1980’s from the rest of the software
engineering community
My Opinion
• The paper was comprehensive.
• PSL (Program Support Libraries)
was a good addition to the paper.
• I prefer if they mentioned some
practical applications that use the
PSL.
Download