Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 4: Software Configuration Management (SCM)

Similar presentations


Presentation on theme: "Chapter 4: Software Configuration Management (SCM)"— Presentation transcript:

1 Chapter 4: Software Configuration Management (SCM)
Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of Wisconsin-Platteville

2 Topic Covered SCM Activities SCM Tools Why do we need SCM?
SCM Terminologies SCM Roles SCM Activities SCM Tools

3 Definition Software Configuration Management(SCM) - is the discipline of managing the evolution of complex software systems The process of controlling and monitoring change to work products Appropriate documentation of changes Registering the approved software versions

4 Why do we need SCM? To answer the following questions:
Regarding last version Who can provide me with an accurate copy of the last year’s version of the software package? Can we be sure that the version installed does not include undocumented changes and changes that have not been approved? Regarding current version What is the correct version of the software module that I have to continue its coding? What changes have been introduced in the current version? Where can I find the full list of customers that use current version of our software?

5 Why do we need SCM? Easy access to all previous revisions/versions/releases To deal with conflicts in team software development: Simultaneous updates – how to prevent one person from undoing the changes of another Concurrent Development Shared code – how to inform everyone who needs to know about a change Versions – how to make changes to all affected

6 SCM Terminologies Configuration Item: an item of software or work product which is subject to change and Needs to be under configuration management control all the time Example: a unit of software code, a system document , Hardware unit Change Request: a formal report that contains the request for modification in a configuration item

7 SCM Terminologies Version : a specific instance of a configuration item (state of a particular configuration item at a given point of time) Promotion: a version of a configuration item that has been available to other developers in a project Release: a version of the system that has been available to the users Repository: it stores the various releases of the system

8 SCM Terminologies Three Main Types of Releases Revisions
Intermediate Versions Baseline Versions

9 Revisions Minor changes and corrections
May include several small changes in a revision Sometimes we have several small revisions prior to a major baseline release

10 Intermediate (Minor) Version
Usually designed to address immediate problems as to correct defects , adaptive changes May be done to serve only a part of the company’s clients , for a limited period until a new baseline is developed. all clients may not be using the same version of software

11 Baseline Versions Product that has been formally reviewed , tested and agreed to by responsible management Milestone in the software system’s life cycle Major releases Have major changes , upgrades or enhancements Serves as the basis for further development

12 Numbering Schemes for Baselines
Many naming scheme for baselines exist A 3 digit scheme is quite common Example: Linux Kernel Versions 2.6.0 Major Release Minor Release Small Revision Linux kernels come in two flavors: stable or development Stable kernels are production-level releases are released typically only to provide bug fixes or new drivers (Minor is even) Development kernels undergo rapid change where (almost) anything goes (Minor is odd)

13 SCM Roles Configuration Manager Change Control Board Member Developer
Responsible for identifying configuration items 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.

14 SCM Activities Configuration item identification Change Management
Controlling Changes Promotion management Release management

15 Configuration Item Identification
Not every item needs to be under configuration management control all the time Two concerns: What should be under configuration control? When do you start to place entities under configuration control? Selecting the correct configuration items is a skill Maintainer should find relationships between configuration items

16 Which of these entities should be configuration items?
Problem Statement Software Project Management Plan (SPMP) Requirements Analysis Document (RAD) System Design Document (SDD) Project Agreement Object Design Document (ODD) Dynamic Model Object model Functional Model Unit tests Integration test strategy Source code API Specification Input data and data bases Test plan Test data Support software (part of the product) Support software (not part of the product) User manual Administrator manual : Yes

17 Change Management Change management is the handling of change requests
Change requests could be from Users Developers Market forces

18 Change Request Form

19 Change Management Process

20 Proposed Change Approval
Factors to be considered as to whether to approve the change: Urgency of the change (change priority) Contribution of the change Effect of the proposed change on project timetables, level of service Estimated resources and cost of performing the change Software quality assurance

21 Change Tracking Tools A major problem in change management is tracking change status Change tracking tools keep track the status of each change request Status could be: Rejected Approved Implemented Automatically ensure that change requests are sent to the right people at the right time.

22 Implementing Change Identify the activities for
Assigning the change request to developers Coordinating multiple changes and promotions Identifying audits and reviews for the project Verifying and testing implemented changes Archiving completed change requests Planning and control of releases

23 Controlling Changes Two types of controlling change:
Promotion: The internal development state of a software is changed Release: A changed software system is made visible outside the development organization Two types of management : Promotion management The creation of versions for other developers Release management The creation of versions for users

24 Controlling Changes User Master Developer Directory 1- Checkout
Promotion Policy Release Policy User Master Directory Software Repository Developer 2- Promotion 3- Release

25 SCM Directories Programmer’s Directory (Dynamic Library)
Library for holding newly created or modified entities by a programmer Completely under control of one programmer Master Directory (Controlled Library) Manages the current baseline(s) and for controlling changes made to them Changes must be authorized Software Repository (Static Library) Archive for the various baselines released for general use Copies of these baselines may be made available to requesting organizations.

26 SCM Directories: Master Directory
Central database What should be in this database? Source Code Documentation Build Tools Often need old versions of the tools to build old versions of the software Ensures software is rebuilt exactly as the customer received it Test Suites

27 Promotion Management Programmer/Developer File sharing management
Check out the latest version of a file/document Make the changes Update the database (check in) File sharing management Multiple people can work on the same source base without colliding Approaches: Locking : Locks individual files so only one person at a time can modify it Merging: Allows multiple people to modify a source file and the system will automatically merge the changes

28 Promotion Management: Locking
Only one person can work on a file at once Works fairly well if developers work on different areas of the project and don’t conflict often Problems: Problem 1: People forget to unlock files when they are done Problem 2: People work around locking by editing a private copy and checking in when the file is finally unlocked - easy to goof and lose changes

29 Promotion Management: Merging
Several people can work on a file at once Before committing changes, each user merges their copy with the latest copy in the database This is normally done automatically by the system and usually works

30 SCM Change Policies Change Policies guarantee that each promotion or release conforms to commonly accepted criteria Example: Promotion Policy: No developer is allowed to promote source code which cannot be compiled without errors and warnings Release Policy: No baseline can be released without having been beta-tested by at least 200 external persons Approaches: Informal Promotion Policies Formal Release Policies

31 Configuration Audits and Reviews
An audit : determines for each configuration item if it has the required physical and functional characteristics A review : is a management tool for establishing a baseline Audit/Review Plan: The Configuration Items under review The schedule for the review Procedures for conducting the review Participants by job title Required documentation Procedure for recording deficiencies and how to correct them Approval criteria

32 Release Management Releases must incorporate changes because of:
New system functionality Bug fixing Hardware changes Release planning is concerned with when to issue a system version as a release based on the following factors Technical quality of the system Competition Marketing requirements Customer change requests

33 Release Management Release creation involves:
Collecting all files and documentation required to create a system release Configuration descriptions have to be written for different hardware and installation scripts have to be written The specific release must be documented to record exactly what files were used to create it. This allows it to be re-created if necessary

34 SCM Tools Examples RCS (Revision Control System)
Solaris: man rcsintro Promotion management : Locking Little support for binaries CVS (Concurrent Versions System) Built on top of RCS (Little support for binaries) Database can be remote Promotion management : Merging Fast Integrates with emacs

35 SCM Tools Examples SourceSafe Clearcase
Microsoft’s entry, Integrates with MSDEV Promotion management : Locking Built-in web site creation tools (Project-based) Clearcase SCM on steroids You create a view of the database with a config spec, which describes how to select files from the database (Slow) Promotion management : Merging and locking Distributed System : Several groups at different locations can work on the same database Integrates with MSDEV

36 Case Study : CVS Software repository that preserves changes to source code artifacts during maintenance of software systems Hold a wealth of information and provide a unique view of the actual evolutionary path taken to realize a software system Individual versions of a system Software changes and their metadata Maintenance changes are documented as commits Each commit represents an undertaken change Log file : file contains all commits within a period of time

37 Case Study : CVS Commit

38 Case Study : CVS Challenge problems: Huge number of commits
Version history does not keep a tag that would identify the purpose of each change


Download ppt "Chapter 4: Software Configuration Management (SCM)"

Similar presentations


Ads by Google