CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines
Dec 21, 2015
CSC 395 –Software Engineering
Lecture 25:
SCM –or– Expecting Change From Everything
But Vending Machines
In This Lecture
Discuss last night’s hack on megahertz Departmental instructions for course project Examine what SCM is
Software Configuration Mgmt.
Art of identifying, organizing, & controlling modifications to the software being developed - Babich Occurs throughout engineering process
Prevents runaway changes After deliverable approved, assume it correct But changes are sometimes needed SCM develops processes to control and manage
these changes
The “First Law”
No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle.
-- Bersoff, et al., 1980
What Are These Changes?
Changes in Changes in business requirementsbusiness requirements
Changes in Changes in business requirementsbusiness requirements
Changes in Changes in technical requirementstechnical requirements
Changes in Changes in technical requirementstechnical requirements
datadata
otherotherdocumentsdocuments
codecodeTestTest
ProjectProjectPlanPlan
Changes in Changes in user requirementsuser requirements
Changes in Changes in user requirementsuser requirements
software modelssoftware models
Software Configurations Items
Requirements Specifications Design Documents Source code Object code Test plans Test suites User manuals Maintenance manuals Standards
Functions of SCM
Maintain integrity of SCIs Limit people who can commit changes Track who committed changes Examine what changes are
Evaluate and control change Make the product visible
Baselines
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 procedures – IEEE Std. 610 Set of agreed upon standards Can expect a baseline to remain fairly static
Once baselined changes to SCI must follow defined, formal procedure
Baselines
SCIs
SCIs
modified
Softwareengineering
tasks
Formaltechnicalreviews
SCIs
approved
SCIs
extracted
SCMcontrols
SCIs
stored
Project database
System SpecificationSoftware RequirementsDesign SpecificationSource CodeTest Plans/Procedures/DataOperational System
BASELINES:
SCM Repository
Set of mechanisms and data structures for managing change effectively
Performs or creates systems to maintain: Data integrity Information sharing Tool integration Data integration Methodology enforcement Document standardization
SCM Benefits
Reduces effort managing & implementing change Improved productivity
Increased software integrity and security Improves quality and reliability
Generate information about process Improved process & team management
Maintain software development database Reduce costs by streamlining paperwork Better finger pointing and/or saying “I told you so”
SCM Tasks
Identification of SCIs Version control Change control Auditing, reporting “make” facility
Identification of SCIs
Name and organize each SCI Store in centralized project database Need some method to identify & track
individual documents Usually uses numbering scheme Want predictable, precise method of ordering data Helpful if names can somehow be meaningful
Handles relationships between SCIs
Version Control
Set of procedures and tools managing different versions of configuration objects
Standalone tool or included within database SCCS RCS CVS
Track and manage each items requirements Different components Different targets
Version Tree
1.01.0
1.11.1
2.02.01.21.2
3.03.0
Original release
Change
Change
New release
New release
Change Control
Change control provides a mechanism for controlling change Human procedures Automated tools
Change control process
Change Control Process
Need for change is recognized
Change request from user
Developer evaluates
Change report is generated
Change control authority decides
Request is queued for action
Follow process
Request is denied
User is informed
No
Change Request Evaluation
CR CR submittedsubmitted
CR loggedCR loggedCR closure-CR closure-audit & logaudit & log
SCI SCI updatedupdated
Implement Implement changechange
CCBCCBEvalEval
Authorized
Simultaneous Update
SourceSource3/23/013/23/01
Source Source 3/26/013/26/01
Coder BCoder BCoder ACoder A
Configuration Audit
Ensure change was appropriately handled Engineering Change Order clearly specified Formal Technical Reviews examined change
Audit should ask (and be able to answer) Has each change been made? Was the FTR completed? Were all of our standards followed? Change recorded & SCI database updated? All related SCIs updated?
Deliverable Generation Facility
Ability to recreate the SCI Should recreate any release, date, time Should be able to do this simply
May require preserving old code, compilers, word processors, etc. Version control does this for documents Much harder to maintain for hardware Need to link software versions to hardware
What happens when hardware outdated?
For Next Lecture
Back to reading in book Begin looking at implementation process
Finally a chance for the code monkeys! Compare book’s description with usual methods Also consider how you will distribute coding,
maintain consistent style, work together