Configuration Management
description
Transcript of Configuration Management
Configuration Management
CS 330 Introduction to Software Engineering
By Rania ElnaggarWest Virginia University
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
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.
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
CS 330 – Configuration Management - Slide 5
The Software Configuration
programsprograms documentsdocuments
datadataThe piecesThe pieces
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.
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
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.
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
Identification of SCIs
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
Version Control
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
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
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
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
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)
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
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
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
Change Control
STOPSTOP
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
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
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
Configuration Audit
CS 330 – Configuration Management - Slide 26
Auditing
SCIsSCIs
ChangeChangeRequestsRequests SQASQA
PlanPlan
SCM AuditSCM Audit
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?
Status Reporting
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?
CS 330 – Configuration Management - Slide 30
Status Accounting
SCIsSCIs
ChangeChangeRequestsRequests
Change Change ReportsReports ECOsECOs
Status AccountingStatus Accounting
ReportingReporting