1 Lecture 19 Configuration Management Software Engineering.

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

1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Software engineering tools for web development Jim Briggs 1CASE.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
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.
Concepts of Version Control A Technology-Independent View.
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
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
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.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Software Configuration Management
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
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.
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.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
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.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Software Engineering Modern Approaches
Software Configuration Management
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
Introduction to Version Control
Revision Control and Issue Tracking Andrew Watkins.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Chapter 4: Software Configuration Management (SCM)
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
…using Git/Tortoise Git
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
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.
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.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
1 Brief Introduction to Revision Control Ric Holt.
ClearCase Concepts and Terminology
An Overview of Tools Available in CS 501 Ken Hopkinson
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
CSE 436—Requirements and Version Control Systems Ron K. Cytron 26 September 2005.
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:
CS 350, slide set 11 M. Overstreet Old Dominion University Spring 2006.
2136 Gallows Road, Suite F, Dunn Loring, VA Phone: Fax: Business Analyst Training 1 Module 5.2 Rational ClearCase.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Version Control and SVN ECE 297. Why Do We Need Version Control?
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.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Software Project Configuration Management
LECTURE 2: Software Configuration Management
Version control, using Git
Version Control System
LECTURE 3: Software Configuration Management
Design and Programming
Systems Analysis and Design I
Presentation transcript:

1 Lecture 19 Configuration Management Software Engineering

2 Source Code Management Also known as Configuration Management Source Code Managers are tools that: –Archive your development files –Serve as a single point of entry/exit when adding or updating development files

3 Why You Want A Source Control System Supports concurrent development Manage diverging source code bases Records file/release versions Easy access to all previous revisions Can record why a revision was made Optimal disk space usage You’ll end up doing something equivalent anyway so it may as well be automated

4 Source Code Management Tools Are Not A substitute for project management A replacement for developer communication

5 How They Work Central database of source code, documentation, build tools Each file stored only once - all other versions are temps of that one copy To Make a Change –Check out the latest version of a file –Make the changes –Update the database

6 What should be in the database Source Code Documentation Build Tools –Often need old versions of the tools to build old versions of the software –Ensures software is rebuilt exactly as the customer received it Test Suites Anything else you might want later

7 Version Control Companies ship several products from the same source base When tracking down bugs you want to examine the code as it was when the product shipped

8 Code Sharing Multiple people can work on the same source base without colliding –(1) Locks individual files so only one person at a time can modify it *OR* –(2) Allows multiple people to modify a source file and the system will automatically merge the changes (usually)

9 Locking Only one person can work on a file at once Works fairly well if developers work on different areas of the project and don’t conflict often Problem 1: People forget to unlock files when they are done Problem 2: People work around locking by editing a private copy and checking in when the file is finally unlocked - easy to goof and lose changes

10 Merging Several people can work on a file at once Before committing changes, each user merges their copy with the latest copy in the database –This is normally done automatically by the system and usually works, but you should not blindly accept the result of the merge

11 Labeling Label all the files in the source base that make up a product at each milestone Just before and just after a major change (i.e changing several interfaces) When a new version ships

12 Version Trees Each file in the database has a version tree Can branch off the version tree to allow separate development paths Typically there is a main path (trunk) for the next major version and the branches off of it are shipped versions for maintenance

13 Branching When a new version ships, typically create a branch in the version tree for maintenance Double update: fix a defect in the latest version and then merge the changes (often by hand) into the maintenance version Also create personal versions so you can make a change against a stable source base and then merge in the latest version later

14 Examples RCS –Solaris: man rcsintro CVS –Solaris: man cvs – Visual SourceSafe –msdn.Microsoft.com/SSAFE ClearCase –

15 RCS File management only Transaction model –check out and lock –edit –check in and unlock Little support for binaries

16 CVS Built on top of RCS –Therefore little support for binaries Database can be remote No locking: merge before commit Fast Integrates with emacs

17 SourceSafe Microsoft’s entry into the field Project-based Checkout-edit-checkin model Built-in web site creation tools Integrates with MSDEV

18 Clearcase Clearcase is configuration management on steroids You create a view of the database with a config spec, which describes how to select files from the database. When you set a view, Clearcase creates a virtual file system containing only those versions of the files selected by the config spec

19 Clearcase Features Distributed System –Several groups at different locations can work on the same database Can install triggers –Example: the author of a file when some one makes a change to it Uses merging model like CVS, but can also lock files

20 More Clearcase Features Integrates with MSDEV Build Management –Knows to rebuild out-of-date files even if your makefile doesn’t Slow and a bit buggy

21 Helpful Rules for Version Control Archived Files Should Always Compile Code Review Files Before Check-in Compile and run latest archived files *as a set* before Check-in No Cheating (even “simple bug fixes” need to undergo this process)

22 Change Management Change management is more critical in modern processes. Artifacts are begun early, use rigor, and evolve over time. Software Change Orders (SCO) are used to create, modify, or obsolesce components. Change Orders are used to track status and performance.

23 Configuration Control Configuration Control Board –Manages releases –Makes change decisions Membership –Software manager(s), system engineer (sometimes), key software architect (sometimes), customer representatives. General comment –It’s never dull! Can be the most fun and exciting software management job of all.

24 Project Work Continue working on your Design Specification Continue working on your prototype