CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Published byModified over 6 years ago
Presentation on theme: "CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines."— Presentation transcript:
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 business requirements Changes in technical requirements data otherdocuments code Test Project Plan Changes in user requirements software 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
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.0 1.1 2.0 1.2 3.0 Original release Change 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
Simultaneous Update Source3/23/01 Source3/26/01 Coder B Coder A
Configuration Audit Ensure change was appropriately handled E ngineering C hange O rder clearly specified F ormal T echnical R eviews 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