Software Configuration Management (SCM)

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Software Configuration Management Speaker: Jerry Gao Ph.D. San Jose State University URL:
Software Configuration Management
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
SCM SCM: AN OVERVIEW. Agenda  Introduction  Concepts  CBSD.
Software Configuration Management Copyright, 2006 © L.Ouyang Liubo Ouyang Personal Software Process Lecture.
TCS2411 Software Engineering1 Software Configuration Management “The only constant is change...”
Configuration Management
Chapter 27 Change Management
Software Configuration Management
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Configuration Management Avoiding Costly Confusion mostly stolen from Chapter 27 of Pressman.
SE-02 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): - What? - Why? - How?
Software Configuration Management (SCM)
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
SOFTWARE CONFIGURATION MANAGEMENT (SCM)
Component-level testing – Equivalence partitioning, boundary value analysis, path testing Navigation testing – Testing navigation syntax and semantics.
Software Configuration Management
Software Configuration Management (SCM)
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
Software Quality Assurance
© Mahindra Satyam 2009 Configuration Management QMS Training.
Software Engineering 2003 Jyrki Nummenmaa 1 CONFIGURATION MANAGEMENT Today we talk about Software Configuration Management (SCM for short): -
SOFTWARE CONFIGURATION MANAGEMENT. Change is inevitable when computer software is built. And change increases the level of confusion among software engineers.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa Configuration management.
Software Project Management
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 29 Slide 1 Configuration management.
Management of Software Project CSM Software Configuration Management (SCM)
Software Configuration Management (SCM) Source: Pressman, R., Software Engineering: A Practitioner ’ s Approach. Boston: McGraw Hill, Inc., 2005; Ghezzi,
Software Configuration Management n Art of coordinating SW development to minimize confusion n Software quality assurance (umbrella) activity n Set of.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Configuration Management
1 Chapter 9 Software Configuration Management. 2 The “First Law” No matter where you are in the system life cycle, the system will change, and the desire.
Software Configuration Management SEII-Lecture 21
Configuration Management (II) Copyright, 2000 © Jerzy R. Nawrocki Requirements.
SCM. Introduction Change is inevitable when software is built Change increases the level of confusion Confusion arises when changes are not –Analyzed.
Software Engineering Lecture 9: Configuration Management.
Configuration Control (Aliases: change control, change management )
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
Software Configuration Management (SCM)
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management
Software Configuration Management
Software Configuration Management
Software Project Configuration Management
Software Configuration Management (SCM)
Chapter 11: Software Configuration Management
Software Configuration Management
Software Engineering (CSI 321)
Chapter 9 Software Configuration Management
Configuration Management
Software Configuration Management
Change Control Process—I
Chapter 27 Change Management
Lecture 3 Change Management
Configuration Management (managing change)
Software Configuration Management
Chapter 27 Change Management
Chapter 27 Change Management
Baseline – IEEE definition
Chapter 11: Software Configuration Management
Chapter 27 Change Management
Chapter 27 Change Management
Software Configuration Management
Presentation transcript:

Software Configuration Management (SCM) Overview What is SCM? What are the processes of SCM? How does each process do? Summary

Software Configurations Software configuration -- the output Computer programs (source and executables) Documents Data Software Configuration Management (SCM) The art of identifying, organizing and controlling modifications to the software being built

Why Do We Need SCM? First Law of System Engineering Sources of Change 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 Sources of Change New business or market conditions new customer needs Organization and/or business downsizing Budgetary or scheduling constraints

Baseline Concept IEEE defines a baseline as: A specification or product that has been formally reviewed and agreed upon, that thereafter serve as the basis for further development, and that can be changed only through formal change control procedures A baseline is a milestone in the development of software that marked the delivery of one or more software configuration items 6

Common Baselines System specification System engineering Requirement analysis Software design Coding Testing Release System specification Software requirement specification Design specification Source code Test plans/Procedures/Data Operational system 7

Software Configuration Item (SCI) Information created as part of SE process SCIs used as target in SCM: System specification Software project plan Software requirements specification Preliminary user manual Design specification Source code listing 9

SCI (Cont’d) Test specification Operation and installation manuals Executable program Database description As-built user manual Maintenance documents Standards and procedures for SE 10

SCI Modification Process 8

SCM Process Identification Version control Change control Configuration auditing Status reporting 11

Object identification in SW configuration SCI can be named and organized using OO approach Two types of objects: basic object: ‘unit of text’ created during analysis, design, coding, or testing. Aggregated objects: a collect of basic objects 12

Object identification in SW configuration (cont’d) Features of objects: name: a character string description: a list of data items to identify the SCI type and a project id, version information, etc. resources: entity that are provided, processed, referenced by the object Realization: a pointer to ‘unit of text’ for a basic object or null for an aggregate object 13

Object identification in SW configuration (cont’d) Relationships between objects part-of: a hierarchical relationship interrelated: a cross-structural relationship Object identification methods evolution graph automated SCM tools module interconnection language

Configuration Objects

Evolution Graph obj 1.3 obj 1.4 obj 1.0 obj 1.1 obj 1.2 obj 2.0 obj 2.1 obj 1.1.1 obj 1.1.2

Version Control Some of the issues When an executable is built, the versions of its constituents must be consistent. If A depends upon B and B is recompiled, A may also need to be recompiled. What if multiple people need to modify same SCI? Need to know what version different customers have How do you keep track of 100’s or 1000’s of modules?

Version Control Evolution graph to represent different versions Uses an object pool representing components, variants and versions, and their relationship RCS (Revision Control System) is common tool. Use for documentation as well as code development.

Version Control Support At the language level (in Ada): If only body of B changes, no change to A If spec of B changes, A must be recompiled Spec A Body A Spec B Body B With B; The point here is that this is enforced by the language. You cannot build an executable if the versions are not consistent. The compiler system uses time stamps on the spec and body. These are compared whenever a compilation is to take place or when the linker is used to build a an executable. One is not allowed to proceed if the time stamps are not consistent.

Change Control Change request from user Developer evaluates Change report is generated Change control authority makes decision Change request is denied User is informed Request is queued, persons are assigned “Check out” SCI(s)

Change Control (cont’d) Make the change/review change ‘Check in’ changed SCIs Establish a baseline for testing Do SQA and ‘promote’ changes for inclusion in next release Rebuild appropriate version Audit the SCI changes/ include changes in new version Release the new version

Access and Synchronization Control

Configuration Audit Two approaches can be used to ensure proper implementation of change: formal technical review software configuration audit CA assesses a configuration object for characteristics that are not generally not considered during review CA generally checks: Changes incorporated FTR conducted SE standards followed SCM procedures followed all related SCIs properly updated change date and author specified

Status Reporting Event occurred -- An SCI received updated ID people involved Time happened Effects on others Generated on a regular basis To improve communication among all parties

Summary SCM identifies, controls, audits and reports modifications An object becomes a baseline once developed and reviewed Version control is the set of procedures and tools for managing the use of these objects

Summary Change control is a procedure activity necessary to achieve quality and consistency Configuration audit is an SQA activity to help ensure quality is maintained Reporting provides information for better communication