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 Identification - Software Configuration Control- Software Configuration Auditing- Software Configuration Status Accounting • Conclusion • My Opinion
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
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 ControlThis 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 ControlThe 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 ControlMany 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 ControlSupport 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 ControlPSL 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 ControlA 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 AuditingSCA 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.