Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Configuration Management

Similar presentations


Presentation on theme: "Software Configuration Management"— Presentation transcript:

1 Software Configuration Management
Ashima Wadhwa

2 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

3 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. Baseline is a forward reference, forward definition. Roughly: “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.”

4 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)

5 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"

6 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

7 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

8 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.

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

10 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.

11 Terminology We will define the following terms
Configuration Item Baseline SCM Directories Version Revision Release The definitions for these terms follow the IEEE standard. Different configuration management systems may use different terms. Example: CVS configuration management system used in our projects uses terms differeing from the IEEE standard.

12 Terminology: Configuration Item
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! Question: “Why is configuration management a process? Answer: Configuration Management is a process in the terminology used in IEEE 1074 (SE II, Introduction, Slide 30) Question: What type of process is it? Cross-Development Process or Integral Process! , e.g all types of code files drivers for tests analysis or design documents user or developer manuals system configurations (e.g. version of compiler used)

13 Terminology: Version 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.

14 Terminology: Baseline
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.

15 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.

16 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. Question: Question: Is Windows98 a new version or a revision compared to Windows95 ?

17 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.

18 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

19 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.

20 Queries?


Download ppt "Software Configuration Management"

Similar presentations


Ads by Google