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

2 Why SCM? The problem: Multiple people have to work on software that is changing, Need for coordination 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 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

3 What is SCM? Software configuration management is the discipline of managing the evolution of complex software systems [IEEE STD 1987]. It is also defined as ‘the process of controlling and monitoring change to work products’ [Herbert 1999]. 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 Software Configuration Management - manages evolving software systems - controls the costs involved in making changes to a system.

4 Basic concepts of SCM Configuration Item (CI): A piece of software or work product which is subject to change is a configuration item Examples: Management plan, Requirements, Design specification, Source code and executable code, Test specification, data, and records, User documentation, etc. Versions and Configurations: A version identifies the state of a particular configuration item or a configuration at a well defined point in time Eg. Windows 7, Windows 8, etc. Here 7 represents the version number. jdk 1.6 Here 1 refers to Major revision, 6 refers to minor revision Release: A release is a version that has been available to the user or the client.

5 Basic concepts of SCM Baseline
A collection of item versions that have been formally reviewed and agreed on, a version of configuration Marks milestones and serves as basis for further development Can only be changed via formal change management process Baseline + change sets to create new baselines Change Request: It is a formal report that contains the request for modification in a configuration item. Workspace An isolated environment where a developer can work (edit, change, compile, test) without interfering other developers Eg: Local directory under version control, Private workspace on the server

6 SCM Activities 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 View of SCM from various roles Project manager -> an auditing mechanism SCM manager -> a controlling, tracking, and policy making mechanism Software engineer -> a changing, building, and access control mechanism Customer -> a quality assurance and product identification mechanism

7 SCM Activities 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 View of SCM from various roles Project manager -> an auditing mechanism SCM manager -> a controlling, tracking, and policy making mechanism Software engineer -> a changing, building, and access control mechanism Customer -> a quality assurance and product identification mechanism

8 SCM Process Identify all items that collectively define the software configuration (SCIs) Manage changes to one or more of these items Facilitate construction of different versions of an application Ensure the software quality is maintained as the configuration evolves over time Provide information on changes that have occurred

9 SCM Tasks Status reporting Configuration auditing Version control
CSCI Identification Change control Version control Configuration auditing

10 SCM Tasks 1. Identification separately names each CSCI and then organizes it in the SCM repository 2. Change control is a procedural activity that ensures quality and consistency as changes are made to a configuration object 3. Version control is a set of procedures and tools for managing the creation and use of multiple occurrences of objects in the SCM repository 4. Configuration auditing is an SQA activity that helps to ensure that quality is maintained as changes are made - 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? 5. Configuration status reporting (CSR) is also called status accounting. Provides information about each change to those personnel in an organization. Administrative tracking and reporting of CIs in SCM system - Answers what happened, who did it, when did it happen, and what else will be affected?

11 Change control process
Submission of Change Request (CR) Technical and business evaluation and impact analysis Approval by Change Control Board (CCB) Engineering Change Order (ECO) is generated stating changes to be made criteria for reviewing the changed CI CI’s checked out Changes made and reviewed CI’s checked in

12 SCM Tools Version control Bug tracking Build Project management
RCS, CVS, Subversion, Visual Source Safe, Rational ClearCase Bug tracking Bugzilla, Mantis Bugtracker, Rational ClearQuest Build GNU Make and many variants, Ant Project management Sourceforge.net, freshmeat.net, GForge, DForge

13 aliceCopy :WorkingCopy
Copy/Modify/Merge in CVS alice :Developer joe :Developer :Repository checkout() checkout() aliceCopy :WorkingCopy joeCopy :WorkingCopy modify() checkin(ac) modify() If changes overlap, CVS Joe resolves the conflict by editing the merged copy . update(jc) merge(ac) checkin(jc)


Download ppt "Software Configuration Management"

Similar presentations


Ads by Google