450 likes | 543 Views
Software Engineering Course Software Configuration Management . Ivica Crnkovic Mälardalen University Department of Computer Engineering ivica.crnkovic@mdh.se. Software Configuration Management. SCM - takes care about development components and products
E N D
Software Engineering Course Software Configuration Management Ivica Crnkovic Mälardalen University Department of Computer Engineering ivica.crnkovic@mdh.se SE course Software Configuration Management
Software Configuration Management • SCM - takes care about development components and products • A SCM includes the following disciplines • Version Management • Change Management • Configuration and Build Management • Release Management • Work Space Management SE course Software Configuration Management
Document A Version 1 Version 2 Version 1 revision 1 Version Management Version 0 SE course Software Configuration Management
CR CR CR Change Requests Modified items Problem Report Modified product Change Management SE course Software Configuration Management
Ver 0 Ver 2 Item B Item A Ver 0 Ver 0 Ver 1 Ver 1 Ver 2 Ver3 Ver 0 Ver 1 Build/make Ver 0 Ver 2 Products Configuration and Build Management Ver 1 Item C Ver 0 Ver 1 Ver 2 Basline a Basline b SE course Software Configuration Management
Ver 1 Products Release Management Doc SE course Software Configuration Management
! ? Work Space Management Project Login Project Structures Data Repositories etc. SE course Software Configuration Management
Line Commands Version Management – Some tools • RCS commands (Revision Control System) • Managing file versions • CVS Commands • Managing structures SE course Software Configuration Management
Check In Check Out File.txt File.txt RCS File.txt File.txt File.txt File.txt File.txt Version 1.1 Versioned Files • Versioned Files - include several versions of a file • Placed in a RCS library (directory) File.txt,v File.txt File.txt Version 1.1 SE course Software Configuration Management
Symbolic Names config2 config3 config1 config4 1.1 1.2 1.3 1.4 Unchanged Rel Exp Stable States Main Branch 1.2.1.1 1.2.1.2 Branch Stable Exp Versioned File File.txt,v SE course Software Configuration Management
Versioned Files Version Attributes: • Version Number • Author • Creation Date • Log Message • State - one state per version • Symbolic Name(s)- unique names within a versioned file SE course Software Configuration Management
RCS Keywords It is possible to define some keywords in the files • They give information about versioned files • They are automatically updated by RCS • $Id$ - version number, date, author, state • $Log$ - A log message • $Author$ • $Date$ • etc. SE course Software Configuration Management
File header example // FILE lscom//// $Id$//// HISTORY:// $Log$ AFTER first checkin/checkout ci lscom // FILE lscom//// $Id: lscom,v 1.1 2001/02/03 13:28:18 icc Exp $//// HISTORY:// $Log: lsver,v $// Revision 1.1 2001 /02/03 13:28:18 icc// Initial revision SE course Software Configuration Management
File header example – after second checkin/checkout ci lscomAdded –l option. // FILE lscom//// $Id: lscom,v 1.2 2001/02/04 12:08:27 icc Exp $//// HISTORY:// $Log: lsver,v $// Revision 1.2 2001/02/04 12:08:27 icc// Added –l option//// Revision 1.1 2001 /02/03 13:28:18 icc// Initial revision SE course Software Configuration Management
RCS Commands • ci - check in a file version • co - check out a file version • rlog - get information about RCS files • rcs - a general purpose command • rcsdiff - show differences between two versions • rcsmerge - merge two versions • rcsclean - remove working file versions • ident - show RCS keywords in files SE course Software Configuration Management
User B User A C:\project C:\project Folder B Folder A Folder B Folder A Folder C Folder D Folder C Folder D CVS • Based on RCS • Manages structures instead of files • MODULES, Folders, Files TCP/IP CSV-root Local Work Area Folder B Folder A Folder C Folder D SE course Software Configuration Management
User A C:\project CSVROOT Folder B Folder A Folder B Folder A Folder C Folder D Folder C Folder D CVS Update Commit SE course Software Configuration Management
Developers’ collaboration How to manage parallel development? Two possibilities: Reserved checkout model Unreserved checkout model User A File X Edit File X User B SE course Software Configuration Management
1.3 1.1 1.2 L L w w w w Reserved Checkout Model – serialising activities User A User B SE course Software Configuration Management
w w L 1.1.1.1 1.1.1.2 1.3 1.2 L L w w w w Reserved Checkout Model – parallel work 1.1 Merge SE course Software Configuration Management
w w w 1.3 1.2 w w Unreserved Checkout Model – parallel work Merge 1.1 SE course Software Configuration Management
GUI.1 Kanji.1 GUI.2 Kanji.2 Kanji.3 Kanji.3 Kanji.4 GUI.3 GUI.3 GUI.5 GUI.4 Kanji.5 Kanji.6 Kanji.6 Distributed Version Control Boston GUI.0 GUI.0 Tokyo Tichy 99 SE course Software Configuration Management
Change Management SE course Software Configuration Management
Change management • Managing logical (functional) changes instead of physical (items) changes • Different names and slightly different principles • Change sets • Change requests • Tasks • Etc. SE course Software Configuration Management
A- bugfix B FileA´ A- funct X FileB B- funct X C- bugfix B FileC´ Change sets – New items combined from previous basleine and defined changes R + B BugFix B Funct X Baseline R FileA FileB FileC SE course Software Configuration Management
A- bugfix B FileA´´ FileB´ C- bugfix B FileC´ Change sets – generating non-existing versions R + B + X BugFix B Funct X Baseline R FileA A- funct X FileB B- funct X FileC SE course Software Configuration Management
What are advantages of change sets? • What are disadvantages of Change sets? SE course Software Configuration Management
Change Requests Concept: • All functional changes are registered. • Physical changes made in files are connected to functional changes. Change Request - a document that describes a functional change and lists the files that have been changed SE course Software Configuration Management
Change Request Support • Specify what changes should be made. Name Title Priority:Low [Medium, High] Reason:Error [Improvement, New Function] Function:function Description: description text.... SE course Software Configuration Management
Create CR CRs Product Release Release doc Update CRs Check In Files Files Check Out Register changes that are made. Modify Files SE course Software Configuration Management
File:filename version version ... File:filename version version ... filename version log message filename version log message Change Request Format Name Version State Owner Title Priority:Low [Medium, High] Reason:Error [Improvement, New Function] Function:function Description: description text.... SE course Software Configuration Management
Change Request Example CR-Name StateResponsibleDate CR001-FixSort Approved icrnkovi 02-10-12 Title : Correct sort function for negative numbers Created: 02-09-20 Type: Error Priority: Medium Files: ReqSpec 1.1 1.2 DesignSpec 1.4 Description: When numbers are slightly less then 0 the sort routinebehaves strange... SE course Software Configuration Management
Change Request Support • Follow the status of the project - what has been done, what is requested to be changed. • Are there any CRs that are empty? • Are there any CRs that are not completed? • Produce a document about changes made in a product. SE course Software Configuration Management
Example of Change Requests List SE course Software Configuration Management
Create a CR Initiate Project Init Experimental Modify files (check out/in) Implemented Changes completed Resting Tested Changes tested Terminated Approve Changes Released Release Software CR states - controlling the development process SE course Software Configuration Management
CR Metrics • How many changes have been made? • How changes are distributed among developers? • How does the change process look like? Answers to these questions should have impact on the project planning! The version management of CRs makes it possible to answer to these questions SE course Software Configuration Management
Example 1- Evolutionary Development Model SE course Software Configuration Management
Example 2 - Waterfall Development Model SE course Software Configuration Management
Example 4 - Response time SE course Software Configuration Management
Capability Maturity Model Software Configuration Management as a process SE course Software Configuration Management
G1 G2 G4 G6 Project Phases: Planning Implementation Verification SCM process What is SCM in CMM? SCM is defined as a process! CMM requires a systematic approach to SCM. SE course Software Configuration Management
CM Policy Checklist Tools Templates SCM Process How to manage SCM? SE course Software Configuration Management
CM Policy • The purpose of CM is to establish and maintain the integrity of the products. • The responsibility for CM for each project is explicitly assigned. • The CM is implemented throughout the product's life cycle. • The CM is implemented for externally deliverable products, internal products, and support tools used inside the project. • The projects have access to a repository for storing configuration items and the associated CM records. • The CM activities and structures are audited on a periodic basis. SE course Software Configuration Management
SCM Roles • Project Manager • Software Configuration Control Board • SCM Group • Project Members • Line Manager • Software Quality Assurance group SE course Software Configuration Management
G1 G2 G2 G4 G4 G6 G6 ProjectPhase: ProjectPhase: Planning Planning Implementation Implementation Verification Verification Write SCM Plan Write SCM Plan Define Change Requests Define Change Requests Review baselines and new CRs Review products Project Manager or SCCB Create baselines Integrate products Prepare SCM structures SCM Activities Collect measurements SCM Group Check In/Check Out, update CRs Define new CRs Project Members Define states of SCM items and CRs SCM Process Overview Review baselines and new CRs Review products Project Manager or SCCB Create baselines Integrate products Prepare SCM structures SCM Activities Collect measurements SCM Group Check In/Check Out, update CRs Define new CRs Project Members Define states of SCM items and CRs SE course Software Configuration Management