1 / 45

Ivica Crnkovic Mälardalen University Department of Computer Engineering ivica.crnkovic@mdh.se

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

kaili
Download Presentation

Ivica Crnkovic Mälardalen University Department of Computer Engineering ivica.crnkovic@mdh.se

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering Course Software Configuration Management Ivica Crnkovic Mälardalen University Department of Computer Engineering ivica.crnkovic@mdh.se SE course Software Configuration Management

  2. 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

  3. Document A Version 1 Version 2 Version 1 revision 1 Version Management Version 0 SE course Software Configuration Management

  4. CR CR CR Change Requests Modified items Problem Report Modified product Change Management SE course Software Configuration Management

  5. 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

  6. Ver 1 Products Release Management Doc SE course Software Configuration Management

  7. ! ? Work Space Management Project Login Project Structures Data Repositories etc. SE course Software Configuration Management

  8. Line Commands Version Management – Some tools • RCS commands (Revision Control System) • Managing file versions • CVS Commands • Managing structures SE course Software Configuration Management

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. w w w 1.3 1.2 w w Unreserved Checkout Model – parallel work Merge 1.1 SE course Software Configuration Management

  22. 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

  23. Change Management SE course Software Configuration Management

  24. 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

  25. 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

  26. 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

  27. What are advantages of change sets? • What are disadvantages of Change sets? SE course Software Configuration Management

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. Example of Change Requests List SE course Software Configuration Management

  35. 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

  36. 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

  37. Example 1- Evolutionary Development Model SE course Software Configuration Management

  38. Example 2 - Waterfall Development Model SE course Software Configuration Management

  39. Example 4 - Response time SE course Software Configuration Management

  40. Capability Maturity Model Software Configuration Management as a process SE course Software Configuration Management

  41. 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

  42. CM Policy Checklist Tools Templates SCM Process How to manage SCM? SE course Software Configuration Management

  43. 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

  44. SCM Roles • Project Manager • Software Configuration Control Board • SCM Group • Project Members • Line Manager • Software Quality Assurance group SE course Software Configuration Management

  45. 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

More Related