Software Configuration Management And CVS : Software Configuration Management And CVS www.scmGalaxy.com scmGalaxy Author: Rajesh Kumar
info@scmGalaxy.com
Agenda : www.scmGalaxy.com scmGalaxy Agenda Purpose and Objectives of SCM Process
SCM Activities
SCM summary
How to use CVS
Current Software Development Issues : www.scmGalaxy.com scmGalaxy Current Software Development Issues Ensuring proper components are being used throughout the Lifecycle
Providing file security and file control
Controlling transfer from the LAN to Target environment
Ensuring correct build of application
Managing progress of project
Today’s Situation : www.scmGalaxy.com scmGalaxy Today’s Situation Developers Step on Each Other
Multiple File Copies on Workstations & Network
Files Misplaced or Mishandled
Non-Standard Builds Cause Errors
What is SCM? : www.scmGalaxy.com scmGalaxy What is SCM? The tracking and control of software development.
SCM is an infrastructure for software design, development, and deployment.
SCM is a set of utilities which can increase productivity and efficiency when building applications.
SCM is the art of identifying, organizing and controlling modifications to the software being built by a project team.
Purpose of Configuration Management : www.scmGalaxy.com scmGalaxy Purpose of Configuration Management The purpose of Configuration Management is to establish and maintain the integrity of the work products throughout the software life cycle. Provide a defined and controlled configuration of the SW throughout the SW Life
Provide ability to consistently replicate the executable code of whichever the release or version required
Provide Controls that ensure problems receive attention and changes are recorded, approved, and implemented.
Control process I & O to ensure consistency, traceability and repeatability of process activities
Ensure that secure physical archiving (Backup), recovery and control are maintained for the CIs
Maximize productivity by minimizing mistakes
Where does CM Fit in the whole of SW Life : www.scmGalaxy.com scmGalaxy Where does CM Fit in the whole of SW Life Project
Repository
Typical items to be controlled in SW : www.scmGalaxy.com scmGalaxy Typical items to be controlled in SW Requirements Document
Project Plan
SRS
Any Executable or Paper Prototype
User Manual
Design Specification
Source code
Test plan and procedure
Test cases and recorded results
Operation and Installation Manuals
Database description
Maintenance documents
Standards and Procedures for software engineering
Executable programs?
Standards and Guidelines
Customer Supplies These are called as Configuration Items (CI):
One or more HW or SW components treated as a unit for configuration management purposes.
What is a Baseline? : www.scmGalaxy.com scmGalaxy What is a Baseline? The approved, recorded configuration of one or more CIs, that there after serves as the basis for further development, and that is changed only through Change Control Process.
Requirements Doc after customer approval - 1.0 onwards
User Documents Release 1.0 onwards
SW release 1.0.0 onwards
Entire Project folder is labeled as Baselined x.y. All further changes need to undergo Change control = Analysis, approval, implementation, regression test, release and post release support.
SCM Activities : www.scmGalaxy.com scmGalaxy SCM Activities Create CM Plan
Create Central Repository (defined and controlled configuration)
Naming and Identification of CI’s
Establish roles and responsibilities for CM
Establish Baselines & Traceability
Defect Identification and Traceability
Change Control
CM Audit
Configuration Status accounting
Release
Archiving & Retrieval
Create CM Plan : www.scmGalaxy.com scmGalaxy Create CM Plan PM / PL is responsible for creating CM Plan
Project Specific directory structure
Responsibilities for Configuration management
Responsibilities for approving changes
Versioning & Baselining of Docs
Versioning & Baselining of code before release
Every new version check in to accompanied by reason, if Bug fix, then specify Bug-id in comments
Versioning & Baselining of code after release
Change Control
Bug tracking
Configuration Audit
Backup and Recovery Strategy
All team members may participate in review and updating CM Plan
CM Plan to be read in compliance with Developers handbook
Create & use Central Repository : www.scmGalaxy.com scmGalaxy Create & use Central Repository Create a Project folder in mindtree.com\rds\Projects always. This is done by Help Desk on Request. Use Calpaq.
Use the Standard Directory Structure specified in ProcessNet
Create CVS Database in this Folder Only.
Specify Access rights to CVS DB using the Admin Facility. Select Windows Login Authentication facility
BP: Individuals to create folders in their U:\Username folder with the same structure as of Project Central folder (in MTV01FS01 / MTV01FS02, not in C:\ or any other local drive unless it is approved by the PM/PL and Configuration Controller) for backup and recovery purposes. It is safe as IS takes backup of your U:\ on daily basis.
Standard Directory Structure : www.scmGalaxy.com scmGalaxy Standard Directory Structure
Naming and Identification of CIs : www.scmGalaxy.com scmGalaxy Naming and Identification of CIs Plans
Requirements
Designs
Test Cases
Source Code (Related modules)
Release Notes
User Documentation
Release
…
Roles and Responsibilities for CM Activities : www.scmGalaxy.com scmGalaxy Roles and Responsibilities for CM Activities Maintaining repository – Called as Configuration Controller
CVS Admin
Merges the changes if any required between different versions
Project specific Backups, Recovery
Is there a person / group responsible for approving all change request – Configuration Control Board
Change Analysis & Acceptance criteria
Change Approval/ Rejection
Regression test criteria
Release and acceptance
Developers responsible for all check-ins (and check-outs)
Comment the changes / bug fixes appropriately before check-in
Ensure that CI is defect free before integrated
Establish Baselines and Traceability : www.scmGalaxy.com scmGalaxy Establish Baselines and Traceability Establish
Traceability Matrix – Design –Req-Test Cases-Code
Change Control Log – CR Status – Use MPower for LOG
Release Log
Baselining & Versioning – Before Release
Documents (Within and in CVS) – 0.1 To n.9
Code (Coding Guidelines are used for version history) - IT Base lined, ST baselined at a directory level
BP: Check in into CVS repository only after the code is compiled & unit tested, important so that others can do their build
Baselining & Versioning – After Release
Label at project level
Release – Release Checklist + Release Notes + Release Log + User Docs
Defect Identification and Traceability : www.scmGalaxy.com scmGalaxy Defect Identification and Traceability Use Defect tracking tool for defect login and status tracking
Use MPower for effort tracking on review and tests
Review defect code
Defect Logs/ Mpower– Defect Track Id
Tests – Integration & System Tests
Defect Id (from Mpower) part of Comment
Post release defects
Comment Containing PRDF:
Change Control : www.scmGalaxy.com scmGalaxy Change Control Log the change details into CR Form
Establish CR Log in Mpower and track effort and status
Perform analysis
Get approval
Implement changes
Perform Regression test as applicable
Label CVS after implementing CR/ part of release comment
Store the release in the Release folder.
Release : www.scmGalaxy.com scmGalaxy Release Release Note
Release Checklist
Release Log
User Manual
Release Label - Mandatory
CI Status Accounting & CM Audit : www.scmGalaxy.com scmGalaxy CI Status Accounting & CM Audit Perform CM audit to check the integrity of the CIs regularly and before release of SW using the CM Audit Checklist. – Physical + functional
Collect data on the status of CRs, Defects, and releases
Collect data on the effort spent on CM activities
Report on the above measures in PM Review, and Post Harvest Reports appropriately.
Archival, Retrieving : www.scmGalaxy.com scmGalaxy Archival, Retrieving Backup & Archiving
Central folder is backed up by IS.
All Any project specific folders to be backed up to central folder by CC/ - Address Part of CM Plan
Request Helpdesk for Burning a CD / Archival folder
BP: 2 CDs for Archival
Librarian maintains Archives – Archival Form
Confidentiality assured
Retrieving
Helpdesk – Retrieval request – on Shared Server
Librarian on Archives
C:\ or D:\ or E:\ - Individuals responsible
SCM Summary : www.scmGalaxy.com scmGalaxy SCM Summary Create and use Central folder
Identify and Name CIs in the Project
Use guidelines for versioning and labeling at different stages of a CIs
Use Mpower for Defect tracking
Identify and Control changes
Track status of Defects, CRs and effort spent on CM activities
Perform Release Checks and CM audits to check for the integrity of the CIs before releases
On a regular basis, report on the above activities to the PM/PL.
Perform Archiving as required
What is CVS? : www.scmGalaxy.com scmGalaxy What is CVS? CVS is Concurrent Versions System.It is a source control system. Using it, one can record the history of source files.
With CVS, old versions can be retrieved to see exactly which change caused the bug.
Use CVS commands to get your own copy of the files into a working directory, and then work on that copy.
When finished a set of changes, check (or commit) them back into the repository. The repository then contains the changes which was made, as well as recording exactly what was the change, and other such information.
CVS stores all the versions of a file in a single file and only stores the deltas i.e differences between versions.
CVS merges the work when each developer is done.
CVS Continues…….. : www.scmGalaxy.com scmGalaxy CVS Continues…….. How to get to CVS?
In your shell or dos box enter
cvs login
Enter your password when prompted.
What is a module?
The modules are symbolic names for some collection of source directories and files
CVS Continues…. : www.scmGalaxy.com scmGalaxy CVS Continues…. What is a Branch?
Branches allow development of different lines of software at the same time. CVS allows you to isolate changes onto a separate line of development, known as a branch. When you change files on a branch, those changes do not appear on the main trunk or other branches.
What is a Tag?
CVS Tags are used within CVS repository to mark revisions of particular interest to the development process to indicate that the files tagged are at an equivalent stage.You cannot add files and directories using a simple tag.
CVS Continues… : www.scmGalaxy.com scmGalaxy CVS Continues… CVS Continues…. Help !!!
cvs --help-options
To see a list of common commands
cvs --help-command
To see syntax for specific command
cvs –H
http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/
Slide 27 : www.scmGalaxy.com Thank You ! Author: Rajesh Kumar
rajeshkumar.raj06@gmail.com