Software Configuration Management

Slides:



Advertisements
Similar presentations
Configuration Management
Advertisements

Software Quality Assurance Plan
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
A Brief Introduction to Configuration Management
CSC 395 – Software Engineering Lecture 25: SCM –or– Expecting Change From Everything But Vending Machines.
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
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)
SOFTWARE CONFIGURATION MANAGEMENT (SCM)
Software Engineering Modern Approaches
Software Configuration Management
Software Configuration Management (SCM)
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
Software Quality Assurance
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
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 C.Eng 492 Spring 2010 Resources Guozheng Ge(from UCSC) IEEE Standards Previous course slides.
Software Configuration Management (SCM)
Software Configuration Management -Subversion- RTLAB YuJin Park.
Software Configuration Management (SCM)
Configuration Management
Software Configuration Management
Software Configuration Management CSC-532
Software Configuration Management
Software Configuration Management
Software Project Configuration Management
Chapter 10, Software Configuration Management
Software Configuration Management (SCM)
Chapter 11: Software Configuration Management
Software Configuration Management
Software Engineering (CSI 321)
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
Configuration Management
A Brief Introduction to Configuration Management
Chapter 27 Change Management
Baseline – IEEE definition
Chapter 11: Software Configuration Management
Chapter 27 Change Management
Chapter 27 Change Management
Configuration Management
Presentation transcript:

Software Configuration Management

Why SCM? The problem: Multiple people have to work on software that is changing, Need for coordination More than one version of the software has to be supported: Released systems Custom configured systems (different functionality) System(s) under development Software on different machines & operating systems Errors detected in the software need to be corrected New business or market conditions dictate changes in product requirements or business rules New customer needs demand modifications of data produced by information systems, functionality delivered by products, or services delivered by a computer-based system Reorganization or business growth/downsizing causes changes in project priorities or software engineering team structure

What is SCM? Software configuration management is the discipline of managing the evolution of complex software systems [IEEE STD 1987]. It is also defined as ‘the process of controlling and monitoring change to work products’ [Herbert 1999]. A set of management disciplines within a software engineering process to develop a baseline Software Configuration Management encompasses the disciplines and techniques of initiating, evaluating and controlling change to software products during and after a software project Software Configuration Management - manages evolving software systems - controls the costs involved in making changes to a system.

Basic concepts of SCM Configuration Item (CI): A piece of software or work product which is subject to change is a configuration item Examples: Management plan, Requirements, Design specification, Source code and executable code, Test specification, data, and records, User documentation, etc. Versions and Configurations: A version identifies the state of a particular configuration item or a configuration at a well defined point in time Eg. Windows 7, Windows 8, etc. Here 7 represents the version number. jdk 1.6 Here 1 refers to Major revision, 6 refers to minor revision Release: A release is a version that has been available to the user or the client.

Basic concepts of SCM Baseline A collection of item versions that have been formally reviewed and agreed on, a version of configuration Marks milestones and serves as basis for further development Can only be changed via formal change management process Baseline + change sets to create new baselines Change Request: It is a formal report that contains the request for modification in a configuration item. Workspace An isolated environment where a developer can work (edit, change, compile, test) without interfering other developers Eg: Local directory under version control, Private workspace on the server

SCM Activities SCM activities are formulated to identify change, control change, ensure that change is being properly implemented, and report changes to others who may have an interest View of SCM from various roles Project manager -> an auditing mechanism SCM manager -> a controlling, tracking, and policy making mechanism Software engineer -> a changing, building, and access control mechanism Customer -> a quality assurance and product identification mechanism

SCM Activities SCM activities are formulated to identify change, control change, ensure that change is being properly implemented, and report changes to others who may have an interest View of SCM from various roles Project manager -> an auditing mechanism SCM manager -> a controlling, tracking, and policy making mechanism Software engineer -> a changing, building, and access control mechanism Customer -> a quality assurance and product identification mechanism

SCM Process Identify all items that collectively define the software configuration (SCIs) Manage changes to one or more of these items Facilitate construction of different versions of an application Ensure the software quality is maintained as the configuration evolves over time Provide information on changes that have occurred

SCM Tasks Status reporting Configuration auditing Version control CSCI Identification Change control Version control Configuration auditing

SCM Tasks 1. Identification separately names each CSCI and then organizes it in the SCM repository 2. Change control is a procedural activity that ensures quality and consistency as changes are made to a configuration object 3. Version control is a set of procedures and tools for managing the creation and use of multiple occurrences of objects in the SCM repository 4. Configuration auditing is an SQA activity that helps to ensure that quality is maintained as changes are made - Has the change specified in the ECO been made? Have any additional modifications been incorporated? - Has a formal technical review been conducted to assess technical correctness? - Has the software process been followed, and have software engineering standards been properly applied? 5. Configuration status reporting (CSR) is also called status accounting. Provides information about each change to those personnel in an organization. Administrative tracking and reporting of CIs in SCM system - Answers what happened, who did it, when did it happen, and what else will be affected?

Change control process Submission of Change Request (CR) Technical and business evaluation and impact analysis Approval by Change Control Board (CCB) Engineering Change Order (ECO) is generated stating changes to be made criteria for reviewing the changed CI CI’s checked out Changes made and reviewed CI’s checked in

SCM Tools Version control Bug tracking Build Project management RCS, CVS, Subversion, Visual Source Safe, Rational ClearCase Bug tracking Bugzilla, Mantis Bugtracker, Rational ClearQuest Build GNU Make and many variants, Ant Project management Sourceforge.net, freshmeat.net, GForge, DForge

aliceCopy :WorkingCopy Copy/Modify/Merge in CVS alice :Developer joe :Developer :Repository checkout() checkout() aliceCopy :WorkingCopy joeCopy :WorkingCopy modify() checkin(ac) modify() If changes overlap, CVS Joe resolves the conflict by editing the merged copy . update(jc) merge(ac) checkin(jc)