Configuration Management

Slides:



Advertisements
Similar presentations
1 GOES-R AWG Products Processing Framework Configuration Management Yunhui Zhao.
Advertisements

Software Configuration Management Donna Albino LIS489, December 3, 2014.
Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Version Control using Subversion Albert Young-Sun Kim November 2 nd, 2005 Available at entations/ 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
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Damien Guard (BSc, MBCS) Guernsey Software Developer Forum Change management with Subversion.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Configuration Management
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Prof. Aiken CS 169 Lecture 71 Version Control CS169 Lecture 7.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
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.
Source Control Repositories for Team Collaboration: SVN, TFS, Git Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training.
Introduction to Version Control with SVN & Git CSC/ECE 517, Fall 2012 Titus Barik & Ed Gehringer, with help from Gaurav.
Software Engineering Modern Approaches
Software Configuration Management
Introduction to Version Control
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
1 Lecture 19 Configuration Management Software Engineering.
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Version control Using Git Version control, using Git1.
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.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
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.
1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)
CSE 219 Computer Science III CVS
Introduction to Version Control with Git CSC/ECE 517, Fall 2014 A joint project of the CSC/ECE 517 staff, including Titus Barik, Gaurav Tungatkar, Govind.
ClearCase Concepts and Terminology
Prepared by: Steve Teo Contributors: Tong Huu Khiem.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
Management of Software Project CSM Software Configuration Management (SCM)
1 MSTE Visual SourceSafe For more information, see:
L.T.E :: Learning Through Experimenting Using google-svn for MtM Docs Development Denis Thibault Version 3.2 Mar 12 th, 2009.
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
Excercises: CM with ClearCase Sirkka-Liisa Juoperi Exercises: Configuration Management with ClearCase.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Software Configuration Management -Subversion- RTLAB YuJin Park.
Source Control Systems
Software Configuration Management CSC-532
Software Project Configuration Management
LECTURE 2: Software Configuration Management
Version control, using Git
Software Configuration Management
Concurrent Version Control
Version Control System
LECTURE 3: Software Configuration Management
Design and Programming
Software Configuration Management
Presentation transcript:

Configuration Management Seminar in Software Design - 2005/6 Aviva Dayan Arik Gendelman Pablo Galiana

What is Configuration Management? The control of changes made throughout the system lifecycle. Allows changes to be evaluated before they are approved. Considers interrelationships among system components. Configuration Management

Software Configuration Management A software engineering discipline Comprised of tools and techniques used to manage change to software assets. A set of activities to control change by: identifying the products & establishing relationships defining mechanisms for management, control, auditing and reporting on changes made. In short: “A methodology to control and manage a software development project.” Configuration Management

Configuration Management Why do we need SCM? To manage: Many people working on the same code. Projects delivered in several releases (builds). Rapid evolution of software and hardware. Project surveillance: i.e. project’s status, bugs, features, etc. Concurrent support and development. Stress time requirements of projects. Configuration Management

Configuration Management Goals of SCM Configuration Control Controlling product release and its updates. Status Accounting Recording and reporting components’ status. Review Ensuring completeness and consistency of all parts. Build Management Managing the build process and its tools. Configuration Management

Configuration Management Goals of SCM – cont. Process Management Ensuring adherence to the development process. Environment Management Managing the components that host our system. Teamwork Facilitate team interactions Configuration Management

SCM – How it is accomplished? All these goals are accomplished through Version control Management of multiple revisions of the same unit of information. Configuration Management

Configuration Management Version control Commonly used in engineering and software development. Changes identified by incrementing an associated number or letter code - “revision number”, or “revision level”. Revision numbers (levels) are associated historically with the person making the change. Configuration Management

Configuration Management Vocabulary Repository A server where the files are stored. Check-Out copies a working copy from the repository (the opposite of an import). Change A specific modification to a document under version control. The granularity of the modification considered a change varies between version control systems. Configuration Management

Configuration Management Vocabulary – cont. Change List The set of changes made in a single commit. A sequential view of the source code. Commit or Check-in Copy the changes on the local files to the directory. (the VC software takes care of changes since the last synchronization). Update copies the changes that were made to the repository into your working directory. (opposite of a commit). Configuration Management

Configuration Management Vocabulary – cont. Merge / Integration brings together (merges) concurrent changes into a unified revision. Revision or version one version in a chain of changes. Conflict Occurs when two changes are made by different parties to the same document or place within a document. Resolve The act of user intervention to address a conflict between different changes to the same document. Configuration Management

Configuration Management Example CM Clients CM Server Trunk Version A Branch Machine A Check Out A Version A.1 Branch Check In C Machine B Version B Branch Check Out B Merge D Check In E Configuration Management

Configuration Management History CM systems save the files’ history. Old versions can be viewed, compared, and downloaded. New versions can be (irreversibly) replaced with old versions and ‘wiped off the map’. Configuration Management

Configuration Management Central repositories Files are saved in a central file server. Developers can view the files in the repository, through the use of filters. Configuration Management

Configuration Management Labels Several files can be labeled together. Allows : Access to the label as a whole set of files. Changes to the labeled files as a unit. Useful for marking product releases. Configuration Management

Configuration Management Check-in Copies a file into the database. The version you see is (usually) the latest version that was checked in. The old version is kept and can be accessed later. Configuration Management

Configuration Management Check out Copies the database file to your personal folder, and raises a flag on the database copy. Need to check out before checking in. Configuration Management

Undo check out (uncheck-out) The “undo checkout” command does just that – the file returns to the status it had before it was checked out. This can be done even if changes have been made to the local copy – of course, these do not go into the database! Configuration Management

Configuration Management Versioning Models Lock-Modify-Unlock Solution: Only one person can change a file at a time. Example: VSS. Copy-Modify-Merge Solution: Users modify private copies only - in parallel Private copies are merged together into a new, final version. Example: CVS, Subversion. Configuration Management

Configuration Management Problems With Locking Administrative problems: A user can lock a file and forget about it. Time is wasted while others wait to edit the file. Unnecessary serialization: Different parts of a file don’t necessarily overlap. E.g.: Alice works on the beginning of a file, Bob wants to edit the end of the same file. Configuration Management

Problems With Locking – cont. False sense of security: Let’s say Alice locks and edits file A, while Bob simultaneously locks and edits file B. Let’s say A and B depend on one another, and the changes made to each are semantically incompatible. Suddenly, A and B don't work together anymore. Configuration Management

The Copy-Modify-Merge Solution Aviva and Arik both check out file A. Here, checkout has no locking effect – it’s just a local copy. Repository A Read Read A A Configuration Management

The Copy-Modify-Merge Solution Both edit their local files. Repository A Aviva Arik Configuration Management

The Copy-Modify-Merge Solution Aviva checks in her file to the repository first. Repository Aviva Write Aviva Arik Configuration Management

The Copy-Modify-Merge Solution Now, Arik tries to check-in his file. He gets an “up-to-date check error” Repository Aviva Aviva Write Arik Configuration Management

The Copy-Modify-Merge Solution Arik updates his local copy to contain the changes made by Aviva. Changes are added to the local file. During this merge, conflicts may occur. Repository Aviva Aviva Read A’ (=Aviva+Arik) Configuration Management

The Copy-Modify-Merge Solution A new merged file is created on Arik’s machine. Repository Aviva Aviva B Configuration Management

The Copy-Modify-Merge Solution Arik commits his file to the repository. Repository B Write B Aviva Configuration Management

The Copy-Modify-Merge Solution Aviva updates her file from the repository. Repository B Read B B Configuration Management

Configuration Management Check-out etiquette If two people have a file checked out, they have to merge their changes before check-in Merging files can be messy! This requires coordination and responsibility on the part of developers, not to make unnecessary check-outs, and not to hold check-outs for too long. Configuration Management

Configuration Management File Comparison Users can graphically compare two versions of files, in or out of the database. Tools: BeyondCompare, Windiff, AraxisMerge… This helps with manual merges Also helps people decide which version to access Configuration Management

Configuration Management SourceSafe Central repository of read-only files. Everybody sees the same version. Only one user can check in at once. No branching. Limited merge capabilities. Synchronized with Visual Studio Configuration Management

Advantages of SourceSafe Synchronized with Visual Studio. Relatively inexpensive. Relatively simple to administrate. Configuration Management

Disadvantages of SourceSafe Does not support branching Requires verbal coordination. Poses a problem for large projects. Complicates development of features Not compatible with other OS’s. Configuration Management

Configuration Management Get Latest Version (?) Getting the latest version copies (rather than links) the file from the database to your personal directory - And so: Getting latest version overwrites files in personal folders. Rename local files beforehand if you want to keep them. Database updates do not update local copies. Changes to database necessitate manual merges. Configuration Management

Preserving Database Integrity (or: watch SourceSafe limp…) Before a SourceSafe check-in: Verify thoroughly that the modified file works with other files Otherwise there could be big trouble… Other systems allow for new branches Files can be updated there. Branch is merged with main trunk only after integrity checks. Advantage: source control throughout the checking process! Configuration Management

Configuration Management Demo- SourceSafe Demo – SourceSafe Configuration Management

Concurrent Versions System CVS has UNIX origins. Available also for Linux and Windows. Stores only the differences between versions. Configuration Management

Configuration Management Clients Command line. GUI (i.e. WinCVS, tkCVS, etc) NOTE: Most GUI/Plugins are wrappers around the basic CVS command line client. Configuration Management

Configuration Management Revisions Each version of a file has a unique Revision number. Revision numbers look like ‘1.1’, ‘1.2’, ‘1.3.2.2’ or even ‘1.3.2.2.4.5’. 1.1 1.2 1.3 1.4 Main.c Configuration Management

Configuration Management Revision Numbering By default: revision 1.1 is the first revision of a file. Successive revisions incremement the rightmost number. Configuration Management

Configuration Management Tags Tags are used to give a symbolic name to a certain collection of file revisions. Main.c 1.1 1.2 1.3 1.4 TAG_XXX Main.h 1.1 1.2 Lala.c 1.1 1.2 1.3 Configuration Management

Configuration Management Branching Like ClearCase, CVS allows branches: Allows changes to be isolated into a separate development line. Branches are good for: Fixing bugs in historical releases. Developing features without disrupting primary development. Configuration Management

Configuration Management Trunks and Branches The main branch is called the “main trunk”. A branch can be merged back to the main trunk, or left as a branch. Configuration Management

Branches and Revisions 1.2.2.2.2.1 1.2.2.2.2.2 Branch 1.2.2.2.2 -> 1.2.2.1 1.2.2.2 Branch 1.2.2. -> 1.1 1.2 1.3 1.4 Main Trunk Main.h 1.2.4.1 1.2.4.2 1.2.4.3 Branch 1.2.4. -> Configuration Management

Configuration Management ClearCase - Overview Rational ClearCase is a software tool for revision control of source code and other software development assets. Basic concepts: Items under ClearCase are generally referred to as “elements”. For example: design models, source files, project files, DLLs, etc. Configuration Management

Configuration Management VOB All elements stored in VOBs – Version Object Bases. Depending on the size and complexity of your SW development environment – ClearCase elements may be distributed across more than one VOB. For example: elements used by the Documentation group can be stored in one VOB, while elements contributing to software builds can be stored in a different VOB. Configuration Management

Configuration Management VOB – Illustration This diagram illustrates a VOB that contains the file elements : prog.c, util.h, msg.cat, and lib.c Configuration Management

Configuration Management View To access an element under ClearCase, you set up and work in a view, A view shows a directory tree of specific versions of the element. Configuration Management

Configuration Management Two kinds of views: Snapshot views copy files from VOBs to your computer. Dynamic views, use the multiversion file system (MVFS) of ClearCase to provide immediate, transparent access to the data in VOBs. Configuration Management

Configuration Specifications A set of rules called a configuration specification determines which files are in a view. These rules are written in a special and powerful script language. Configuration Management

Configuration Management Version Trees Each time an element is revised and checked in, ClearCase creates a new version of the element in the VOB. ClearCase organizes the different versions of an element in a VOB into a version tree. Configuration Management

Version Trees and Branches - Illustration This diagram illustrates a version tree and several branches: Configuration Management

Advantages of ClearCase Can handle projects that: a) Consists from a lot of developers. b) Go on for a very long time. Developed and marketed by IBM, i.e. very smooth and natural integration with a lot of other IDE/CM/test/profiling… Tools. Versatile – lots of possibilities and capabilities. Configuration Management

Configuration Management Advantages – cont. Supported by multiple OS Windows, Unix (Solaris, AIX, …), Linux. Can be accessed from client on one OS to a server on another OS. Enables real parallel development - work on multiple versions of the same source file concurrently. Configuration Management

Configuration Management Disadvantages High price. Too versatile one can never learn all capabilities. Complex support must have very good - full time - administrator. Configuration Management

Configuration Management ClearCase View Snapshots Windows Unix Configuration Management

ClearCase Integrated in Visual Studio IDE. Configuration Management

Checkout Operation Snapshot Windows Unix Configuration Management

ClearCase Merge Utility Windows Unix Configuration Management

Version Tree Snapshot Windows Unix Configuration Management

General Info – Unix version General information about a file in the repository – in the Unix GUI. Configuration Management

Configuration Management

Configuration Management

Configuration Management THE END Configuration Management