SlideShare a Scribd company logo
Software Configuration Management Andr é van der Hoek Institute for Software Research University of California, Irvine [email_address]
Configuration Management “ Configuration management (CM) is a discipline whose goal is to  control changes   to large software through the functions of: component identification, change tracking, version selection and baselining, software manufacture, and managing simultaneous updates (team work).” Walter Tichy, SCM-1, 1988
CM Spectrum of Functionality Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Susan Dart, SCM-3, 1991 Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
Three Generations of CM Systems CCC/Harvest Functionality Proteus Jasmine EPOS VOODOO ShapeTools Asgard NUCM DaSC Vesta Adele ICE Odin Time Source Integrity Continuus CVS PVCS DSEE SCCS NSE ClearCase TRUEchange Serena Endevor Perforce RCS Sablime Research Development
First Generation Focused on: Archiving individual elements Strictly avoiding conflicts Optimizing builds Characterized by: Simple, separate tools Development orientation Canonical examples: RCS Make
Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 REVISION NEW BASELINE
Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 BRANCH LEADS TO VARIANTS 1.2.1.0 1.2.1.1
Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 MERGE 1.2.1.0 1.2.1.1
Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 Author = “Andr é v/d Hoek” Date = 01/12/2001 Time = 7:52am Comment = “Trying new stuff” ATTRIBUTES (TAGS)
Avoiding Conflicts 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 Author = “Andr é v/d Hoek” Date = 01/12/2001 Time = 7:52am Comment = “Trying new stuff” Lock = “andre@ics.uci.edu” LOCK
Optimizing the Build Process accesslist.o: accesslist.h accesslist.c gcc –o accesslist.o accesslist.c andre.o: andre.c gcc –c andre.o andre.c clientprotocol.o: clientprotocol.c clientprotocol.h gcc –c clientprotocol.o clientprotocol.c main.exe: andre.o accesslist.o clientprotocol.o gcc andre.o accesslist.o mv a.out main.exe chmod a+x main.exe
Optimizing the Build Process -r--r--r--  1 andre  faculty  2651  Aug  4  1999  Makefile drwxr-xr-x 2 andre  faculty  4096  Aug  4  1999  RCS/ -r--r--r--  1 andre  faculty  5688  Aug  4  1999  accesslist.c -r--r--r--  1 andre  faculty  1608  Aug  5  1999 accesslist.h -rw-r--r--  1 andre  faculty  22840  Aug  4  1999 accesslist.o -rw-r--r--  1 andre  faculty  10061  Aug  4  1999  andre.c -rw-r--r--  1 andre  faculty  21944  Aug  4  1999  andre.o -rw-r--r--  1 andre  faculty  14224  Aug  5  1999  clientprotocol.c -rw-r--r--  1 andre  faculty  3491  Aug  6  1999  clientprotocol.h -rw-r--r--  1 andre  faculty  48272  Aug  4  1999  clientprotocol.o
First Generation Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
Second Generation Focused on: Archiving compound elements Different version models Characterized by: Integrated versioning & build tools Development orientation Canonical examples: DSSE Adele
Archiving Compound Elements 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 1.0 2.0 2.2 2.1 2.3 1.0 1.1 1.3 1.2 2.0 2.0.1.0 1.0 1.1 1.2
Different Version Models State-based extensional Version tree State-based intensional Conditional compilation Change-based extensional Change packages Change-based intensional Change sets
Conditional Compilation … #ifdef UNIX #include <stdio.h> #endif #ifdef GRAPHICS #include <graphics.h> #ifdef SMARTGRAPHICS #include <smart.> #endif #endif
Change Packages 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 1.0 2.0 2.2 2.1 2.3 1.0 1.1 1.3 1.2 2.0 2.0.1.0 1.0 1.1 1.2 1.0: BASELINE 1.1: BUG FIX for reporting error #16 1.2: FEATURE ADDITION for graphical user interface
Change Sets Baseline Bug fix #16 Feature addition #103 Bug fix #17 Feature addition #104 Bug fix #8 Bug fix #16 Bug fix #6 Bug fix #21 AVAILABLE CHANGE SETS SYSTEM SELECTION
Second Generation Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
Third Generation Focused on: Providing process support Being all-encompassing Characterized by: Large, complex tools Management orientation Canonical examples: ClearCase + ClearGuide Continuus
Third Generation Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
Fourth Generation ?
Today’s Rapidly Changing Landscape Construction by component assembly Integrators and suppliers Multiple organizations and locations Decentralized control Customized products tailored to the individual customer Continuous change management management after development
Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
Versioned Components Required modeling capabilities Evolution Multiple revisions, temporary branches, baselines Variability Property-based alternatives, interface compatibility Optionality Property-based inclusion Results in modeling a product family/product line
M é nage
M é nage
Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
Separation of Repository from Policy CM policy Z (WebDAV) CM policy Y (change set) Current monolithic  centralized CM systems Generic and distributed  CM repository CM policy X (checkout/checkin) CM system = CM repository +  CM policy Examples RCS = ,v files + checkout/checkin TrueCHANGE = flat file + change set
Peer-to-Peer Repositories Policy Pattern checkout/checkin Manages compound artifacts Each artifact can be stored in a different location cross-repository membership
Repository Design artifacts trees artifacts trees artifacts trees BOULDER MILANO ROTTERDAM
Core Policy Design proc createfederation { myhost collection itshost theartifact } { set user $env(USER) set workspace “/tmp/workws” set filename [file tail $collection] set artifact “//myhost/Artifacts/$collection” set wsartifact “$workspace/$filename” lock $artifact $user nc_open  $artifact $workspace nc_initiatechange  $wsartifact nc_add  //$itshost/theartifact nc_commitchange  $wsartifact nc_close  $wsartifact nc_removeattribute  $artifact “Lock” }
Movement upon Checkout Policy Pattern peer-to-peer repositories Artifacts move from physical repository to physical repository move is triggered by checkout
Repository Design artifacts trees artifacts trees artifacts trees BOULDER MILANO ROTTERDAM
Core Policy Design proc movingcheckout { workspace content version } { set user $env(USER) set host $env(REPOSITORYHOME) set artifact “//$host/Artifacts/$content” set tree “//$host/Trees/$content” set filename [file tail $content] set wsartifact “$workspace/$filename” set storageversion [lindex [ nc_selectversions  $artifact “PolicyVersion” $version] 0] set artifact “$artifact:$storageversion” set locked [ nc_testandsetattribute  $artifact “Lock” $user] lock $artifact $user nc_open  $artifact $workspace nc_initiatechange  $wsartifact nc_move  $artifact $host nc_move  $tree $host }
Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
Software Deployment: the Problem Producer Consumer
Software Deployment: the Problem Producer Consumer
Software Deployment: the Problem Producer Consumer
Software Deployment: the Problem Producer Consumer
Software Deployment Life Cycle Release Retire Reconfig Adapt Remove Update Install Producer Consumer
SRM Releasing a complete system of systems.
SRM Retrieving a complete system of systems.
Software Dock Agent Agent Agent Field Dock Wide-Area Event Service Agent-based deployment. Agent Agent Agent Release  Dock Agent Agent Enterprise Dock Agent Field Dock
Software Dock Enterprise, distributed control.
Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
Conclusion CM as a discipline is changing Broader scope Wide-ranging responsibility Intermingling with other disciplines CM tools will be vastly different Component-based Design, development, deployment, and run-time Not just implementation Much research remains to be done

More Related Content

What's hot (20)

PDF
Learning notes on Open Source License
SZ Lin
 
PPTX
Fast boot
SZ Lin
 
PDF
Long-term Maintenance Model of Embedded Industrial Linux Distribution
SZ Lin
 
PPTX
y2038 issue
SZ Lin
 
PPTX
Distributed Compiler Icecc
SZ Lin
 
PDF
淺談 Live patching technology
SZ Lin
 
PPTX
Embedded Linux/ Debian with ARM64 Platform
SZ Lin
 
PDF
Linux Kernel Participation HowTo
benavrhm
 
PPTX
What should you know about Net Core?
Damir Dobric
 
PDF
Using Embedded Linux for Infrastructure Systems
Yoshitake Kobayashi
 
PDF
OSSA17 - Live patch, VMI, Security Mgmt (50 mins, no embedded demos)
The Linux Foundation
 
PPTX
Open source Android 10 on Orange Pi: Meth or Reality?
GlobalLogic Ukraine
 
PDF
XPDS16: A Paravirtualized Interface for Socket Syscalls - Dimitri Stiliadis, ...
The Linux Foundation
 
PDF
Porting a new architecture (NDS32) to open wrt project
Macpaul Lin
 
PDF
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?
Anne Nicolas
 
PDF
On the Security of Application Installers & Online Software Repositories
Marcus Botacin
 
PDF
2008-07-30 IBM Teach the Teacher (IBM T3), Red Hat Update for System z
Shawn Wells
 
PPTX
What is the merge window?
Macpaul Lin
 
PPTX
OSSEU17: How Open Source Project Xen Puts Security Software Vendors Ahead of ...
The Linux Foundation
 
PDF
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
EmbeddedFest
 
Learning notes on Open Source License
SZ Lin
 
Fast boot
SZ Lin
 
Long-term Maintenance Model of Embedded Industrial Linux Distribution
SZ Lin
 
y2038 issue
SZ Lin
 
Distributed Compiler Icecc
SZ Lin
 
淺談 Live patching technology
SZ Lin
 
Embedded Linux/ Debian with ARM64 Platform
SZ Lin
 
Linux Kernel Participation HowTo
benavrhm
 
What should you know about Net Core?
Damir Dobric
 
Using Embedded Linux for Infrastructure Systems
Yoshitake Kobayashi
 
OSSA17 - Live patch, VMI, Security Mgmt (50 mins, no embedded demos)
The Linux Foundation
 
Open source Android 10 on Orange Pi: Meth or Reality?
GlobalLogic Ukraine
 
XPDS16: A Paravirtualized Interface for Socket Syscalls - Dimitri Stiliadis, ...
The Linux Foundation
 
Porting a new architecture (NDS32) to open wrt project
Macpaul Lin
 
Embedded Recipes 2019 - RT is about to make it to mainline. Now what?
Anne Nicolas
 
On the Security of Application Installers & Online Software Repositories
Marcus Botacin
 
2008-07-30 IBM Teach the Teacher (IBM T3), Red Hat Update for System z
Shawn Wells
 
What is the merge window?
Macpaul Lin
 
OSSEU17: How Open Source Project Xen Puts Security Software Vendors Ahead of ...
The Linux Foundation
 
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
EmbeddedFest
 

Similar to Configuration Management (20)

PPT
A Brief Introduction to Software Configuration Management
Md Mamunur Rashid
 
PPTX
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
ODP
Software Build processes and Git
Alec Clews
 
PPTX
Configuration management
Mohammed Abdallah
 
DOCX
Chapter 25 – Configuration ManagementChapter 25 Configuratio
EstelaJeffery653
 
PDF
SE2_Lec 22_Software Configuration Management
Amr E. Mohamed
 
PDF
SE2018_Lec 21_ Software Configuration Management (SCM)
Amr E. Mohamed
 
PPT
Introduction to Version Control and Configuration Management
Philip Johnson
 
PPTX
[Mas 500] Software Development Strategies
rahulbot
 
PPTX
Ch25 configuration management
software-engineering-book
 
PPT
Bse 3105 lecture 6-configuration management
Alonzee Tash
 
PPT
Configuration Management
Rajesh Kumar
 
PPT
Voyager scm
SivaprasanthRentala1975
 
PPT
Voyager scm
sivaprasanth rentala
 
PPTX
Ch25 - Configuration Management
Harsh Verdhan Raj
 
PDF
Systems se
Franco Bressan
 
PPT
Configuration Management
sslovepk
 
PDF
Continuous integration (eng)
Anatoliy Okhotnikov
 
PPT
Software Configuration Management.ppt
DrTThendralCompSci
 
PDF
IRJET-Evolution of Version Control Systems and a Study on Tortoisesvn
IRJET Journal
 
A Brief Introduction to Software Configuration Management
Md Mamunur Rashid
 
Que nos espera a los ALM Dudes para el 2013?
Bruno Capuano
 
Software Build processes and Git
Alec Clews
 
Configuration management
Mohammed Abdallah
 
Chapter 25 – Configuration ManagementChapter 25 Configuratio
EstelaJeffery653
 
SE2_Lec 22_Software Configuration Management
Amr E. Mohamed
 
SE2018_Lec 21_ Software Configuration Management (SCM)
Amr E. Mohamed
 
Introduction to Version Control and Configuration Management
Philip Johnson
 
[Mas 500] Software Development Strategies
rahulbot
 
Ch25 configuration management
software-engineering-book
 
Bse 3105 lecture 6-configuration management
Alonzee Tash
 
Configuration Management
Rajesh Kumar
 
Ch25 - Configuration Management
Harsh Verdhan Raj
 
Systems se
Franco Bressan
 
Configuration Management
sslovepk
 
Continuous integration (eng)
Anatoliy Okhotnikov
 
Software Configuration Management.ppt
DrTThendralCompSci
 
IRJET-Evolution of Version Control Systems and a Study on Tortoisesvn
IRJET Journal
 
Ad

More from elliando dias (20)

PDF
Clojurescript slides
elliando dias
 
PDF
Why you should be excited about ClojureScript
elliando dias
 
PDF
Functional Programming with Immutable Data Structures
elliando dias
 
PPT
Nomenclatura e peças de container
elliando dias
 
PDF
Geometria Projetiva
elliando dias
 
PDF
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
PDF
Javascript Libraries
elliando dias
 
PDF
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
PDF
Ragel talk
elliando dias
 
PDF
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
PDF
Introdução ao Arduino
elliando dias
 
PDF
Minicurso arduino
elliando dias
 
PDF
Incanter Data Sorcery
elliando dias
 
PDF
Rango
elliando dias
 
PDF
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
PDF
The Digital Revolution: Machines that makes
elliando dias
 
PDF
Hadoop + Clojure
elliando dias
 
PDF
Hadoop - Simple. Scalable.
elliando dias
 
PDF
Hadoop and Hive Development at Facebook
elliando dias
 
PDF
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Clojurescript slides
elliando dias
 
Why you should be excited about ClojureScript
elliando dias
 
Functional Programming with Immutable Data Structures
elliando dias
 
Nomenclatura e peças de container
elliando dias
 
Geometria Projetiva
elliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
 
Javascript Libraries
elliando dias
 
How to Make an Eight Bit Computer and Save the World!
elliando dias
 
Ragel talk
elliando dias
 
A Practical Guide to Connecting Hardware to the Web
elliando dias
 
Introdução ao Arduino
elliando dias
 
Minicurso arduino
elliando dias
 
Incanter Data Sorcery
elliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
 
The Digital Revolution: Machines that makes
elliando dias
 
Hadoop + Clojure
elliando dias
 
Hadoop - Simple. Scalable.
elliando dias
 
Hadoop and Hive Development at Facebook
elliando dias
 
Multi-core Parallelization in Clojure - a Case Study
elliando dias
 
Ad

Recently uploaded (20)

PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PDF
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
TrustArc Webinar - Navigating Data Privacy in LATAM: Laws, Trends, and Compli...
TrustArc
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 

Configuration Management

  • 1. Software Configuration Management Andr é van der Hoek Institute for Software Research University of California, Irvine [email_address]
  • 2. Configuration Management “ Configuration management (CM) is a discipline whose goal is to control changes to large software through the functions of: component identification, change tracking, version selection and baselining, software manufacture, and managing simultaneous updates (team work).” Walter Tichy, SCM-1, 1988
  • 3. CM Spectrum of Functionality Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Susan Dart, SCM-3, 1991 Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
  • 4. Three Generations of CM Systems CCC/Harvest Functionality Proteus Jasmine EPOS VOODOO ShapeTools Asgard NUCM DaSC Vesta Adele ICE Odin Time Source Integrity Continuus CVS PVCS DSEE SCCS NSE ClearCase TRUEchange Serena Endevor Perforce RCS Sablime Research Development
  • 5. First Generation Focused on: Archiving individual elements Strictly avoiding conflicts Optimizing builds Characterized by: Simple, separate tools Development orientation Canonical examples: RCS Make
  • 6. Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 REVISION NEW BASELINE
  • 7. Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 BRANCH LEADS TO VARIANTS 1.2.1.0 1.2.1.1
  • 8. Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 MERGE 1.2.1.0 1.2.1.1
  • 9. Archiving Individual Elements 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 Author = “Andr é v/d Hoek” Date = 01/12/2001 Time = 7:52am Comment = “Trying new stuff” ATTRIBUTES (TAGS)
  • 10. Avoiding Conflicts 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 Author = “Andr é v/d Hoek” Date = 01/12/2001 Time = 7:52am Comment = “Trying new stuff” Lock = “[email protected]” LOCK
  • 11. Optimizing the Build Process accesslist.o: accesslist.h accesslist.c gcc –o accesslist.o accesslist.c andre.o: andre.c gcc –c andre.o andre.c clientprotocol.o: clientprotocol.c clientprotocol.h gcc –c clientprotocol.o clientprotocol.c main.exe: andre.o accesslist.o clientprotocol.o gcc andre.o accesslist.o mv a.out main.exe chmod a+x main.exe
  • 12. Optimizing the Build Process -r--r--r-- 1 andre faculty 2651 Aug 4 1999 Makefile drwxr-xr-x 2 andre faculty 4096 Aug 4 1999 RCS/ -r--r--r-- 1 andre faculty 5688 Aug 4 1999 accesslist.c -r--r--r-- 1 andre faculty 1608 Aug 5 1999 accesslist.h -rw-r--r-- 1 andre faculty 22840 Aug 4 1999 accesslist.o -rw-r--r-- 1 andre faculty 10061 Aug 4 1999 andre.c -rw-r--r-- 1 andre faculty 21944 Aug 4 1999 andre.o -rw-r--r-- 1 andre faculty 14224 Aug 5 1999 clientprotocol.c -rw-r--r-- 1 andre faculty 3491 Aug 6 1999 clientprotocol.h -rw-r--r-- 1 andre faculty 48272 Aug 4 1999 clientprotocol.o
  • 13. First Generation Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
  • 14. Second Generation Focused on: Archiving compound elements Different version models Characterized by: Integrated versioning & build tools Development orientation Canonical examples: DSSE Adele
  • 15. Archiving Compound Elements 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 1.0 2.0 2.2 2.1 2.3 1.0 1.1 1.3 1.2 2.0 2.0.1.0 1.0 1.1 1.2
  • 16. Different Version Models State-based extensional Version tree State-based intensional Conditional compilation Change-based extensional Change packages Change-based intensional Change sets
  • 17. Conditional Compilation … #ifdef UNIX #include <stdio.h> #endif #ifdef GRAPHICS #include <graphics.h> #ifdef SMARTGRAPHICS #include <smart.> #endif #endif
  • 18. Change Packages 1.0 1.1 2.0 1.2 2.1 1.2.1.0 1.2.1.1 1.0 2.0 2.2 2.1 2.3 1.0 1.1 1.3 1.2 2.0 2.0.1.0 1.0 1.1 1.2 1.0: BASELINE 1.1: BUG FIX for reporting error #16 1.2: FEATURE ADDITION for graphical user interface
  • 19. Change Sets Baseline Bug fix #16 Feature addition #103 Bug fix #17 Feature addition #104 Bug fix #8 Bug fix #16 Bug fix #6 Bug fix #21 AVAILABLE CHANGE SETS SYSTEM SELECTION
  • 20. Second Generation Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
  • 21. Third Generation Focused on: Providing process support Being all-encompassing Characterized by: Large, complex tools Management orientation Canonical examples: ClearCase + ClearGuide Continuus
  • 22. Third Generation Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Structure System model Interfaces Consistency Selection
  • 24. Today’s Rapidly Changing Landscape Construction by component assembly Integrators and suppliers Multiple organizations and locations Decentralized control Customized products tailored to the individual customer Continuous change management management after development
  • 25. Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
  • 26. Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
  • 27. Versioned Components Required modeling capabilities Evolution Multiple revisions, temporary branches, baselines Variability Property-based alternatives, interface compatibility Optionality Property-based inclusion Results in modeling a product family/product line
  • 30. Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
  • 31. Separation of Repository from Policy CM policy Z (WebDAV) CM policy Y (change set) Current monolithic centralized CM systems Generic and distributed CM repository CM policy X (checkout/checkin) CM system = CM repository + CM policy Examples RCS = ,v files + checkout/checkin TrueCHANGE = flat file + change set
  • 32. Peer-to-Peer Repositories Policy Pattern checkout/checkin Manages compound artifacts Each artifact can be stored in a different location cross-repository membership
  • 33. Repository Design artifacts trees artifacts trees artifacts trees BOULDER MILANO ROTTERDAM
  • 34. Core Policy Design proc createfederation { myhost collection itshost theartifact } { set user $env(USER) set workspace “/tmp/workws” set filename [file tail $collection] set artifact “//myhost/Artifacts/$collection” set wsartifact “$workspace/$filename” lock $artifact $user nc_open $artifact $workspace nc_initiatechange $wsartifact nc_add //$itshost/theartifact nc_commitchange $wsartifact nc_close $wsartifact nc_removeattribute $artifact “Lock” }
  • 35. Movement upon Checkout Policy Pattern peer-to-peer repositories Artifacts move from physical repository to physical repository move is triggered by checkout
  • 36. Repository Design artifacts trees artifacts trees artifacts trees BOULDER MILANO ROTTERDAM
  • 37. Core Policy Design proc movingcheckout { workspace content version } { set user $env(USER) set host $env(REPOSITORYHOME) set artifact “//$host/Artifacts/$content” set tree “//$host/Trees/$content” set filename [file tail $content] set wsartifact “$workspace/$filename” set storageversion [lindex [ nc_selectversions $artifact “PolicyVersion” $version] 0] set artifact “$artifact:$storageversion” set locked [ nc_testandsetattribute $artifact “Lock” $user] lock $artifact $user nc_open $artifact $workspace nc_initiatechange $wsartifact nc_move $artifact $host nc_move $tree $host }
  • 38. Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
  • 39. Software Deployment: the Problem Producer Consumer
  • 40. Software Deployment: the Problem Producer Consumer
  • 41. Software Deployment: the Problem Producer Consumer
  • 42. Software Deployment: the Problem Producer Consumer
  • 43. Software Deployment Life Cycle Release Retire Reconfig Adapt Remove Update Install Producer Consumer
  • 44. SRM Releasing a complete system of systems.
  • 45. SRM Retrieving a complete system of systems.
  • 46. Software Dock Agent Agent Agent Field Dock Wide-Area Event Service Agent-based deployment. Agent Agent Agent Release Dock Agent Agent Enterprise Dock Agent Field Dock
  • 47. Software Dock Enterprise, distributed control.
  • 48. Long-Term Vision Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture)
  • 49. Conclusion CM as a discipline is changing Broader scope Wide-ranging responsibility Intermingling with other disciplines CM tools will be vastly different Component-based Design, development, deployment, and run-time Not just implementation Much research remains to be done