Software Configuration Items
- Computer programs (both source and executable)
- Documentation (both technical and user)
- Data (contained within the program or external to it)
Fundamental Sources of Change
- New business or market conditions dictate changes to product requirements
or business rules
- New customer needs demand modification of data, functionality, or services
- Business reorganization causes changes in project priorities or software
engineering team structure
- Budgetary or scheduling constraints cause system to be redefined
Baselines
- A work product becomes a baseline only after it is reviewed and approved.
- A baseline is a milestone in software development that is marked by the
delivery of one or more configuration items.
- Once a baseline is established each change request must be evaluated and
verified by a formal procedure before it is processed.
Software Configuration Management Tasks
- Identification (tracking multiple versions to enable efficient changes)
- Version control (control changes before and after release to customer)
- Change control (authority to approve and prioritize changes)
- Configuration auditing (ensure changes made properly)
- Reporting (tell others about changes made)
Software Configuration Objects
- To control and manage configuration items, each must be named and managed
using an object-oriented approach
- Basic objects are created by software engineers during analysis, design,
coding, or testing
- Aggregate objects are collections of basic objects and other aggregate
objects
- Configuration object attributes: unique name, description, list of
resources, and a realization (a pointer to a work product for a basic object
or null for an aggregate object)
- An entity-relationship (E-R) diagram can be used to show the
interrelationships among the objects
Version Control
- Combines procedures and tools to manage the different versions of
configuration objects created during the software process
- An entity is composed of objects at the same revision level
- A variant is a different set of objects at the same revision level and
coexists with other variants
- A new version is defined when major changes have been made to one or more
objects
Change Control
- Change request is submitted and evaluated to assess technical merit and
impact on the other configuration objects and budget
- Change report contains the results of the evaluation
- Change control authority (CCA) makes the final decision on the status and
priority of the change based on the change report
- Engineering change order (ECO) is generated for each change approved
(describes change, lists the constraints, and criteria for review and audit)
- Object to be changed is checked-out of the project database subject to
access control parameters for the object
- Modified object is subjected to appropriate SQA and testing procedures
- Modified object is checked-in to the project database and version control
mechanisms are used to create the next version of the software
- Synchronization control is used to ensure that parallel changes made by
different people don’t overwrite one another
Software Configuration Audit Questions
- Has the change specified by the ECO been made without modifications?
- Has an FTR been conducted to assess technical correctness?
- Was the software process followed and software engineering standards
applied?
- Do the attributes of the configuration object reflect the change?
- Have the SCM standards for recording and reporting the change been
followed?
- Were all related SCI's properly updated?
Configuration Status Reporting Questions
- What happened?
- Who did it?
- When did it happen?
- What else will be affected by the change?