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



Similar documents
Software configuration management

Chapter 13 Configuration Management

Configuration & Build Management

Theme 1 Software Processes. Software Configuration Management

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

Introduction to Programming Tools. Anjana & Shankar September,2010

Continuous Integration. CSC 440: Software Engineering Slide #1

Software Configuration Management. Addendum zu Kapitel 13

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

Chapter 13 Configuration Management

Software Configuration Management

Software Configuration Management.

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

Version Control with Subversion

SOFTWARE DEVELOPMENT BASICS SED

Version Control. Luka Milovanov

Maven or how to automate java builds, tests and version management with open source tools

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

Version Control Tools

Source Code Control & Bugtracking

Software Configuration Management and Change Management

SOE. managing change in system development projects: configuration management

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

One solution for all your Source Configuration Management Needs

IBM Rational ClearCase, Version 8.0

Data management on HPC platforms

Software Configuration Management (SCM)

Source Control Systems

Software Engineering Process. Kevin Cathey

Software Configuration Management. Context. Learning Objectives

Modulo II Software Configuration Management - SCM

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

Source Code Management/Version Control

Global Software Change Management for PVCS Version Manager

Version Control! Scenarios, Working with Git!

Project Management Tools

Developing Software in a Private workspace PM PMS

BlueJ Teamwork Tutorial

GENiC. Deliverable D5.1 Development & Integration guidelines including integration environment & means. Dissemination Level: Public

Software Configuration Management and Continuous Integration

LECTURES NOTES Organisational Aspects of Software Development

An Introduction to Software Development Process and Collaborative Work

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

Version Control Systems

Version Control with Subversion

Revision control systems (RCS) and

Introduction to Subversion

Version Control with Subversion and Xcode

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

pure::variants Transformer for Software Configuration Management Manual

Why this lecture exists ITK Lecture 12: Open Source & Cross Platform Software Development

Delivering Quality Software with Continuous Integration

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Two case studies of Open Source Software Development: Apache and Mozilla

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

Surround SCM Best Practices

Configuration Management Models in Commercial Environments

Software Configuration Management

Comparison of Version Control Systems for Software Maintenance

Version Control with. Ben Morgan

Integrated version control with Fossil SCM

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

CS108, Stanford Handout #33. CVS in Eclipse

Version Control with Git. Kate Hedstrom ARSC, UAF

Source Control and Team-Based Design in System Generator Author: Douang Phanthavong

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

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

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Beginning with SubclipseSVN

pure::variants Connector for Version Control Systems Manual

Advanced Computing Tools for Applied Research Chapter 4. Version control

Software Version Control With Mercurial and Tortoise Hg

Continuous Integration

SourceAnywhere Service Configurator can be launched from Start -> All Programs -> Dynamsoft SourceAnywhere Server.

Software Life Cycles and Configuration Management

Leveraging Rational Team Concert's build capabilities for Continuous Integration

Software Delivery Integration and Source Code Management. for Suppliers

UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger

Pragmatic Version Control

Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd

The Real Challenges of Configuration Management

Using Git for Project Management with µvision

Successfully managing geographically distributed development

Version Uncontrolled! : How to Manage Your Version Control

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

Transcription:

1 2 Last update: 17 June 2004 Programming in the large Bertrand Meyer Lecture 22: Configuration Management Bernd Schoeller bernd.schoeller@inf.ethz.ch Agenda for today 3 About your Future 4 Motivation What is configuration management? Why do we need configuration management? Configuration Management Aspects of Configuration Management Terms and Definitions Problems and Solutions Tool Support Available SCM Tools Examples: CVS, Bugzilla, Xenofarm Summary You will never work alone. Other people will mess up your code. You will mess up other peoples code. You will never write a (major) program from scratch. The software that you will work on was already there when you joined the company. The software that you will work on will still be there when you leave the company. I DO TAKE BETS ON THIS! CM: The long version 5 CM: The short version 6 Configuration management is unique identification, controlled storrage, change control, and status reporting of selected intermediate work products, product components, and products during the life of a system. Anne Mette Jonassen Hass: Configuration Management; Principles and Practice Configuration Management is about the role of TIME in software development. 1

Space 7 Space and 8 Space Space Copyright Info updated New Button added Improved Documentation root_class.e readme.txt gui/ gui/main_window.e gui/dialog_window.e net/ net/ftp_protocol.e... root_class.e readme.txt gui/ gui/main_window.e gui/dialog_window.e net/ net/ftp_protocol.e... Directory created Protocol implemented Bug in Handshake fixed A system that stores and organizes documents over space is called a FILE SYSTEM. A system that stores and organizes documents over space and time is called a REPOSITORY. Documents 9 Configuration Management is about... 10 Configuration Management does not only manage source code, but also: Binary versions of the software (Builds) Requirement and analysis documents Design documents, UML-diagrams Test results System configuration information...... knowing who has done what to which document in the past.... enabling different people at different locations to work on the same set of documents at the same time.... going back to an old version of the documents in the case that the path taken was not good.... tracking the quality of the software over time and to stop software regression. Versioning 11 Change Management 12 Versions give a unique time-dependent identification to each document. Deciding for proper version names is the basis for successful software configuration management. There can be multiple levels of versioning schemes within one project. Examples: Versions for written documents: Example: REQDOC-20040103-R4 Versions for source code: 1.1, 1.2, 1.3, 1.4, 1.4.1,... Versions for binary builds: 610, 611, 612,... CM has to record WHICH document was changed. WHAT was changed. WHO has done the change. WHEN was the change made. The history of the changes should be made visible. It should be possible to undo all changes. It should be possible to view the version of a document at a certain point in time. 2

Views 13 Head 14 T FILE A FILE A FILE B FILE B 1.0 1.1 1.2 1.0 1.1 1.2 FILE C FILE C 1.4 1.5 1.4 1.5 View at time T Head = View at time Head Branching 15 Merging 16 Creating multiple versions of an existing set of documents is called BRANCHING (or FORKING): Joining versions that were developed independently for some time is called MERGING: 1.0 1.1 1.2 1.3 1.0 1.1 1.2 1.3 1.4 1.1.1 1.1.2 1.1.3 1.1.1 1.1.2 1.1.3 Distributed Development 17 Binary Builds 18 Developer 1 Repository Developer 2 There are different levels of binary builds: Checkout Commit Checkout Commit Conflict Daily (Nightly) Builds Integration Builds Stable Builds Releases Alpha Release Beta Release Release Candidate Official Release Current, but not reliable. Not current, but reliable. 3

Regression Testing 19 Bug-Tracking 20 Regression Testing tests features that already worked in old versions of the software, if they also work in new versions of the software. A Test Suite is developed together with the software to verify its correctness. The Test Suite is run on changed versions of the software to verify that the old parts are still working. Regression Test are normally part of the Commit Process or of the Daily Build. Bug-Tracking is the term for an infrastructure that captures and manages bug-reports in a given project. The number and quality of bugs is normally a judgment for the release-quality of software. CM: Terminology 21 Tools for Configuration Management 22 Repository, Commit, Update, Checkout, Head Branch/Fork, Merge Conflicts, Resolving Conflicts Tag, Label Release, Build Test Cases, Test Suite, Regression Tests Software Configuration Management (SCM) Tools CVS, Subversion (Open Source) ClearCase (Rational) Bug-Tracking Bugzilla (Open Source) Daily Build Xenofarm (Open Source) Tinderbox (Open Source) Most projects have customized software CVS 23 CVS (cont.) 24 Best known SCM tool. http://www.cvshome.org Key to most open-source development projects and used in many companies. Based on RCS (Revision Control System) Command-line program (!) Graphical-User-Interfaces: WinCVS (Windows) / GCVS (Unix) Integration into Eclipse and many other IDEs Features of CVS: Central repository Checkout creates a copy of the files on the local machine. File-based versioning Distributed work over the Internet with PSERVER (insecure) or SSH (secure) protocols. Can work with binary and ASCII encoded files, but is not very effective with binary files. Can do some primitive conflict resolving. 4

Bugzilla 25 Bugzilla (cont.) 26 Open Source Bug-Tracking Tool http://www.bugzilla.org/ Developed for the Mozilla Browser Suite Web-Based Interface Xenofarm 27 Xenofarm (cont.) 28 System for a Daily Build. http://xenofarm.tigris.org/ Developed for projects that target many platforms. Used in: ArgoUML Pike Python Automated scripts will distribute the source code to build machines. Will run the compilation process and a set of testcases. Summary 29 I have only given a glimpse at the topic of Configuration Management. Every software project should use it. Every software project should use it from the start. Having a large and long-term software project without it is foolish. Configuration Managements can be supported by proper tools. But the key to successful configuration management lies in the discipline of the developers to use it. 5