Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No.

Slides:



Advertisements
Similar presentations
© 2007 IBM Corporation Demo Shimon Nir, Rational Technical & Service Manager, IBM Southwest Europe.
Advertisements

Implementing Tableau Server in an Enterprise Environment
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
6th European Banking Supervisors XBRL Workshop Madrid 4, 5 October 2006 Version Control Pablo Santos Códice Software
Configuration management
Software change management
Creating Page Layouts using SharePoint Designer or Visual Studio Becky Bertram MCSD, MCAD MCTS WSS Development MCTS MOSS Development
Welcome to Middleware Joseph Amrithraj
Web Service Composition Prepared by Robert Ma February 5, 2007.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
Configuration Management
Co-funded by the European Union Semantic CMS Community Content Management From free text input to automatic entity enrichment Copyright IKS Consortium.
1 GOES-R AWG Products Processing Framework Configuration Management Yunhui Zhao.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Visual Studio Team System (VSTS). Richard Hundhausen Author of software development books Microsoft Regional Director Microsoft MVP (VSTS) MCT, MCSD,
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
Contents Introduction Requirements Engineering Project Management
1 Software Configuration Management METU Computer Engineering CEng 492 Spring'2004.
Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance.
PVK-HT061 Contents Introduction Requirements Engineering Project Management Software Design Detailed Design and Coding Quality Assurance Software Maintenance.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
The Architecture of Transaction Processing Systems
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.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Configuration Management
Software Configuration Management (SCM)
Software Configuration Management (SCM)
Version control Using Git 1Version control, using Git.
DEEPAK BHIMARAJU; EDWARD ALLEN TEST CHALLENGES IN THE CLOUD.
© 2012 IBM Corporation Rational Insight | Back to Basis Series SCM introduction Chu Shu June 2012.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Software Configuration Management
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Introduction to Version Control
1 ©equinox limited 2005 What the hell is Configuration Management anyway? Martin White Equinox Software Architects August 2005.
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Teaching material for a course in Software Project Management & Software Engineering – part II.
1 Lecture 19 Configuration Management Software Engineering.
Configuration Management (CM)
Version control Using Git Version control, using Git1.
Project 2003 Presentation Ben Howard 15 th July 2003.
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?
Distributed Version Management Distributed Version of Management for Computer Software (DVMS)
Jump to first page (C) 1998, Arun Lakhotia 1 Software Configuration Management: Version Control Arun Lakhotia University of Southwestern Louisiana Po Box.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
ANKITHA CHOWDARY GARAPATI
Configuration Management CSCI 5801: Software Engineering.
SCM a la Carte C-SPIN 03/01/2006 Ross Fraser. AGENDA IEEE/DoD Standard Definition of SCM Introduction to Pattern Languages SCM Pattern Language.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Software Engineering Introduction.
Version Control and SVN ECE 297. Why Do We Need Version Control?
22 Copyright © 2008, Oracle. All rights reserved. Multi-User Development.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
1 Week 9 Software Engineering Fall Term 2015 Marymount University School of Business Administration Professor Suydam.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Configuration Management
Software Configuration Management CSC-532
Version control, using Git
Chapter 6 Database Design
Maintaining software solutions
Enterprise Program Management Office
Parallel Changes in Large-Scale Software Development: An Observational Case Study DEWAYNE E. PERRY University of Texas at Austin HARVEY P. SIY Lucent.
Presentation transcript:

Parallel Changes in Large-Scale Software Development: An Observational Case Study ACM Transactions on Software Engineering and Methodology, Vol. 10, No. 3, July 2001, Pages 308 – 337 Michelle Thomson Agnieszka Jankowska Shiona Webster

Authors Strategy The authors strategy for understanding the problem of parallel changes was to look at the problem from a number of different angles and viewpoints in the context of a large-scale, real-time system and a large-scale development. The authors strategy for understanding the problem of parallel changes was to look at the problem from a number of different angles and viewpoints in the context of a large-scale, real-time system and a large-scale development.

Characteristics An essential characteristic of large-scale software development is parallel development by a team of developers An essential characteristic of large-scale software development is parallel development by a team of developers How this development is structured and supported has a profound effect on both the quality and timeliness of the product How this development is structured and supported has a profound effect on both the quality and timeliness of the product

Why parallel development Release preparation Release preparation Post-release maintenance (segregated from new development) Post-release maintenance (segregated from new development) Tailored or customer-specific software Tailored or customer-specific software Segregation of work by different development teams or individuals Segregation of work by different development teams or individuals Segregation of work on different features Segregation of work on different features Deployment of different software variants into different environments Deployment of different software variants into different environments

Issues Four essential problems in software development: 1) evolution 1) evolution 2) scale 2) scale 3) multiple dimensions of system organisation 3) multiple dimensions of system organisation 4) distribution of knowledge. 4) distribution of knowledge.

Evolution Evolution compounds the problems of parallel development because not only is there parallel development within each version, but also among the releases as well Evolution compounds the problems of parallel development because not only is there parallel development within each version, but also among the releases as well

Scale Scale compounds the problems by increasing the degree of parallel development and therefore increasing both the interactions and interdependencies among the developers Scale compounds the problems by increasing the degree of parallel development and therefore increasing both the interactions and interdependencies among the developers

Multiple dimensions of system organisation Multiple dimensions of system organisation compounds the problems by preventing tidy separations of development into independent work units Multiple dimensions of system organisation compounds the problems by preventing tidy separations of development into independent work units By System organisation, we are looking at hardware and software which make up the product and not the developers organisation By System organisation, we are looking at hardware and software which make up the product and not the developers organisation

Distribution of Knowledge Distribution of knowledge compounds the problem by decreasing the degree of awareness that is distributed Distribution of knowledge compounds the problem by decreasing the degree of awareness that is distributed

File checkin/checkout, branching and merging

Serial development using exclusive checkouts

Branching

Merging

Management of Parallel Changes One of the standard features that enables developers to create parallel versions of the code is the branching mechanism One of the standard features that enables developers to create parallel versions of the code is the branching mechanism Every time a developer needs to create a new version of the code, they request the configuration management system (CMS) to create a new branch Every time a developer needs to create a new version of the code, they request the configuration management system (CMS) to create a new branch The different versions of the code are then all stored in the same physical file The different versions of the code are then all stored in the same physical file

Benefit of CMS in parallel development

Classic vs. Modern Configuration Management Systems In the classic configuration management system the merging process has to be done manually. There are no mechanisms to collapse branches back together In the classic configuration management system the merging process has to be done manually. There are no mechanisms to collapse branches back together Modern configuration system provide mechanisms for automatically merging several versions back together Modern configuration system provide mechanisms for automatically merging several versions back together

About ClearCase: A Software Configuration Management System (SCMS) originally from Rational Software (now IBM/Rational)

Levels of parallel development 5ESS was maintained as a series of releases each offering new features on top of existing ones 5ESS was maintained as a series of releases each offering new features on top of existing ones Releases were being build in parallel with varying amount of overlapping development Releases were being build in parallel with varying amount of overlapping development Features were being developed in parallel (both with a simple release and multiple releases) Features were being developed in parallel (both with a simple release and multiple releases) * - Wikipidia.

The 5ESS change management process Two layer approach ECMS IMR MR SCCS Change management layer Configuration management layer Deltas

Process of implementing an MR Make private copy of file Make private copy of file Try out change Try out change Retrieve original from SCCS – lock for editing Retrieve original from SCCS – lock for editing Makes changes [deltas] in the SCCS – release locks Makes changes [deltas] in the SCCS – release locks Retrieve amended files again from SCCS for reading Retrieve amended files again from SCCS for reading Put code through inspection & testing Put code through inspection & testing Submitted back for load integration Submitted back for load integration MR closed when changes made and approved MR closed when changes made and approved IMR is closed IMR is closed

IMR vs. MR activity

Lucent Technologies subsystem: 5ESS

Facts: Case study data found that: The higher degree of parallelism the higher the number of defects! The higher degree of parallelism the higher the number of defects! 12.5% of all deltas are made to the same file by different developers within the same 24h period Across the subsystems, 3% of the deltas made within 24h by different developers physically overlap each others changes.

Case study observations The parallel development plays a vital role in large- scale software development The parallel development plays a vital role in large- scale software development As study showed that the current tools (2001) available for the level or parallelism involved in large-scale development were inadequate As study showed that the current tools (2001) available for the level or parallelism involved in large-scale development were inadequate The number of defects was proportional to the level of parallelism The number of defects was proportional to the level of parallelism

Team work In parallel development team work plays a vital role to insure good integration of the system In parallel development team work plays a vital role to insure good integration of the system Communication, effort and interaction need to be effectively organised and executed for parallel development effort to succeed Communication, effort and interaction need to be effectively organised and executed for parallel development effort to succeed Team members need be aware of what other team members are doing and why Team members need be aware of what other team members are doing and why

Workflow Organization Microsoft Solution Framework

It is not a question of how well each process works, the question is how well they all work together. Lloyd Dobens

References Dewayne E. Perry et al. ACM Transactions on Software Engineering and Methodology, Vol. 10, No. 3, July 2001, Pages Brad Appleton, Stephen Berczuk, Ralph Cabrera, and Robert Orenstein. Permission is granted to copy for the PLoP '98 conference Tom Demarco, Timothy Lister. Peopleware: Productive Projects and Teams. Dorset House Plastic SCM Platform Parallel Development. Pablo Santos Luaces. Codice Software. February Context switching. contect-switching.html contect-switching.html