Software Configuration Management. Context. Learning Objectives



Similar documents
Theme 1 Software Processes. Software Configuration Management

Software configuration management

Software Configuration Management.

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Introduction to Software Configuration Management. CprE 556 Electrical and Computer Engineering Department Iowa State University

Source Control Systems

Version Control Tools

Continuous Integration. CSC 440: Software Engineering Slide #1

Configuration & Build Management

Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM

SOE. managing change in system development projects: configuration management

Software Configuration Management. Addendum zu Kapitel 13

Chapter 13 Configuration Management

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

CSCB07 Software Design Version Control

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Software Configuration Management. Visiting Lecture Tero Kojo

Revision control systems (RCS) and

SOFTWARE DEVELOPMENT BASICS SED

Build Management. Context. Learning Objectives

Software Configuration Management

Software Configuration Management and Continuous Integration

Software Configuration Management, Advantages and Limitations

Version Control. Luka Milovanov

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

Continuous Integration (CI)

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

Version Control Using Subversion. 12 May 2013 OSU CSE 1

Version Control with Subversion

Software Configuration Management (SCM)

Chapter 13 Configuration Management

Revision Control. Solutions to Protect Your Documents and Track Workflow WHITE PAPER

Continuous Integration

Methodologies. Adam Pasztory 12/19/07. Pasztory - 1

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

Comparison of Version Control Systems for Software Maintenance

Software Life Cycles and Configuration Management

Version control tracks multiple versions. Configuration Management. Version Control. V Software Engineering Lecture 12, Spring 2008

Software Configuration Management. Wingsze Seaman COMP250SA February 27, 2008

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

Global Software Change Management for PVCS Version Manager

Surround SCM Best Practices

Configuration Management for Open Source Software

Michael Solomon, CISSP PMP CISM

IBM Rational ClearCase, Version 8.0

Delivering Quality Software with Continuous Integration

Manual. CollabNet Subversion Connector to HP Quality Center. Version 1.2

Development Methodologies

Version Control Systems

Xcode Source Management Guide. (Legacy)

A Model Repository for Collaborative Modeling with the Jazz Development Platform

Version Control for Computational Economists: An Introduction

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Kevin Lee Technical Consultant As part of a normal software build and release process

Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version

CSE 70: Software Development Pipeline Build Process, XML, Repositories

Software configuration management in agile methods

Implementing Continuous Integration Testing Prepared by:

Version Control! Scenarios, Working with Git!

IBM Rational Software

Software Continuous Integration & Delivery

Versioning and Evolution Control of Models in Software Configuration Management System

S609. RDz and Source Control Management Systems

Comparative Analysis of SCM tools and Coexistence with Agile Methodology

DeltaV: Adding Versioning to the Web

Software Configuration. Management Issues in Product Development

Source Code Management/Version Control

Successfully managing geographically distributed development

Version Control Tutorial using TortoiseSVN and. TortoiseGit

"Code management in multi programmer environments."

Software Configuration Management Practices for extreme Programming Teams

enterprise IBM Rational Team Concert 2 Essentials

Introduction to Programming Tools. Anjana & Shankar September,2010

CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn

Introduction to Subversion

CollabNet TeamForge 5.3. User Guide

Software Configuration Management and Version Control

How To Manage A Computer System

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Source Code Control and Software Reuse

Transcription:

Software Configuration Management Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition Analysis Design Implementation Test Preliminary Iterations I1 I2 In In+1 In+2 Im 2 Learning Objectives To understand why SCM is of crucial importance in medium to large-scale software development projects To know the principles of version management and software configuration management To appreciate how SCM tools support coordination within a team of developers To be able to use an state-of-the-art SCM tool in your group project and beyond 3 1

Why do we need SCM? Teamwork: multiple developers need a Mechanism to share their artifacts Update these artifacts in a controlled manner Maintenance: Teams need to Deliver projects in several releases and be able to re-establish earlier release, e.g. to provide a bug fix Merge such changes into the current development baseline Safety net: Be able to revert to artifacts that were found to be of a certain quality level 4 Variants and Revisions Artifacts that exist in different versions are known as configuration items Revisions are versions of a configuration item that have emerged over time. They have revision numbers that are usually incremented from revision to revision 1.1 Variants are versions of a configuration item that coexist (at least for some time) Session.java 1.1 1.1.1 1. 5 Configuration A configuration consists of a number of configuration items. For each of these items one and only one version is selected to be part of the configuration. Release 1.0 Session.java 1.1.1 1.1 Version selection can be implicit (e.g. the last revision) or explicit (through tags/labels that mark a particular milestone or release) 6 2

SCM repositories store CIs and their configurations Repositories are typically stored on a shared server that is accessible to all team members Developers have their own private workspace Transfers between repository / workspace through check-out and check-in operations check-in check-out check-out SCM check-in 7 Concurrency Control in SCM Multiple developers may want to access the same CI Access needs to be synchronized Two different models: Pessimistic: Use of locking and unlocking to prevent more than one developer to change a CI at the same time (used in VSS, for example) Optimistic: Users modify private copies only and may do so concurrently. Private copies are merged together into a new version (This model is used in CVS and subversion) 8 Problems with Locking Developers may forget to unlock a file after they have finished updating it It is possible that two developers want to edit disjoint sections of the same file and that is not permitted in the pessimistic model. Locking might give a false sense of security. Assume Alice locks Session and Bob locks Entity. Because Session calls Entity then Session might not compile after a new version of Entity is checked in. If the entire call graph is locked teamwork grinds to a halt. 9 3

Alice and Bob both check out file. Here, check-out does not lock but only creates a copy in the private workspaces. 10 Now both Alice and Bob modify their copy of in their private workspace 11 Alice commits her changes to the repository first 12 4

If then Bob tries to commit he will get a conflict and the commit will fail. 13 1.4 Bob checks out Alice s version and in his workspace merges his changes with Alice s 14 1.4 Bob can then commit the merged file to the repository 1.4 15 5

Common practice If two people have a file checked out, they have to merge their changes before check-in Merging files can be time consuming (though there is tool support)! People often coordinate verbally so that merging does not become necessary Also responsible developers do not hold modified files for too long 16 Tagging and Branching The configuration used in the main line of development is often referred to as the trunk A branch is the configuration for a particular side line of development (e.g. maintenance, or new feature development) that should be done in temporary isolation from main line of development A tag is a configuration snapshot that you want to keep to be able to restore it later. You would typically create tags for any releases you make to clients or the public 17 SCM support for tagging and branching Logically tags and branches are just copies of the configuration items, which is supported by SCM tools In practice repositories would run out of storage quickly if SCM tools were to physically copy all files whenever a tag or a branch is created. Tools instead share physical copies of the same version of a CI across different branches and tags Selective copying of CIs across different branches / tags. 18 6

Overview of current SCM tools Subversion (open source, we will use this in the labs) CVS (open source) RCS (can only handle versions, not configurations) Clearcase (IBM) P4 (Perforce Software) Source Safe (Microsoft) PVCS (Serena Software) 19 Key Points SCM tools are enablers of teamwork by providing Sharing when needed Isolation when required Provide safety net to restore previous releases Very good open source tools available for SCM 20 References J. Estublier et al.: Impact of software engineering research on the practice of software configuration management. ACM ToSEM 14(4):383-430.2005. DOI: 10.1145/280277.280280 R. Conradi and B. Westfechtel. Version Models for Software Configuration Management. ACM Computing Surveys 30(2):232-282. 1998. DOI: 10.1145/1101815.1101817 B. Collins-Sussman et al. Version control with subversion. O Reilly Media. 2002. http://svnbook.redbean.com/ 21 7