scm

40
SCM

Upload: hammad-ahmed

Post on 24-Dec-2014

124 views

Category:

Education


1 download

DESCRIPTION

Software project Managment

TRANSCRIPT

Page 1: Scm

SCM

Page 2: 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

Page 3: Scm

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

Page 4: Scm

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

Page 5: Scm

SCM - 3

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

Page 6: Scm

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

Page 7: Scm

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

Page 8: Scm

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

Page 9: Scm

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

Page 10: Scm

Change is Everywhere

• Customers want to modify requirements

• Developers want to modify the technical approach

• Managers want to modify the project strategy

Page 11: Scm

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!

Page 12: Scm

How to Manage Change?

• A baseline is a software configuration management concept that helps us to control change without seriously impeding justifiable change

Page 13: Scm

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. 610.12-1990

Page 14: Scm

SCM Functions

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

Page 15: Scm

SCM Function: Identification

• Each software part is physically labeled, according to SCM plan

Page 16: Scm

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

Page 17: Scm

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

Page 18: Scm

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

Page 19: Scm

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

Page 20: Scm

The Change Control Process - 1

change request from user

developer evaluates

change report is generated

change control authority decides

request is queued for actionchange request is denied

user is informed

need for change is recognized

Change Control Process—2Change Control Process—2

Page 21: Scm

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

Page 22: Scm

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

Page 23: Scm

Access and Synchronization Control - 1

• Confusion leads to errors - some of them very serious

• Access and synchronization control avoid confusion. Implement them both

Page 24: Scm

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

Page 25: Scm

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

Page 26: Scm

Change Control Issues - 2

• When the software product is released to the customer, formal change control is instituted

Page 27: Scm

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?

Page 28: Scm

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

Page 29: Scm

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?

Page 30: Scm

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?

Page 31: Scm

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?

Page 32: Scm

SCM Functions Infuse Visibility and Traceability - 1

Function Visibility Traceability

Identification •User/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

Control •Current 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

Page 33: Scm

SCM Functions Infuse Visibility and Traceability - 2

Function Visibility Traceability

Auditing •Inconsistencies 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/Reporting •Reports 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

Page 34: Scm

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

Page 35: Scm

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

Page 36: Scm

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

Page 37: Scm

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

Page 38: Scm

SCM Standards

• MIL-STD-483

• DOD-STD-480A

• MIL-STD-1521A

• ANSI/IEEE Std. No. 828-1983

• ANSI/IEEE Std. No. 1042-1987

• ANSI/IEEE Std. No. 1028-1988

Page 39: Scm

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

Page 40: Scm

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