Software Configuration Management And CVS
-
Upload
rajesh-kumar -
Category
Education
-
view
2.751 -
download
8
description
Transcript of Software Configuration Management And CVS
sG
Software Software Configuration Configuration
Management And Management And CVSCVS
www.scmGalaxy.com
scmGalaxy
Author: Rajesh [email protected]
www.scmGalaxy.com
scmGalaxy
Agenda
Purpose and Objectives of SCM Process SCM Activities SCM summary How to use CVS
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
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
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.
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
DESIGNCODE
TESTSDP
WBS
SOFT-WARE
REQUIRE-MENTS
VSS LIBRARY
www.scmGalaxy.com
scmGalaxy
Where does CM Fit in the whole of SW Life
Project Repository
Changes (Bug fixes, change requests, Change log)
Project Initiation
Estimations, Proposal, SOW, Kickoff, materials,manuals, stds
Requirements Development
Requirements doc, Prototype, records
PlanningPlans and Records
Design
Designs and Records
CodingSource, Object, Records
TestingTCDs, Results, Fixes
Post release Defect fixes
Acceptance test fixes
Release
Single Release, Multiple version releases
Records-MOM-Manuals&Stds-Status Reports
www.scmGalaxy.com
scmGalaxy
Typical items to be controlled in SW
1. Requirements Document
2. Project Plan
3. SRS
4. Any Executable or Paper Prototype
5. User Manual
6. Design Specification
7. Source code
8. Test plan and procedure
9. Test cases and recorded results
10. Operation and Installation Manuals
11. Database description
12. Maintenance documents
13. Standards and Procedures for software engineering
14. Executable programs?
15. Standards and Guidelines
16. Customer Supplies
These are called as Configuration Items (CI):
One or more HW or SW components treated as a unit for configuration management purposes.
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.
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
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
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.
www.scmGalaxy.com
scmGalaxy
Standard Directory Structure
www.scmGalaxy.com
scmGalaxy
Naming and Identification of CIs
Plans Requirements Designs Test Cases Source Code (Related modules) Release Notes User Documentation Release …
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
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
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:<Defect Id(s) from Mpower>
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.
www.scmGalaxy.com
scmGalaxy
Release
Release NoteRelease ChecklistRelease LogUser ManualRelease Label - Mandatory
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.
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
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
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.
www.scmGalaxy.com
scmGalaxy
CVS Continues……..
How to get to CVS? In your shell or dos box enter
cvs loginEnter your password when prompted.
What is a module? The modules are symbolic names for some
collection of source directories and files
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.
www.scmGalaxy.com
scmGalaxy
CVS Continues…CVS Continues….
Help !!! cvs --help-optionsTo see a list of common commands cvs --help-commandTo see syntax for specific command cvs –H <command>
http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/cvs/
sGwww.scmGalaxy.com
Author: Rajesh [email protected]