SCM. Introduction Change is inevitable when software is built Change increases the level of confusion Confusion arises when changes are not –Analyzed.

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Software Quality Assurance Plan
Chapter 7: Key Process Areas for Level 2: Repeatable - Arvind Kabir Yateesh.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
Software Configuration Management
School of Computing, Dublin Institute of Technology.
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Software Configuration Management (SCM)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
TCS2411 Software Engineering1 Software Configuration Management “The only constant is change...”
Configuration Management
4 4 By: A. Shukr, M. Alnouri. Many new project managers have trouble looking at the “big picture” and want to focus on too many details. Project managers.
Configuration Management
Chapter 27 Change Management
Software Configuration Management
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
SE-02 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): - What? - Why? - How?
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
The Key Process Areas for Level 2: Repeatable Ralph Covington David Wang.
SOFTWARE CONFIGURATION MANAGEMENT (SCM)
Component-level testing – Equivalence partitioning, boundary value analysis, path testing Navigation testing – Testing navigation syntax and semantics.
Seattle Area Software Quality Assurance Group Release and Configuration Management, The Acceleration of Change and Its Contribution To Software Quality.
Software Configuration Management (SCM)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
© Mahindra Satyam 2009 Configuration Management QMS Training.
Software Engineering 2003 Jyrki Nummenmaa 1 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): -
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa Configuration management.
Software Project Management
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 29 Slide 1 Configuration management.
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
Software Configuration Management n Art of coordinating SW development to minimize confusion n Software quality assurance (umbrella) activity n Set of.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Configuration Management
1 Chapter 9 Software Configuration Management. 2 The “First Law” No matter where you are in the system life cycle, the system will change, and the desire.
Software Configuration Management SEII-Lecture 21
Configuration Management (II) Copyright, 2000 © Jerzy R. Nawrocki Requirements.
Software Engineering Lecture 9: Configuration Management.
Company LOGO. Company LOGO PE, PMP, PgMP, PME, MCT, PRINCE2 Practitioner.
Software Configuration Management (SCM)
Software Configuration Management (SCM)
Software Configuration Management
Software Configuration Management
Software Configuration Management
Software Project Configuration Management
Software Configuration Management (SCM)
Chapter 11: Software Configuration Management
Software Configuration Management
Software Engineering (CSI 321)
Chapter 9 Software Configuration Management
Software Configuration Management
Change Control Process—I
Chapter 27 Change Management
Lecture 3 Change Management
Configuration Management (managing change)
Software Configuration Management
Chapter 27 Change Management
Chapter 27 Change Management
Chapter 11: Software Configuration Management
Chapter 27 Change Management
Requirements Management - I
Chapter 27 Change Management
Software Configuration Management
Presentation transcript:

SCM

Introduction Change is inevitable when software is built Change increases the level of confusion Confusion arises when changes are not –Analyzed before they are made –Recorded before they are implemented –Reported to those who need to know –Controlled in a manner that will improve quality and reduce error

SCM - 1 The art of coordinating software development to minimize confusion is called configuration management. Configuration management is the art of identifying, organizing, and controlling modifications to the software being built by a programming team The goal is to maximize productivity by minimizing mistakes

SCM - 2 Software configuration management is an umbrella activity, which provides a cover against –Lack of visibility –Lack of control –Lack of traceability –Lack of monitoring –Uncontrolled change

SCM - 3 Software configuration management provides a means for visibility, traceably, and formally controlling the evolution of software

Software Configuration The items that comprise all information produced as part of the software process are collectively called a software configuration –Computer programs (source and executable) –Documents that describe the computer programs –Data Software configuration items will grow

Change - A Constant There is nothing permanent except change –Heraclitus (500 B.C.) 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 Software is like a sponge due to its susceptibility to change

Sources of Change - 1 New business or market conditions dictate changes in product requirements or business rules New customer needs demand modification of data produced by information systems, functionality delivered by products, or services delivered by computer-based system

Sources of Change - 2 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

Change is Everywhere Customers want to modify requirements Developers want to modify the technical approach Managers want to modify the project strategy

Why All This Modification? As time passes, all constituencies know more –About what they need –Which approach would be best –How to get it done and still make money Statement of the fact: Most changes are justified!

How to Manage Change? A baseline is a software configuration management concept that helps us to control change without seriously impeding justifiable change

Baseline A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures –IEEE Std. No

SCM Functions The four software configuration management functions are –Identification –Control –Auditing –Status accounting/reporting

SCM Function: Identification Each software part is physically labeled, according to SCM plan

SCM Function: Control Proposed changes to software parts are reviewed, then subjected to the agreement of project participants, and finally incorporated into the currently approved software configuration Two types of control –Version control –Change control

Version Control Configuration management allows a user to specify alternative configurations of the software system through the selection of appropriate versions. This is supported by associating attributes with each software version, and then allowing a configuration to be specified [and constructed] by describing the set of attributes

Change Control - 1 Change control is vital Too much change control and we create problems. Too little, and we create other problems The art of progress is to preserve order amid change and to preserve change amid order –Alfred North Whitehead

Change Control - 2 For large projects, uncontrolled change rapidly leads to chaos For large projects, change control combines human procedures and automated tools to provide a mechanism for the control of change

The Change Control Process - 1 change request from user developer evaluates change report is generated change control authority decides request is queued for action change request is denied user is informed need for change is recognized Change Control Process—2

The Change Control Process - 2 assign people to SCIs check-out SCIs make the change review/audit the change establish a “baseline” for testing Change Control Process—3

The Change Control Process - 3 perform SQA and testing activities promote SCI for inclusion in next release rebuild appropriate version review/audit the change include all changes in release check-in the changed SCIs

Access and Synchronization Control - 1 Confusion leads to errors - some of them very serious Access and synchronization control avoid confusion. Implement them both

Access and Synchronization Control - 2 Access control governs which software software engineers have the authority to access and modify a particular configuration object Synchronization control helps to ensure that parallel changes, performed by two different people, don’t overwrite one another

Change Control Issues - 1 Without proper safeguards, change control can retard progress and create unnecessary red tape Prior to an SCI becoming a baseline, only informal change control need be applied Once SCI is in a baseline, project level change control is implemented

Change Control Issues - 2 When the software product is released to the customer, formal change control is instituted

Change Control Issues - 3 Change control authority/board assesses the impact of change beyond the SCI in question –How will the change affect hardware? –How will the change affect performance? –How will the change modify customer’s perception of the product? –How will the change affect product quality and reliability?

SCM Function: Auditing - 1 How can we ensure that the approved changes have been implemented? –Formal technical reviews Focus on the technical correctness of the modified object. The reviewers assess the SCI to determine consistency with other SCIs, omissions, or potential side effects –Auditing

SCM Function: Auditing - 2 Has the change specified in the ECO been made? Have any additional modifications been incorporated? Has a formal technical review been conducted to assess technical correctness? Has the software process been followed and have software engineering standards been properly applied?

SCM Function: Auditing - 3 Has the change been “highlighted” in the SCI? Have the change date and change author been specified? Have SCM procedures for noting the change, recording it, and reporting it been followed? Have all related related SCIs been properly updated?

SCM Function: Status Accounting/Reporting The status accounting function provides a corporate memory of project events that supports accomplishment of three other configuration management items –What happened? –Who did it? –When did it happen? –What else will be affected?

SCM Functions Infuse Visibility and Traceability - 1 FunctionVisibilityTraceability IdentificationUser/buyer/seller can see what is being/has been built/is to be modified Management can see what is embodied in a product All project participants can communicate with a common frame of reference Provides pointers to software parts in software products for use in referencing Make software parts and their relationships more visible, thus facilitating the linking of parts in different representations of the same product ControlCurrent and planned configuration generally known Management can see impact of change Management has option of getting involved with technical detail of project Makes baselines and changes to them manifest, thus providing the links in a traceability chain Provides the forum for avoiding unwanted excursions and maintaining convergence with requirements

SCM Functions Infuse Visibility and Traceability - 2 FunctionVisibilityTraceability AuditingInconsistencies and discrepencies manifest State of product known to management and product developers Potential problems identified early Checks that parts in one software product are carried through to the subsequent software produc Checks that parts in a software product have antecedents in requirements documentation Status Accounting/ReportingReports inform as to status Actions/decisions made explicit (eg., through CCB meeting minutes) Database of events is project history Provides history of what happened and when Provides explicit linkages between change control forms

Real World Considerations - 1 Management Commitment –Management commitment to the establishment of checks and balances is essential to achieving benefits from SCM SCM Staffing –Initial staffing by a few experienced people quickly gains the confidence and respect of other project team members

Real World Considerations - 2 Establishment of a CCB –As a starting point in instituting SCM, periodic CCB meetings provide change control, visibility, and traceability CM During the Acceptance Testing Cycle –CM integrated within the acceptance testing cycle maintains a visible and traceable product ready for delivery to the customer

Real World Considerations - 3 Justification and Practicality of Auditing –Although the auditing consumes the greater part of the SCM budget, it has the potential of preventing the waste of much greater resources Avoiding the Paperwork Nightmare –The buyer/user and seller should agree on the paperwork needed to achieve a mutually desirable level of visibility and traceability

Real World Considerations - 4 Allocating Resources among CM Activities –Cost versus benefits must be evaluated for each individual project in determining the allocation of limited SCM resources

SCM Standards MIL-STD-483 DOD-STD-480A MIL-STD-1521A ANSI/IEEE Std. No ANSI/IEEE Std. No ANSI/IEEE Std. No

Conclusion Software configuration management is an umbrella activity that is applied throughout the software process SCM identifies, controls, audits, and reports modifications that invariably occur while software is being developed and after it has been released SCM saves a project from total chaos

References Software Engineering: A Practitioner’s Approach by Roger S. Pressman A Handbook of Software Quality Assurance edited by G. Gordon Schulmeyer and James L. McManus Customer-Oriented Software Quality Assurance by Frank P. Ginac Software Quality: Analysis and Guidelines for Success by Capers Jones