Configuration Management

Slides:



Advertisements
Similar presentations
1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Advertisements

Configuration Management
Unveiling ProjectWise V8 XM Edition. ProjectWise V8 XM Edition An integrated system of collaboration servers that enable your AEC project teams, your.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
1 Software Configuration Management METU Computer Engineering CEng 492 Spring'2004.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Nov. 6, 2003CS WPI1 CS 509 Design of Software Systems Lecture #10 Thursday, Nov. 6, 2003.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Configuration Management
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Configuration Management (SCM)
CSSE 375 Software Construction and Evolution: Configuration Management
Figures – Chapter 25. Figure 25.1 Configuration management activities.
This chapter is extracted from Sommerville’s slides. Text book chapter
Software Configuration Management (SCM)
Version control Using Git 1Version control, using Git.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
1 Lecture 19 Configuration Management Software Engineering.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Version control Using Git Version control, using Git1.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Version Control Systems with Subversion (SVN) and Tortoise.
Software Quality Assurance
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Version Control with SVN Images from TortoiseSVN documentation
CPSC 871 John D. McGregor Change management Module 2 Session 3.
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,
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Revised by David Svoboda 2003 Concurrent Versions System Overview of CVS architecture.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Version Control How and why to control changes in a software artifact.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
Software Configuration Management (SCM)
Information Systems and Network Engineering Laboratory II
Software Project Configuration Management
Chapter 10, Software Configuration Management
Version Control with Subversion
LECTURE 2: Software Configuration Management
Source Control Dr. Scott Schaefer.
Version Control with Subversion (SVN)
An Intro to Concurrent Versions System (CVS)
Version control, using Git
Configuration Management
Concurrent Version Control
Configuration Management (managing change)
Software Version System Part1: Subversion at CERN
LECTURE 3: Software Configuration Management
Revision Control Daniel Daugherty
Chapter 25 – Configuration Management
Concurrent Versions System
Chapter 25 – Configuration Management
Software Configuration Management
Presentation transcript:

Configuration Management

Configuration Management Real software systems are huge and involve many components, and multiple engineers working simultaneously on components. This raises many problems related to managing components and the work done on them. Configuration management addresses these problems.

Definitions Configuration: the constituent components of a software product (including all of its versions) Configuration management: the discipline of coordinating software development and controlling the change and evolution of software products and components

Configuration Mgmt Problems Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

Configuration Mgmt Problems Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

Sharing Artifacts: Problems Suppose you and I both want to modify stack.c What if we just both go ahead? How about if I physically take the file? How about if we each make private copies of it?

Sharing Artifacts: Solutions Make single writer, multiple reader the norm; provide for occasional controlled multiple updates (RCS) Allow multiple writers (optimistic rather than pessimistic) but police checkins (CVS) Either solution requires merge abilities More difficult with dependencies Sharing requires co-ordination of effort

Configuration Mgmt Problems Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

Product Families Programs have components, which have versions and variants Versions are new instances Variants are concurrent instances Versioning schemes help manage product families

An Example of Versioning 3.0.0 3.0.1 3.0.2 3.0.3 … 3.1.0 3.1.1 3.1.2 3.1.8 3.2.0 3.2.1 First digit: major version Second digit: minor version Third digit: bugfix version 4.0.0

An Example of Versioning 3.0.0 3.0.1 3.0.2 3.0.3 … 3.1.0 3.1.1 3.1.2 3.1.8 3.2.0 3.2.1 What challenges exist here? 4.0.0

Managing Product Families Possible approaches: Keep separate copy of all materials for each version and variant Keep common code, with deltas for variants (how to manage this?) Other issues: What to keep under configuration management Basic objects vs derived objects When do we abandon versions?

Configuration Mgmt Problems Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

Overseeing Change Imagine engineers just fixed things when they thought they needed to. What could happen? Need: formal/rigorous processes for managing and monitoring changes

The Change Management Process Request change by completing a change request form Analyze change request If change is valid then Assess how change might be implemented Assess change cost Submit request to change control board If change is accepted then Repeat Make changes to software Submit changed software for quality approval Until software quality is adequate Create new system version Else Reject change request

Configuration Mgmt Problems Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

Documentation When systems change, who needs to know? How do we manage this?

Change Request Form Project: Dejavu Number: 1436 Change requester: A. Kinneer Date: 08/16/2007 Requested changes: Postpone test suite union operation until all dangerous edges have been selected Change analyzer: H. Do Analysis date: 08/24/2007 Components affected: SelectTests, EdgeCompare Associated components: None Change assessment: Requires change to interfaces to allow passing edge set, otherwise relatively simple and will improve efficiency. Change priority: Medium Estimated effort: 0.5 days Date to CCB: 08/26/2007 CCB decision date: 09/10/2007 CCB decision: Accept change; implement in release 3.2 Change implementor: Date of change: Date submitted to QA: QA decision: Date submitted to CM: Comments:

Configuration Mgmt Problems Sharing software-related artifacts Support for product families Providing mechanisms for overseeing change Providing documentation

CM Tools CVS: www.nongnu.org/cvs/ SVN: subversion.apache.org A mature CM tool SVN: subversion.apache.org Built on CVS, better for distributed collaboration over the net GIT: github.com A web-based CM hosting site TortoiseSVN: tortoisesvn.net An SVN client that operates on Windows through Explorer

Questions to ask when Learning a Configuration Management System How is sharing supported? Policy for readers/writers? How to check things out? How to check things in? How to check for conflicts? How to add/delete items? How to get started? How are merges handled?

Questions to ask when Learning a Configuration Management System How are product families supported? What versioning scheme is used? How to mark releases? Documentation support? What is required for transactions? What info is available to maintainers? Process support? What processes are supported or assumed? Policy for readers/writers?

Example: CVS command-line commands CVS help CVS import CVS checkout CVS commit CVS update CVS log CVS diff CVS remove CVS add Print basic info on CVS commands Import sources into CVS Checkout sources for editing Check files into the repository Bring workspace & repository into sync Print history information for a file Show differences between revisions Remove an entry from the repository - Register a new entry for addition