Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of...

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

Transcript of Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of...

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

Chapter 4: Software Configuration

Management (SCM)

Omar MeqdadiSE 3860 Lecture 4

Department of Computer Science and Software Engineering University of Wisconsin-Platteville

Page 2: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

2

Topic Covered

Why do we need SCM? SCM Terminologies SCM Roles SCM Activities SCM Tools

Page 3: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 4: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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?

Page 5: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 6: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 7: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 8: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

8

SCM Terminologies

Three Main Types of Releases Revisions

Intermediate Versions

Baseline Versions

Page 9: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 10: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 11: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 12: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

Many naming scheme for baselines exist A 3 digit scheme is quite common Example: Linux Kernel Versions

Major Release

Minor Release Small Revision

2.6.0

Numbering Schemes for Baselines

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)

Page 13: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

SCM Roles

Configuration Manager 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.

Page 14: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

14

SCM Activities

Configuration item identification Change Management Controlling Changes

Promotion management Release management

Page 15: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 16: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 17: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

17

Change Management

Change management is the handling of change requests Change requests could be from

Users Developers Market forces

Page 18: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

18

Change Request Form

Page 19: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

19

Change Management Process

Page 20: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 21: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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.

Page 22: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 23: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 24: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

2- Promotion 3- Release

Software RepositoryUser

Developer

PromotionPolicy

ReleasePolicy

MasterDirectory

Controlling Changes

1- Checkout

Page 25: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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.

Page 26: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 27: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

27

Promotion Management

Programmer/Developer 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

Page 28: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 29: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 30: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 31: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 32: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 33: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 34: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 35: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

35

SCM Tools Examples

SourceSafe 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

Page 36: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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

Page 37: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

37

Case Study : CVS Commit

Page 38: Chapter 4: Software Configuration Management (SCM) Omar Meqdadi SE 3860 Lecture 4 Department of Computer Science and Software Engineering University of.

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