Software Configuration Management



Similar documents
Software Configuration Management

Software configuration management

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

Software Configuration Management for Embedded Systems Developers

Chapter 5. Choose the answer that mostly suits each of the sentences given:

Software Configuration Management Best Practices for Continuous Integration

Surround SCM Best Practices

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

Configuration Management: An Object-Based Method Barbara Dumas

Chapter 13 Configuration Management

CENG492 SENIOR DESIGN PROJECT AND SEMINAR II SOFTWARE CONFIGURATION MANAGEMENT PLAN

Chapter 13 Configuration Management

SOFTWARE DEVELOPMENT BASICS SED

Software Configuration Management. Addendum zu Kapitel 13

Configuration Management for Reusable Software

Software Configuration Management. Visiting Lecture Tero Kojo

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

Software Configuration Management. Context. Learning Objectives

SOE. managing change in system development projects: configuration management

Module 11 Setting up Customization Environment

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

Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More

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

Configuration & Build Management

Theme 1 Software Processes. Software Configuration Management

Configuration Management Plan

The Deployment Pipeline

Version Control with Subversion and Xcode

Software Configuration Management

Exploratory Testing Dynamics

DMSplus for Microsoft SharePoint 2010

How To Develop Software

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

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

High-level Best Practices in Software Configuration Management

Advanced Computing Tools for Applied Research Chapter 4. Version control

High-Level Software Version Management Best Practices Abstract

One solution for all your Source Configuration Management Needs

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

FSW QA Testing Levels Definitions

Configuration Management - The Big Picture

Version Control! Scenarios, Working with Git!

Developing Software in a Private workspace PM PMS

19 Configuration Management

A guide through the concepts of Serena Dimensions. René Steg Steg IT-Engineering, Zurich (Switzerland)

Lab 0 (Setting up your Development Environment) Week 1

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

CHAPTER 7 Software Configuration Management

STAR JPSS Algorithms Integration Team Configuration Management Plan Version 1.2

Continuous Integration. CSC 440: Software Engineering Slide #1

serena.com Best Practice for Parallel Development using Serena Dimensions

White Paper. Software Development Best Practices: Enterprise Code Portal

Integrity 10. Curriculum Guide

Integrated Open-Source Geophysical Processing and Visualization

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

Patch Management. Module VMware Inc. All rights reserved

The Real Challenges of Configuration Management

Microsoft Dynamics CRM Campaign Integration - New features

Solving the Software Quality Challenges of Agile Development

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

Detailed Design Report

What Is Software Configuration Management?

PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone

Two-Factor Authentication Basics for Linux. Pat Barron Western PA Linux Users Group

Project Audit & Review Checklist. The following provides a detailed checklist to assist the PPO with reviewing the health of a project:

Best Practices for Deploying and Managing Linux with Red Hat Network

"Code management in multi programmer environments."

Exploratory Testing Dynamics

Source Control Systems

OCR LEVEL 2 CAMBRIDGE TECHNICAL

A WHITE PAPER BY ASTORIA SOFTWARE

Configuration Management for Open Source Software

Towards Software Configuration Management for Test-Driven Development

Continuous Integration Just another buzz word?

Serena Dimensions CM. Develop your enterprise applications collaboratively securely and efficiently SOLUTION BRIEF

MontaVista Linux 6. Streamlining the Embedded Linux Development Process

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

SSO Plugin. HP Service Request Catalog. J System Solutions. Version 3.6

Problems and Measures Regarding Waste 1 Management and 3R Era of public health improvement Situation subsequent to the Meiji Restoration

Configuration Management Patterns

NEESit Software Configuration Management Process

Spring Security SAML module

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

The Benefits of Utilizing a Repository Manager

Revision control systems (RCS) and

Integrated version control with Fossil SCM

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

Transcription:

Steven J Zeil March 17, 2013 Contents 1 Problems 2 2 Common Practices 6 1

1 Problems Software Configuration Management Over time, a software system can exist in many versions: revisions created as developers check in changes configurations intended for different hardware, operating system, or application environments releases issued to users * which, if under continued support, may have separate tracks of revisions recording separate bug fixes Software Configuration Management (SCM) is concerned with all of these SCM Activities Version control Build management Environment management Change management We have seen some tools oriented towards some of these. But the broader SCM context may alter how we use some of them CS795 2

Codelines and Baselines A codeline is a sequence of revisions of a configuration item In essence, a branch A baseline is a collection of component versions that make up a system. Codelines and Baselines: Example CS795 3

Baseline: Windows Release 2 1.1 1.2 1.3 1.4 1.4 A 1 codelines 2.1 2.2 B 4 External Libraries and components A 1 A 2 2.2 A 2 Baseline: Linux Release 3 B 4 Baselines A major challenge of SCM is coping with multiple baselines that must co-exist and be actively maintained. CS795 4

Major issues are deciding when to freeze on a version of an imported library tracking the transitive closure of dependencies from libraries that we directly depend upon finding a mutually compatible set of versions among all those external libraries Environment Management Coping with the different environments in which the software may need to be installed and/or built. Strategies include separate files * Easier to manage in the C/C++ world than in Java deltas (patches) conditional compilation * Favored in the C/C++ world * Harder to support in Java world dynamic loading * Common in the Java world * Often controlled by property files that name modules to be employed for designated tasks in a given installation. CS795 5

Example: the ODU Extract Project Metadata extraction system, needed to support One release version (thank the heavens) Windows, Linux, & Mac platforms Choice of 2 OCR programs (or none at all) With local or network access to licensed copies With or without caching of OCR results Statistical models trained on different document collections Varying client requirements for data post-processing Problem was not so much the number of choices as the combinatorics. 2 Common Practices Baselines Managed by Build Manager Build manager is told what external libraries are needed including desired versions Build manager may be responsible for collecting desired versions of both external and internal code from version control. Build files are managed as part of each version. CS795 6

Codelines == Branches Main trunk moves forward in time Each planned release is a branch from the trunk release 3 v1.0 development continues forward through its maintenance lifetime 1 2 5 main trunk CS795 7

Change Management In large organizations, changes are approved by a Change Management Board. E.g., the team working in an exploratory branch has demonstrated an attractive new feature. Should we adopt it? If so, which of the version code lines should it be added to? Change Propagation Even in smaller projects, the issue of change propagation across code lines needs to be kept in mind. The whole main trunk moves forward idea presumes that most release changes are synced into the trunk: CS795 8

release v1.01 3 4 6 8 release 7 9 v1.0 development v1.1 development 13 v2.0 development 1 2 5 11 main trunk 10 12 exploratory branch As a practical matter, someone has to decide whether bug fixes in older versions can and should be merged into CS795 9

release v1.01 bug fix 3 4 6 8 release 7 9 14 v1.0 development v1.1 development later versions. 13 v2.0 development {buggy code was already removed from v2.0 development} 1 2 5 11 main trunk 10 12 exploratory branch Simpler Project Structure In current practice, Large projects composed of multiple subprojects are discouraged CS795 10

in favor of smaller, independent projects (e.g., one per original subproject) A common rule of thumb is that one project should produce one product (e.g., a single Jar file) Plus, perhaps, a source distribution. * and those are increasingly being replaced by centralized VC repositories CS795 11