Software Configuration Management (SCM)

27
Software Configuration Management (SCM)

description

Software Configuration Management (SCM). Product Integrity. As software becomes more and more complex we need to ensure that software developed has the following characteristics: fulfills user functional needs. can easily and completely be traced through its life cycle. - PowerPoint PPT Presentation

Transcript of Software Configuration Management (SCM)

Page 1: Software Configuration  Management (SCM)

Software Configuration

Management (SCM)

Page 2: Software Configuration  Management (SCM)

Product Integrity

As software becomes more and more complex we need to ensure that software developed has the following characteristics:

• fulfills user functional needs.• can easily and completely be traced through

its life cycle.• meets specified performance criteria.• meets cost expectations.• meets delivery expectations.

Page 3: Software Configuration  Management (SCM)

Product Developer Disciplines

When developing a system, developers structure themselves into three discipline sets.• Project Management• Development• Product Assurance

Page 4: Software Configuration  Management (SCM)

Product Developer Disciplines

When developing a system, developers structure themselves into three discipline sets.• Project Management

- Assignment of resources

- Allocation of resources

- Control of resources

• Development• Product Assurance

Page 5: Software Configuration  Management (SCM)

Product Developer Disciplines

When developing a system, developers structure themselves into three discipline sets.• Project Management• Development

- Elicitation- Design- Implementation

• Product Assurance

Page 6: Software Configuration  Management (SCM)

Product Developer Disciplines

When developing a system, developers structure themselves into three discipline sets.• Project Management• Development• Product Assurance

- quality assurance- validation and verification- test and evaluation- configuration management

Page 7: Software Configuration  Management (SCM)

Configuration Management

Definition:

The discipline of identifying the configuration of a system at discrete points in time for the purpose of systematically controlling changes to the configuration and maintaining the integrity and traceability of the configuration throughout the system’s life cycle.

Page 8: Software Configuration  Management (SCM)

Configuration Item (CI)

A system component or artifact: • design document• source code module• test suite• ...

In the case of software, they are called Software Configuration Items (SCI).

Page 9: Software Configuration  Management (SCM)

System Configuration

A set of system configuration items

• sometimes referred to as a version of a system.

Page 10: Software Configuration  Management (SCM)

Software Configuration Management

A set of procedures that tracks:

1. Requirements that define what the system should do.

2. Design modules that are generated from requirements.

3. Program code that implements the design.

4. Tests that verify the functionality of the system.

5. Documents that describe the system.

Page 11: Software Configuration  Management (SCM)

Elements of SCM

There are four elements of SCM:

1. Software Configuration Identification.

2. Software Configuration Control.

3. Software Configuration Auditing.

4. Software Configuration Status Accounting.

Page 12: Software Configuration  Management (SCM)

Software Configuration Identification

Provides labels for the baselines and their updates.

Baseline:

• stable snapshot of the aggregate system components as they exist at a given point in time

• a configuration or version that has been verified and released

Page 13: Software Configuration  Management (SCM)

Software Configuration Identification

First identify the elements that will make up a configuration.

software == SRS + design + tests + code + …

An early configuration may only have a few configuration items (e.g. requirements)

Page 14: Software Configuration  Management (SCM)

Software Configuration Identification

• Identify a labeling scheme for baselines

• Identify a labeling scheme for updates to baselines

Example: HATS GUI 1.4

Baseline: 1.0

4 updates to baseline 1.0

Next Baseline: 2.0

Page 15: Software Configuration  Management (SCM)

Software Configuration Control

• Provides a mechanism for precipitating, preparing, evaluating, and approving or disapproving all change proposals throughout the life cycle.

Page 16: Software Configuration  Management (SCM)

Software Configuration Control

Three basic ingredients to SCC1. Documentation for formally precipitating and

defining a proposed change to a software system.

2. An organizational body (Configuration Control Board) for formally evaluating and approving or disapproving a proposed change to a software system.

3. Procedures for controlling changes to a software system.

Page 17: Software Configuration  Management (SCM)

Software Configuration Control

Why needed?• Not all possible changes are beneficial.• Need a mechanism to control access to different

items of the configuration. - Example: We don’t want everyone to be

accessing everyone else’s code and be able to make changes.

- other example?

Page 18: Software Configuration  Management (SCM)

Software Configuration Auditing

Activity performed to independently evaluate the conformance of software products and processes to applicable regulations, standards, guidelines, plans, and procedures.

Page 19: Software Configuration  Management (SCM)

Software Configuration Auditing

• Determines the extent to which an item satisfies the required functional and physical characteristics

• Can be conducted at key points in the life cycle• Two types of formal audits might be required

– Functional Configuration Audit (FCA)

– Physical Configuration Audit (PCA)

Page 20: Software Configuration  Management (SCM)

FCA

• Purpose: ensure that the audited software item is consistent with its governing specifications

• Output of the software verification and validation activities is a key input to this audit

Page 21: Software Configuration  Management (SCM)

PCA

• Purpose: ensure that the design and reference documentation is consistent with the as-built software product

Page 22: Software Configuration  Management (SCM)

Software Configuration Auditing

Why needed?• We need to ensure that changes are correct

according to specifications and to the customer. We can approve good changes but if it is not what the customer wants then it is useless.

• If we never establish a baseline then we can’t proceed with the development of the system.

Page 23: Software Configuration  Management (SCM)

Software Configuration Status Accounting

• Provides a mechanism for maintaining a record of where the system is at any point with respect to what appears in published baseline documentation.

- When a change proposal is approved it may take some time before the change is initiated or completed.

Page 24: Software Configuration  Management (SCM)

Software Configuration Status Accounting

• Why needed?- We need to ensure that there is progress within

the development of the project. - Updates to baselines must take place sometime,

otherwise we can’t continue.

Page 25: Software Configuration  Management (SCM)

Source Code Control

• Version control, revision control, source code management

• CVS

• SVN

• Visual Source Safe

Page 26: Software Configuration  Management (SCM)

Source Code Control

• Goals:– Manage source code for multiple users– Serve as repository of work– Prevent collisions

Page 27: Software Configuration  Management (SCM)

SVN

• Assignment:– Find out about SVN– Write a 1-2 paragraph description of SVN– Describe the use of the SVN commands for

checkout, update, add, and commit.– Due: Nov. 25.