Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

SCM - More than just a version control tool!


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

SCM - More than just a version control tool!

  1. 1. Software Configuration Management More than just a version control tool! Emile van de Logt ( CMG Trade Transport & Industry B.V. (ATI-20) Espinode presentation, 12-04-1999
  2. 2. Agenda <ul><li>Introduction of speaker </li></ul><ul><li>Relevant standards </li></ul><ul><li>What is Configuration Management? </li></ul><ul><ul><li>Configuration Identification </li></ul></ul><ul><ul><li>Configuration Control </li></ul></ul><ul><ul><li>Configuration Status Accounting </li></ul></ul><ul><ul><li>Configuration Audits </li></ul></ul><ul><li>Software baselines </li></ul><ul><li>Other items of interest... </li></ul><ul><li>Summary </li></ul>
  3. 3. Introduction of speaker <ul><li>TU Eindhoven: Electrical Engineering </li></ul><ul><li>Holec Ridderkerk, (senior) software engineer </li></ul><ul><li>Holec Ridderkerk, SPI co-ordinator </li></ul><ul><li>CMG Trade Transport & Industry, SPI consultant </li></ul><ul><ul><li>SEPG Signaal Communications Huizen </li></ul></ul><ul><ul><li>Instructor of several CMG courses (CMM & SPI, PSP, Testing) </li></ul></ul><ul><ul><li>Member of SPIder’s “SPI for embedded software” </li></ul></ul>
  4. 4. Relevant Standards <ul><li>MIL-STD-973: Configuration Management </li></ul><ul><li>MIL-STD-498: Software Development & Documentation </li></ul><ul><li>Capability Maturity Model (CMM), V1.1 </li></ul><ul><ul><li>Maturity Level 2: Repeatable </li></ul></ul><ul><ul><ul><li>KPA: Software Configuration Management (SCM) </li></ul></ul></ul><ul><ul><ul><ul><li>Commitment to Perform: 1 key practice </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Ability to Perform: 5 key practices </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Activities Performed: 10 key practices </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Measurement & Analysis: 1 key practice </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Verifying Implementation: 4 key practices </li></ul></ul></ul></ul>
  5. 5. CMM KPA Structure Ability to Perform (5) Commitment to Perform (1) Measurement and Analysis (1) Verifying Implementation (4) Activities Performed (10) Preconditions Implementation Verification Goals (4)
  6. 6. What is Configuration Management? <ul><li>IEEE-STD-610 / MIL-STD-973 </li></ul><ul><ul><li>Identification of configuration items </li></ul></ul><ul><ul><li>Control changes to configuration items </li></ul></ul><ul><ul><li>Record and approve the status of configuration items </li></ul></ul><ul><ul><li>Verification if procedures / standards are followed </li></ul></ul><ul><li>CMM, KPA Software Configuration Management </li></ul><ul><ul><li>Purpose : establish & maintain integrity of products throughout the software life cycle </li></ul></ul><ul><ul><li>1: SCM activities are planned </li></ul></ul><ul><ul><li>2: SW is identified, controlled & available </li></ul></ul><ul><ul><li>3: Changes to software work products are controlled </li></ul></ul><ul><ul><li>4: Affected groups and individuals are informed of status & content of software baselines </li></ul></ul>
  7. 7. CMM Cross Reference <ul><li>Software Development Policies </li></ul><ul><li>Configuration Management </li></ul><ul><ul><li>Configuration Identification </li></ul></ul><ul><ul><li>Configuration Control </li></ul></ul><ul><ul><li>Configuration Status Accounting & Baselines </li></ul></ul><ul><li>Quality Assurance </li></ul><ul><ul><li>FCA & PCA </li></ul></ul><ul><ul><li>Project audits </li></ul></ul><ul><li>Project Management </li></ul><ul><ul><li>Project Planning / SDP </li></ul></ul><ul><ul><li>Project Tracking </li></ul></ul><ul><li>Training Program </li></ul><ul><li>CVS Tool </li></ul><ul><li>CO.01 </li></ul><ul><li>AC.04 </li></ul><ul><li>AB.01, AB.02, AB.03, AC.05 </li></ul><ul><li>AC.06, AC.07, AC.08, AC.09 </li></ul><ul><li>AC.10 </li></ul><ul><li>AC.10, VE.03, VE.04 </li></ul><ul><li>AC.01, AC.02 </li></ul><ul><li>ME.01, VE.01, VE.02 </li></ul><ul><li>AB.04, AB.05 </li></ul><ul><li>AC.03 </li></ul>
  8. 8. Configuration Identification <ul><li>AC.04: work products are identified </li></ul><ul><li>Configuration items are: </li></ul><ul><ul><li>System </li></ul></ul><ul><ul><li>Hardware Configuration Item (HWCI) </li></ul></ul><ul><ul><ul><li>Prime Item </li></ul></ul></ul><ul><ul><ul><li>Critical Item </li></ul></ul></ul><ul><ul><li>Computer Software Configuration Item (CSCI) </li></ul></ul><ul><ul><li>Software unit </li></ul></ul><ul><li>Unique identification by: </li></ul><ul><ul><li>a 12NC number </li></ul></ul><ul><ul><li>a unique name </li></ul></ul><ul><li>Basic CSCI documentation: SRS, SDD, STD, SCL, VDD </li></ul>
  9. 9. Configuration Control <ul><li>AB.01: authority for managing baselines exists or is established </li></ul><ul><li>AB.02: responsibility for co-ordinating / implementing SCM exists </li></ul><ul><li>AB.03: Adequate resources & funding are provided </li></ul><ul><li>AC.05: Change requests / problem reports are initiated, reviewed, approved & tracked to closure </li></ul><ul><li>Problem / Change Form (PCF) </li></ul><ul><li>Supported by PRINS tool </li></ul><ul><li>CMB administrates all PCFs </li></ul><ul><li>A Change Control Board (CCB) is present for every project </li></ul>
  10. 10. 7. Close PCF Evaluated, Change Category II Rejected Change proposal approved new change proposal 5. CCB to decide 2 Evaluated, Change Category I 1. Initiate PCF 3. CCB to decide 1 rejected more detailed analysis needed 2. Analyse PCF 4. Propose change 6. Implement and Test PCF
  11. 12. Status Accounting & Baselines <ul><li>AC.06: Changes to baselines are controlled according to a documented procedure </li></ul><ul><li>AC.07: Products from the baseline are created and their release is controlled according to a documented procedure </li></ul><ul><li>AC.08: status of CIs is recorded according to a documented procedure </li></ul><ul><li>AC.09: Standard reports of SCM activities & baseline content are developed and made available </li></ul><ul><li>All changes to baselines are done with a PCF </li></ul><ul><li>Status and content is recorded with: </li></ul><ul><ul><li>Release Notes (beta versions) </li></ul></ul><ul><ul><li>Release Bulletin (baseline versions) </li></ul></ul><ul><ul><li>Version Description Document (VDD) </li></ul></ul><ul><li>Project Progress Report contains a configuration index </li></ul>
  12. 13. Configuration Audits <ul><li>AC.10: Baseline audits are conducted </li></ul><ul><li>Functional Configuration Audits (FCA) </li></ul><ul><ul><li>Validate that the product documentation </li></ul></ul><ul><ul><ul><li>is according to the plan(s) </li></ul></ul></ul><ul><ul><ul><li>describes a product that meets the requirements </li></ul></ul></ul><ul><li>Physical Configuration Audits (PCA) </li></ul><ul><ul><li>Validate that the product physically can be build using the documentation </li></ul></ul><ul><li>Baseline audits </li></ul><ul><ul><li>Check integrity of CVS </li></ul></ul><ul><ul><li>CVS contents compliant with actual documentation? </li></ul></ul>
  13. 14. Configuration Baselines <ul><li>Functional baseline </li></ul><ul><ul><li>Initially approved documentation describing system characteristics </li></ul></ul><ul><li>Allocated baseline </li></ul><ul><ul><li>Initially approved documentation describing an item’s characteristics that are allocated from a higher level CI </li></ul></ul><ul><li>Product baseline </li></ul><ul><ul><li>Initially approved documentation describing all characteristics </li></ul></ul><ul><ul><li>Actual equipment and software </li></ul></ul>
  14. 15. Configuration Baselines <ul><li>FBL ABL PBL </li></ul><ul><li>System SSS - FBL + </li></ul><ul><li>SSDD ATP,ATD,ATR </li></ul><ul><li>IRS,IDD ITP,ITD,ITR </li></ul><ul><li>CSCI - SRS ABL + </li></ul><ul><li>STP,STD,STR </li></ul><ul><li>SDD,SUM,VDD </li></ul>
  15. 16. Tailoring options <ul><li>Small CSCI: </li></ul><ul><ul><li>use consolidated documents (C-SDD, C-STD) </li></ul></ul><ul><li>Separate interface documents needed for a CSCI: </li></ul><ul><ul><li>IRS & IDD -> part of Allocated Baseline </li></ul></ul><ul><li>Only one CSCI to develop: </li></ul><ul><ul><li>SRS defines the Functional Baseline </li></ul></ul><ul><ul><li>No Allocated baseline </li></ul></ul><ul><li>Tailoring options -> Software Development Plan (SDP) </li></ul>
  16. 17. Other items of interest... <ul><li>Metrics collection is necessary: </li></ul><ul><ul><li>Time spent on SCM activities (compare with plan!) </li></ul></ul><ul><ul><li>Status of problem reports </li></ul></ul><ul><ul><li>Completion of milestones (e.g. baselines established) </li></ul></ul><ul><li>SCM policy is needed </li></ul><ul><li>Training program is needed </li></ul><ul><ul><li>SCM in general </li></ul></ul><ul><ul><li>CVS tool </li></ul></ul><ul><li>Project plan should contain a section on SCM </li></ul><ul><li>Establish good working relations with: </li></ul><ul><ul><li>senior management </li></ul></ul><ul><ul><li>software engineers </li></ul></ul><ul><ul><li>QA department (!) </li></ul></ul>
  17. 18. Summary / Lessons Learned <ul><li>Configuration management consists of 4 aspects </li></ul><ul><li>Much more than just a version control tool! </li></ul><ul><li>Easy to make it bureaucratic! </li></ul><ul><li>Software metrics should be collected </li></ul><ul><li>Everybody must be involved: </li></ul><ul><ul><li>Project managers </li></ul></ul><ul><ul><li>QA </li></ul></ul><ul><ul><li>Software engineers </li></ul></ul><ul><ul><li>CMB </li></ul></ul><ul><li>Everybody has different views on SCM </li></ul><ul><li>Next step: introduce this in Systems & Hardware groups! </li></ul>