Software Configuration Management
eBook - ePub

Software Configuration Management

  1. 640 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Software Configuration Management

About this book

An effective systems development and design process is far easier to explain than it is to implement. A framework is needed that organizes the life cycle activities that form the process. This framework is Configuration Management (CM). Software Configuration Management discusses the framework from a standards viewpoint, using the original

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Software Configuration Management by Jessica Keyes in PDF and/or ePUB format, as well as other popular books in Computer Science & Information Technology. We have over one million books available in our catalogue for you to explore.

1
INTRODUCTION TO SOFTWARE CONFIGURATION MANAGEMENT

Software configuration management (SCM, or just plain CM) is an organizational framework—that is, a discipline—for managing the evolution of computer systems throughout all stages of systems development. That a rigorous framework for producing quality computer systems is needed is undeniable according to the following statistics:

More than half (53 percent) of IT projects overrun their schedules and budgets, 31 percent are cancelled, and only 16 percent are completed on time.
Source: Standish Group
Publication date: 2000
Of those projects that failed in 2000, 87 percent went more than 50 percent over budget.
Source: KPMG Information Technology
Publication date: 2000
45 percent of failed projects in 2000 did not produce the expected benefits, and 88 to 92 percent went over schedule.
Source: KPMG Information Technology
Publication date: 2000
Half of new software projects in the United States will go significantly over budget.
Source: META Group
Publication date: 2000
The average cost of a development project for a large company is $2,322,000; for a medium company, it is $1,331,000; and for a small company, it is $434,000.
Source: Standish Group
Publication date: 2000
$81 billion was the estimated cost for cancelled projects in 1995.
Source: Standish Group
Publication date: 1995
More than half (52.7 percent) of projects were projected to cost over 189 percent of their original estimates.
Source: Standish Group
Publication date: 2000
Projects completed by the largest American companies have only approximately 42 percent of the originally proposed features and functions.
88 percent of all U.S. projects are over schedule, over budget, or both.
Source: Standish Group
Publication date: 2000
The average time overrun on projects is 222 percent of original estimates.
Source: Standish Group
Publication date: 2000

During the past decade, the capabilities and sheer innovativeness of software technology has far outpaced our ability to manage the complexity of problems that software development must address. Unfortunately, the ability to develop and deliver reliable, usable software within budget and schedule commitments continues to elude many software organizations.
Software configuration management (SCM) provides the means to manage software processes in a structured, orderly, and productive manner. SCM spans all areas of the software life cycle and impacts all data (see Chapter 10) and processes. Hence, maximum benefit is derived when SCM is viewed as an engineering discipline rather than an art form, which, unfortunately, many developers have a tendency to do.
As an engineering discipline, SCM provides a level of support, control, and service to the organization:


  • Support. SCM is a support function in that it supports program engineers and developers, the program, the corporation, and, in a number of situations, the customer.
  • Control. SCM is a control function in that it controls specifications, documents, drawings, requirements, tools, software, and other deliverables.
  • Service. SCM is a service provider in that it supports people and controls data. The role of the SCM manager is to ensure that (1) SCM personnel are properly trained and have the necessary resources (budget and tools) to do an efficient and effective job; (2) a proper balance of control and support is tailor made to each program that is being supported; and, (3) the SCM function is flexible and can accommodate the changing needs and requirements of the developers, customers, the program, and the company.
The process of SCM has not really changed much during the past 20 to 30 years. However, the environment that SCM operates within has changed significantly and is likely to continue to change. Over the past few decades, we have migrated from centralized mainframes using just a few programming languages such as COBOL and FORTRAN to decentralized, networked, Web-based environments with thousands of devices using hundreds of software packages and dozens of programming languages.
The most significant impacts to SCM have centered on the automated tools and the library systems they operate upon. Up until the 1990s, the entire focus of SCM was on version control with very few vendors from which to choose. Today, there are literally hundreds of small to large SCM vendors promoting a variety of products from simple version control to sophisticated tools that purport to establish and monitor the entire software development and production environment.
Regardless of this amazing diversity, the process of CM is basically immutable—that is, the process does not change, only what is being managed changes. What this means is that CM is as applicable to a mainframe shop as it is to a shop running all Web-based applications in a networked, secured environment. The key is in the process.


SCM AND PROCESS IMPROVEMENT

Improvement depends upon changing current processes along with the accompanying environment. SCM, then, provides the underlying structure for change and process improvement. We refer to this as process-based configuration management.
For example, the first step to improve the product is to know how the product is currently produced. The second step for improvement is to foster an atmosphere in which change can be readily accommodated. If change does not appear possible, then improvement is also unlikely. SCM measurements of current practices and their associated metrics can help identify where processes are working and where they need to be improved. Such change efforts should lead to increased productivity, integrity, conformance, and customer satisfaction.
The Institute of Configuration Management (ICM) defines configuration management (CM) as ā€œthe process of managing the full spectrum of an organization’s products, facilities, and processes by managing all requirements, including changes, and assuring that the results conform to those requirementsā€ [ICM 1998]. By this definition, CM can also be called process configuration management because it includes the process of managing an organization’s processes and procedures.
Many organizations can be characterized as Level 1 organizations as defined in the Software Engineering Institute’s Software Capability Maturity ModelĀ® (SEI SW-CMM). These Level 1 organizations rely heavily on ā€œheroesā€ to accomplish the work. The organization’s processes are not documented, and few people know how the work is accomplished. ā€œThe software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort and heroicsā€ [Paulk 1995].
An effective SCM program, when applied to organizational processes, identifies which processes need to be documented. Any changes to those processes are also tracked and documented. Adhering to these processes will reduce an organization’s dependence on heroics for the work to be accomplished and the project to succeed. It also relieves the frustration and problems that arise if one of the ā€œheroesā€ is not available to perform a task.
SCM is an essential discipline in the everyday activities of defining requirements, designing, writing, compiling, testing, and documenting the software. SCM is not simply version control or format control. It is not a clerical ā€œafter-the-factā€ function. It is a technical field of expertise with formal practices.
The benefits derived from SCM are directly proportional to the extent that SCM is implemented. The primary objective is to deliver a quality product that meets the stated requirements, on schedule, and within budget. An effective SCM program supports this objective by tracking each requirement from concept through implementation to customer delivery.


MEASUREMENTS AND METRICS

The status accounting aspect of SCM provides management visibility into the state of software products. Status accounting data includes measurements (see Chapter 13) that can show the location of bottlenecks in the software development process, and can indicate the maturity of the software products.
Hermann [1998] describes the use of software changes to measure product maturity and readiness to deliver the software. He goes on to mention other metrics that may be useful, including average severity, severity level distribution, average closure time, charts for each severity level, and charts for each configuration item or sub-system.
A measure can be defined as ā€œa standard of measurement, the extent, dimensions, capacity, etc, of anything, especially as determined by a standard, an act or process of measuring, a result of measurementā€ [Starrett 1998]. Examples of a measure include the number of defects found in a release or the number of source lines of code delivered. A metric can be defined as ā€œa calculated or composite indicator based on two or more measures, or a quantified measure of the degree to which a system, component, or process possesses a given attribute. An example of a metric is defects per thousand source lines of codeā€ [Starrett 1998].
A metric can also be ā€œa composite of measures that yields systematic insight into the state of processes or products and drives appropriate actionsā€ [Pitts 1997]. Measures (measurements) and metrics can be used to identify areas of the process that require attention. These areas are identified through compiling measurements into metrics. Measurements are compiled in an electronic spreadsheet, a database, or by hand. There are also several management tools that allow collection of measurements and derivation of metrics. The format is not the issue; the data is.
A metrics program should include the following fundamentals [Pitts 1997]:

  • A motive that is compelling, not simply conformism
  • Benchmarks that define nominal operation of the software development process
  • Goals that define the purpose of the metrics program
  • Strategy for achieving the goals
  • An appropriate model (COCOMO, SLIM, etc.), whether it is a mathematical model or heuristic
  • Collection of data that is unobtrusive
  • Analysis of the data to find patterns: patterns imply consistency and consistency implies process
  • Action on the an...

Table of contents

  1. COVER PAGE
  2. TITLE PAGE
  3. COPYRIGHT PAGE
  4. DEDICATION
  5. FOREWORD
  6. PREFACE
  7. 1. INTRODUCTION TO SOFTWARE CONFIGURATION MANAGEMENT
  8. 2. PROJECT MANAGEMENT IN A CM ENVIRONMENT
  9. 3. THE DoD CM PROCESS MODEL
  10. 4. CONFIGURATION IDENTIFICATION
  11. 5. CONFIGURATION CONTROL
  12. 6. CONFIGURATION STATUS ACCOUNTING
  13. 7. A PRACTICAL APPROACH TO DOCUMENTATION AND CONFIGURATION STATUS ACCOUNTING
  14. 8. CONFIGURATION VERIFICATION AND AUDIT
  15. 9. A PRACTICAL APPROACH TO CONFIGURATION VERIFICATION AND AUDIT
  16. 10. CONFIGURATION MANAGEMENT AND DATA MANAGEMENT
  17. 11. CONFIGURATION CHANGE MANAGEMENT
  18. 12. CONFIGURATION MANAGEMENT AND SOFTWARE ENGINEERING STANDARDS REFERENCE
  19. 13. METRICS AND CONFIGURATION MANAGEMENT REFERENCE
  20. 14. CM AUTOMATION
  21. APPENDIX A: PROJECT PLAN: ORSS SOFTWARE PROJECT PLAN
  22. APPENDIX B: DOD ENGINEERING CHANGE PROPOSAL
  23. APPENDIX C: SAMPLE DATA DICTIONARY
  24. APPENDIX D: PROBLEM CHANGE REPORT
  25. APPENDIX E: TEST PLAN
  26. APPENDIX F: PROGRAM CODE INSPECTION FORM
  27. APPENDIX G: SAMPLE INSPECTION PLAN
  28. APPENDIX H: QA HANDOVER DOCUMENT
  29. APPENDIX I: SYSTEM SERVICE REQUEST
  30. APPENDIX J: DOCUMENT CHANGE REQUEST (DCR)
  31. APPENDIX K: PROBLEM/CHANGE REPORT
  32. APPENDIX L: SOFTWARE REQUIREMENTS CHANGES
  33. APPENDIX M: PROBLEM REPORT (PR)
  34. APPENDIX N: CORRECTIVE ACTION PROCESSING (CAP)
  35. APPENDIX O: SPECIFICATION CHANGE NOTICE
  36. APPENDIX P: PROJECT STATEMENT OF WORK
  37. APPENDIX Q: PROBLEM TROUBLE REPORT (PTR)
  38. APPENDIX R: LIBRARY/BASELINE CHANGE FORM
  39. APPENDIX S: SAMPLE MAINTENANCE PLAN
  40. APPENDIX T: SOFTWARE CONFIGURATION MANAGEMENT PLAN (SCMP)
  41. APPENDIX U: ACRONYMS AND GLOSSARY: ACRONYMS
  42. APPENDIX V: FUNCTIONAL CONFIGURATION AUDIT (FCA) CHECKLIST
  43. APPENDIX W: PHYSICAL CONFIGURATION AUDIT (PCA) CHECKLIST
  44. APPENDIX X: SCM GUIDANCE FOR ACHIEVING THE ā€œREPEATABLEā€ LEVEL ON THE SOFTWARE
  45. APPENDIX Y: SUPPLIER CM MARKET ANALYSIS QUESTIONNAIRE