Configuration Management

30
Configuration Management CS 330 Introduction to Software Engineering By Rania Elnaggar West Virginia University

description

Configuration Management. CS 330 Introduction to Software Engineering By Rania Elnaggar West Virginia University. Outline. The Law of Change What is Software Configuration Management Identifying configuration Items Version Control Change Control Configuration Audit Status Reporting. - PowerPoint PPT Presentation

Transcript of Configuration Management

Page 1: Configuration Management

Configuration Management

CS 330 Introduction to Software Engineering

By Rania ElnaggarWest Virginia University

Page 2: Configuration Management

CS 330 – Configuration Management - Slide 2

Outline

The Law of Change What is Software Configuration Management Identifying configuration Items Version Control Change Control Configuration Audit Status Reporting

Page 3: Configuration Management

CS 330 – Configuration Management - Slide 3

The Law of Change

Change is inherent in the nature of the entire universe

The only thing that doesn’t change is Change itself!

Software is more susceptible to change Ease of changing software rapidly.

Page 4: Configuration Management

CS 330 – Configuration Management - Slide 4

What is Software Configuration Management?

Configuration Management is the art of identifying, organizing, and controlling modifications to the software being built by a team.

Four basic SCM steps: Identify change Control change Ensure change is being properly implemented Report change

Page 5: Configuration Management

CS 330 – Configuration Management - Slide 5

The Software Configuration

programsprograms documentsdocuments

datadataThe piecesThe pieces

Page 6: Configuration Management

CS 330 – Configuration Management - Slide 6

Software Configuration Items

Software consists of: programs, documents, and Data

The items that comprise all information produced as part of the software process are called SCIs.

Page 7: Configuration Management

CS 330 – Configuration Management - Slide 7

What are the changes?

datadata

otherotherdocumentsdocuments

codecodeTestTest

ProjectProjectPlanPlan

changes in changes in technical requirementstechnical requirements

changes in changes in business requirementsbusiness requirements

changes inchanges inuser requirementsuser requirements

software modelssoftware models

Page 8: Configuration Management

CS 330 – Configuration Management - Slide 8

Baselines

A baseline is: A specification or product that has been formally

reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control.

Page 9: Configuration Management

CS 330 – Configuration Management - Slide 9

What is SCM?

Software EngineeringSoftware Engineering

a TQM foundation

procedures

methods

tools

SCMSCM• • identificationidentification• • version controlversion control• • change controlchange control• • auditingauditing• • reportingreporting

Page 10: Configuration Management

Identification of SCIs

Page 11: Configuration Management

CS 330 – Configuration Management - Slide 11

Identification of SCIs

Identify entities: Project plan Overall Design Specification Design Specification of individual Components Test Specifications etc

Identify relationships between entities Assess the impact of change

Page 12: Configuration Management

Version Control

Page 13: Configuration Management

CS 330 – Configuration Management - Slide 13

Software versions

Every module exists in three forms Source code object code executable load

image

Configuration - given version of a product built by specific versions of each module

Page 14: Configuration Management

CS 330 – Configuration Management - Slide 14

Software Versions

During maintenance, at all times there are at least two versions of the product: The old version, and The new version

Two types of versions

Version

Revision Variation

Page 15: Configuration Management

CS 330 – Configuration Management - Slide 15

Revisions Revision

Version with fixed faults in the module Should we throw away an incorrect version ?

Perfective and adaptive maintenance also results in revisions

It is vital to have control to ensure that every member of the development team knows which version is the current version of a given module

Each revision is written to replace its predecessor

Page 16: Configuration Management

CS 330 – Configuration Management - Slide 16

Variations

Variation Version for different operating system or hardware

Variations are designed to coexist in parallel

To complicate matters further, in general, there will be multiple revisions of each variation

Page 17: Configuration Management

CS 330 – Configuration Management - Slide 17

Version Control Tool

Which revision of which variation went into the version of of the product?

AcknowledgeMessage /4AcknowledgeMessage /3

AcknowledgeMessage /2 AcknowledgeMessage /1

PrinterDriver (laser) /1

PrinterDriver (laser) /2

PrinterDriver (laser) /3

PrinterDriver (InkJet)

Page 18: Configuration Management

CS 330 – Configuration Management - Slide 18

Version Control Tool (contd) First step toward version control is detailed record

of every version of the product Name of each source code element, including the

variation and revision Versions of various compilers and linkers used Name(s) of the person(s) who constructed the product Date and time at which it was constructed

Problem of multiple variations Delta - list of differences from the original variation

Version control is not enough

Page 19: Configuration Management

CS 330 – Configuration Management - Slide 19

Version Control - Baselines Problem - Two programmers working on the

same module fixing two different faults

Solution - Baselines Check out the module into private workspace Freeze the current version of the module New version is checked-in modifying the baseline

Configuration control during implementation and integration phase

Page 20: Configuration Management

CS 330 – Configuration Management - Slide 20

Build Tools At least build tool + version control tool

Example - UNIX tool make

For each executable load image the developer sets up Makefile specifying the hierarchy of source and object files that go into that particular configuration

Make compares the date and time stamp on Source file, object file Executable load image, every object file Ensures that latest versions are compiled and linked

Page 21: Configuration Management

Change Control

STOPSTOP

Page 22: Configuration Management

CS 330 – Configuration Management - Slide 22

Change Control Process—I

change request from userchange request from user

developer evaluatesdeveloper evaluates

change report is generatedchange report is generated

change control authority decideschange control authority decides

request is queued for actionrequest is queued for actionchange request is deniedchange request is denied

user is informeduser is informed

need for change is recognizedneed for change is recognized

change control process—IIchange control process—II

Page 23: Configuration Management

CS 330 – Configuration Management - Slide 23

Change Control Process-II

assign people to SCIsassign people to SCIs

check-out SCIscheck-out SCIs

make the changemake the change

review/audit the changereview/audit the change

establish a “baseline” for testingestablish a “baseline” for testing

change control process—IIIchange control process—III

Page 24: Configuration Management

CS 330 – Configuration Management - Slide 24

Change Control Process-III

perform SQA and testing activitiesperform SQA and testing activities

promote SCI for inclusion in next releasepromote SCI for inclusion in next release

rebuild appropriate versionrebuild appropriate version

review/audit the changereview/audit the change

include all changes in releaseinclude all changes in release

check-in the changed SCIscheck-in the changed SCIs

Page 25: Configuration Management

Configuration Audit

Page 26: Configuration Management

CS 330 – Configuration Management - Slide 26

Auditing

SCIsSCIs

ChangeChangeRequestsRequests SQASQA

PlanPlan

SCM AuditSCM Audit

Page 27: Configuration Management

CS 330 – Configuration Management - Slide 27

Configuration Audit

Complements the formal technical review by assessing configuration objects for characteristics that are not generally considered in a review: Have the change specified been made? Have any additional modifications been made? Has a formal technical review been conducted to ensure

correctness? Has the s/w process been followed? Standards applied? Are the changes highlighted? Have all related SCIs been updated?

Page 28: Configuration Management

Status Reporting

Page 29: Configuration Management

CS 330 – Configuration Management - Slide 29

Status Reporting

Accounting system that creates entries for: What happened? Who did it? When did it happen? What else it affected?

Page 30: Configuration Management

CS 330 – Configuration Management - Slide 30

Status Accounting

SCIsSCIs

ChangeChangeRequestsRequests

Change Change ReportsReports ECOsECOs

Status AccountingStatus Accounting

ReportingReporting