Software Configuration Management Ashima Wadhwa Why Software Configuration

  • Slides: 20
Download presentation
Software Configuration Management Ashima Wadhwa

Software Configuration Management Ashima Wadhwa

Why Software Configuration Management ? • The problem: • Multiple people have to work

Why Software Configuration Management ? • The problem: • Multiple people have to work on software that is changing • More than one version of the software has to be supported: • Released systems • Custom configured systems (different functionality) • System(s) under development • Software on different machines & operating systems

What is Software Configuration Management? • Definition Software Configuration Management: • A set of

What is Software Configuration Management? • Definition Software Configuration Management: • A set of management disciplines within a software engineering process to develop a baseline • Software Configuration Management encompasses the disciplines and techniques of initiating, evaluating and controlling change to software products during and after a software project • Standards (approved by ANSI) • IEEE 828: Software Configuration Management Plans • IEEE 1042: Guide to Software Configuration Management.

What is Change Management • Also called software configuration management (SCM) • It is

What is Change Management • Also called software configuration management (SCM) • It is an umbrella activity that is applied throughout the software process • It's goal is to maximize productivity by minimizing mistakes caused by confusion when coordinating software development • SCM identifies, organizes, and controls modifications to the software being built by a software development team • SCM activities are formulated to identify change, control change, ensure that change is being properly implemented, and report changes to others who may have an interest (More on next slide) 4

Software Configuration • The Output from the software process makes up the software configuration

Software Configuration • The Output from the software process makes up the software configuration • Computer programs (both source code files and executable files) • Work products that describe the computer programs (documents targeted at both technical practitioners and users) • Data (contained within the programs themselves or in external files) • The major danger to a software configuration is change • First Law of System Engineering: "No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle" 5

Origins of Software Change • Errors detected in the software need to be corrected

Origins of Software Change • Errors detected in the software need to be corrected • New business or market conditions dictate changes in product requirements or business rules • New customer needs demand modifications of data produced by information systems, functionality delivered by products, or services delivered by a computer-based system • Reorganization or business growth/downsizing causes changes in project priorities or software engineering team structure • Budgetary or scheduling constraints cause a redefinition of the system or product 6

Baseline • • IEEE Definition: A specification or product that has been formally reviewed

Baseline • • IEEE Definition: A specification or product that has been formally reviewed and agreed upon, and that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures It is a milestone in the development of software and is marked by the delivery of one or more computer software configuration items (CSCIs) that have been approved as a consequence of a formal technical review 7

Administering Software Configuration Management • Software Configuration Management is a project function with the

Administering Software Configuration Management • Software Configuration Management is a project function with the goal to make technical and managerial activities more effective • Software Configuration Management can be administered in several ways: • • Organization-wide Project-specific Distributed among the project members Mixture of all of the above.

Configuration Management Activities • Software Configuration Management Activities: • • • Configuration item identification

Configuration Management Activities • Software Configuration Management Activities: • • • Configuration item identification Promotion management Release management Branch management Variant management Change management

Configuration Management Roles • Configuration Manager • Responsible for identifying configuration items • Also

Configuration Management Roles • Configuration Manager • Responsible for identifying configuration items • Also often responsible for defining the procedures for creating promotions and releases • Change Control Board Member • Responsible for approving or rejecting change requests • Developer • Creates promotions triggered by change requests or the normal activities of development. The developer checks in changes and resolves conflicts • Auditor • Responsible for the selection and evaluation of promotions for release and for ensuring the consistency and completeness of this release.

Terminology • We will define the following terms • • • Configuration Item Baseline

Terminology • We will define the following terms • • • Configuration Item Baseline SCM Directories Version Revision Release í The definitions for these terms follow the IEEE standard.

Terminology: Configuration Item: An aggregation of hardware, software, or both, designated for configuration management

Terminology: Configuration Item: An aggregation of hardware, software, or both, designated for configuration management and treated as a single entity in the configuration management process. • Software configuration items are not only source files but all types of documents • In some projects, not only software but also hardware configuration items (CPUs, bus speed frequencies) need to be put under control!

Terminology: Version: The initial release or re-release of a configuration item associated with a

Terminology: Version: The initial release or re-release of a configuration item associated with a complete compilation or recompilation of the item. Different versions have different functionality.

Terminology: Baseline: “A specification or product that has been formally reviewed and agreed to

Terminology: Baseline: “A specification or product that has been formally reviewed and agreed to by responsible management, that thereafter serves as the basis for further development, and can be changed only through formal change control procedures. ” • Examples: • Baseline A: The API has been completely been defined; the bodies of the methods are empty • Baseline B: All data access methods are implemented and tested • Baseline C: The GUI is implemented.

Terminology: SCM Directories • Programmer’s Directory (IEEE: Dynamic Library) • Library for holding newly

Terminology: SCM Directories • Programmer’s Directory (IEEE: Dynamic Library) • Library for holding newly created or modified software entities • The programmer’s workspace is controlled by the programmer only • Software Repository (IEEE: Static Library) • Archive for the various baselines released for general use • Copies of these baselines may be made available to requesting organizations.

Terminology: Release , Version , Revision • Release: The formal distribution of an approved

Terminology: Release , Version , Revision • Release: The formal distribution of an approved version • Version: An initial release or re-release of a configuration item associated with a complete compilation or recompilation of the item. Different versions have different functionality • Revision: Change to a version that corrects only errors in the design/code, but does not affect the documented functionality.

Objective Configuration management is very crucial for evolving software systems. Change in many large

Objective Configuration management is very crucial for evolving software systems. Change in many large software systems is inevitable. Careful planning is required considering aspects like the components that are likely to be changed, any other subsystems that may have to be changed for the modification of the given system, analysis of cost etc. CM makes sure that these changes do not cause undesired impact on the other subsystems.

Software Configuration Management Components • Identification – identifying software configuration items in a baseline

Software Configuration Management Components • Identification – identifying software configuration items in a baseline • Control – controlling the release of a product and changes to it throughout its lifecycle • Status Accounting – recording and reporting of the status of components and changes • Auditing and Reviewing – Validating the completeness of a product and that SCM procedures are being followed

The goals of SCM are generally : • • Configuration identification - Identifying configurations,

The goals of SCM are generally : • • Configuration identification - Identifying configurations, configuration items and baselines. Configuration control - Implementing a controlled change process. This is usually achieved by setting up a change control board whose primary function is to approve or reject all change requests that are sent against any baseline. Configuration status accounting - Recording and reporting all the necessary information on the status of the development process. Configuration auditing - Ensuring that configurations contain all their intended parts and are sound with respect to their specifying documents, including requirements, architectural specifications and user manuals. Process management - Ensuring adherence to the organization's development process. Environment management - Managing the software and hardware that host the system. Teamwork - Facilitate team interactions related to the process. Defect tracking - Making sure every defect has traceability back to the source.

Queries?

Queries?