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

Slides:



Advertisements
Similar presentations
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.
Advertisements

Introduction To GIT Rob Di Marco Philly Linux Users Group July 14, 2008.
Software engineering tools for web development Jim Briggs 1CASE.
Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
Me: Dr James Hetherington -- UCL Research Software Development Team -- blogs.ucl.ac.uk/research-software-development/blogs.ucl.ac.uk/research-software-development/
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION VERSION CONTROL UW Autumn 2011.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
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.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Configuration Management.
1 CMPT 275 Software Engineering Revision Control.
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.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Source Code Revision Control Software CVS and Subversion (svn)
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.
By: Taylor Helsper.  Introduction  Bug Tracking  Progress Tracking  Version Control  Conclusion  Questions.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
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.
Programming in Teams And how to manage your code.
Source Code Management with CVS Kurt Wiersma December 2004.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Software engineering Olli Alm Lecture 6: implementation, tools for software development.
Introduction to Version Control
Source Control Repositories for Team Collaboration: SVN, TFS, Git.
Subversion, an Open Source Version Control System An Introduction.
Revision Control and Issue Tracking Andrew Watkins.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
1 Lecture 19 Configuration Management Software Engineering.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University
Git – versioning and managing your software L. Grewe.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control Systems with Subversion (SVN) and Tortoise.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
1 Brief Introduction to Revision Control Ric Holt.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
Management of Software Project CSM Software Configuration Management (SCM)
Source Control Saves Lives. Lorna Mitchell Source Control Saves Lives BarCamp Leeds What is Source Control? Central filestore Change history Audit trail.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Introduction to Git Yonglei Tao GVSU. Version Control Systems  Also known as Source Code Management systems  Increase your productivity by allowing.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
INFSO-RI Enabling Grids for E-sciencE Distributed Version Control Systems Ákos Frohner CERN, IT-DM.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Introduction to Git - Chirag Dani. Objectives Basics of Git Understanding different “Mindset of Git” Demo - Git with Visual Studio.
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.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
4 Version control (part 1)
LECTURE 2: Software Configuration Management
Version control, using Git
Version Control System using Git
Version Control System
CSCE 606: Configuration Management
LECTURE 3: Software Configuration Management
Presentation transcript:

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

What is SCM?

SCM goals Manage the changes to documents, programs, files, etc. Track history Identify person responsible for each change, and reasons Recover (roll back to) previous versions as necessary Maintain sets of compatible versions of files (configurations)

Several related concepts & terms Source code vs. configuration management – both called SCM Revision control ≈ version control Web content management Work flows

Definition according to Wiki Configuration management is the management of features and assurances through control of changes made to hardware, software, firmware, documentation, test, test fixtures and test documentation of an system, throughout the development and operational life of a system.hardwaresoftware firmwaredocumentation Source Code Management or revision control is part of this.revision control

Definition According to Dennis Configuration and change management is the tracking of the state of the artifacts (hardware, software, firmware, documentation, test, test fixtures and test documentation of an system) throughout the development of a system.hardwaresoftware firmwaredocumentation

Configuration Management Defined The management and control of all any changes made to any and all features of the software development activity. This includes hardware, software, documentation, and firmware. Configuration management can be done with a tool. These tools range in price from $0 to $400,000. It depends on how many features you wish to manage and how well you want to manage them.

Why do we care? Remember Apollo 13. If a change needs to be made to ANY artifact then when you put them all together again you had better make it right. Suppose you have a programming error and need to change it, recompile and use that software. What version of the hardware did you use for the original? What version of the OS, DB, compiler? What version of the file management software? All that should be the same to recompile. So we must manage.

Why do we care? Suppose we change requirements and get a new use case diagram. Do other things have to change? Will we have more actors, attributes, screen?. So even when the documentation of the system changes as it evolves, we must track that, too.

What are the artifacts? Hardware – ANY hardware that is used by the system. Software – system software (OS, DB, Compiler, etc), supporting software (sorters, mergers, utilities), application software (you wrote or you use). Firmware – ANY firmware used by the system. Documentation – deliverables for development, documentation maintained for the operation of the system, etc.

Configuration Management Includes Change management - of changes to the specifications of a potential software system Documentation management –of all documentation including defects, specification, testing, purchasing, s, memos, agendas…every single documentation detail Hardware/firmware configuration management - of all the hardware and firmware. Source code management –of changes to the source code including the application code, operating system, compilers, utilities, database management system, communication system, middleware, etc.

Configuration Management Standards e.g. IEEE Std IEEE Standard for Software Configuration Management Plans ANSI/EIA National Consensus Standard for Configuration Management MIL-STD-973 Military Standard for Configuration Management[1] (cancelled, but still good reference)[1] GEIA Standard Configuration Management Data Exchange and Interoperability

Source Code Management One of the important parts of configuration management For any development project you need to have a SCM plan SCM is closely connected with team workflow – Workflow defines how SCM is done – How tools are used

Complicating factors for SCM Multiple versions Multiple branches (e.g., development, bug fix, old releases) Multiple authors Concurrent activities Geographical distribution Disk crashes, human errors

SCM Model Differences Centralized vs. Distributed Pushed vs. pulled updates Handling of concurrent updates – Atomic commit operations (transactions) – File locking – Version merging

There are many SCM tools RCS CVS Subversion (svn) Git Mercurial (hg) Bazaar (bzr) … many more

Key terms and concepts File vs. configuration Version/revision numbers Timestamps Releases Repository Working copy, or sandbox Baseline/trunk/mainline/master Branches/forks Change list or patch

More terms and concepts “Checkout” has multiple meanings – Get local working copy (or make it visible?) – Locked, or not? – Configuration versus file Export/import Commit Conflict (superficial, or deep) Merge Tags

Centralized vs. distributed SCM models

Centralized SCM Operations require server – single point of failure – bottleneck

Decentralized SCM Anyone can be a server

How decentralized SCM works.

Start with a global repository

Clone it

Can make cheap local clones via links

Changes can be pushed back upstream

published to web

or shared with trusted peers

Benefits of decentralization Non-intrusive micro-commits Detached operation (off net) No single point of failure Backups are trivial Very flexible... ?

Problems with decentralization No “locking” No single authoritative version Relies on clock synchronization Requires greater discipline, imposed by team workflow rules

Example workflow models Suitable for use with Git or other distributed SCM tool.

Agile workflow All developers are equal, all push changes to same repository. Repository is always up to date with the current “wave front”. tp://progit.org/book/ch5-1.htmtp://progit.org/book/ch5-1.html

UML Sequence Diagram for an Agile team.

Agile workflow

Managed repository. Only one person can push changes to the blessed repository. Means less chance for accidents, but we now have a bottleneck. tp://progit.org/book/ch5-1.htm

An alternate way of sharing a repository, using branches.

Linux-like hierarchical model c.png?object_comment_id=529&history=false&notification=false

Android Git Workflow patches/workflow Two kinds of review, verification by multiple testers before admission to repository.

In this course If you use an IDE such as VB Studio or Eclipse then you can use a SCM plug-in – Several are available. However, if you are not using an IDE you will need to use command-line operations, scripts, or a separate GUI tool for version control. For Spring 2010 we will use Git. – So, you will need to learn it. – During your career you will probably need to learn and use several others.