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



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

Software configuration management

Continuous Integration. CSC 440: Software Engineering Slide #1

Version Control Tools

Revision control systems (RCS) and

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Source Control Systems

Version Control! Scenarios, Working with Git!

Source Code Control & Bugtracking

Advanced Computing Tools for Applied Research Chapter 4. Version control

Software Configuration Management. Addendum zu Kapitel 13

Chapter 13 Configuration Management

Configuration & Build Management

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

Data management on HPC platforms

CS 2112 Lab: Version Control

SOFTWARE DEVELOPMENT BASICS SED

Annoyances with our current source control Can it get more comfortable? Git Appendix. Git vs Subversion. Andrey Kotlarski 13.XII.

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Version Uncontrolled! : How to Manage Your Version Control

Theme 1 Software Processes. Software Configuration Management

Version Control with Git

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

SAS in clinical trials A relook at project management,

Distributed Version Control with Mercurial and git

Software Version Control With Mercurial and Tortoise Hg

Using Git for Project Management with µvision

Continuous Integration and Delivery at NSIDC

Miguel A. Figueroa Villanueva Xabriel J. Collazo Mojica. ICOM 5047 Capstone Miguel A. Figueroa Villanueva University of Puerto Rico Mayagüez Campus

Introduction to Version Control

Version Control Systems

Version Control with Subversion

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

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

Software Configuration Management and Continuous Integration

Software Configuration Management. Context. Learning Objectives

Version control with Subversion

Chapter 13 Configuration Management

Introduction to Programming Tools. Anjana & Shankar September,2010

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

An Introduction to Mercurial Version Control Software

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Software Configuration Management.

Version Control with Git

Integrated version control with Fossil SCM

Software Configuration Management

Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development

Version Control with Git. Dylan Nugent

Content. Development Tools 2(63)

Agile Development with Jazz and Rational Team Concert

Continuous Delivery for Force.com

Mobile Development with Git, Gerrit & Jenkins

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

Modulo II Software Configuration Management - SCM

Version Control with. Ben Morgan

Visual Paradigm product adoption roadmap

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

Git Basics. Christopher Simpkins Chris Simpkins (Georgia Tech) CS 2340 Objects and Design CS / 22

Software Configuration Management

CSCB07 Software Design Version Control

Version Control. Version Control

Version control with GIT

Version Control for Computational Economists: An Introduction

Module 11 Setting up Customization Environment

Introduction to Subversion

This presentation introduces you to the Decision Governance Framework that is new in IBM Operational Decision Manager version 8.5 Decision Center.

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Software Configuration Management (SCM)

Software Development. Overview.

How To Use An Orgsync With Anorgfusion Middleware

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

Introduction to Git. Markus Kötter Notes. Leinelab Workshop July 28, 2015

Ingeniørh. Version Control also known as Configuration Management

Surround SCM Best Practices

Version Control. Luka Milovanov

Software Engineering I (02161)

Work. MATLAB Source Control Using Git

Continuous Integration: Put it at the heart of your development

Delivering Quality Software with Continuous Integration

Source code management systems

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

Software Configuration Management Plan

Demand & Requirements Management Software Development QA & Test Management IT Operations & DevOps Change Management Agile, SAFe, Waterfall Support

Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat

Comparative Analysis of SCM tools and Coexistence with Agile Methodology

Git. A Distributed Version Control System. Carlos García Campos carlosgc@gsyc.es

BEDIFFERENT A C E I N T E R N A T I O N A L

Continuous Delivery. Alejandro Ruiz

Transcription:

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. Source Code Management or revision control is part of this.

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.

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, emails, 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. 828-1998 IEEE Standard for Software Configuration Management Plans ANSI/EIA-649-1998 National Consensus Standard for Configuration Management MIL-STD-973 Military Standard for Configuration Management[1] (cancelled, but still good reference) GEIA Standard 836-2002 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 h"p://edgyu.excess.org/git tutorial/2008 07 09/intro to git.pdf

Decentralized SCM Anyone can be a server h"p://edgyu.excess.org/git tutorial/2008 07 09/intro to git.pdf

How decentralized SCM works.

Start with a global repository

Clone it

Can make cheap local clones via links h"p://edgyu.excess.org/git tutorial/2008 07 09/intro to git.pdf

Changes can be pushed back upstream h"p://edgyu.excess.org/git tutorial/2008 07 09/intro to git.pdf

published to web h"p://edgyu.excess.org/git tutorial/2008 07 09/intro to git.pdf

or shared with trusted peers h"p://edgyu.excess.org/git tutorial/2008 07 09/intro to git.pdf

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.html

UML Sequence Diagram for an Agile team.

Agile workflow h"p://nvie.com/wp content/uploads/2009/12/screen shot 2009 12 24 at 11.32.03.png

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

An alternate way of sharing a repository, using branches. h"p://agentdero.cachefly.net/unethicalblogger.com/images/basic_slide_workflow.png

Linux like hierarchical model h"ps://codebeamer.com/cb/displaydocument/workflow c.png? object_comment_id=529&history=false&noyficayon=false

Android Git Workflow h"p://source.android.com/submit patches/ workflow Two kinds of review, verificayon by mulyple 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.