1.05k likes | 1.2k Views
Informatics 211: Configuration Management & Coordination. Andr é van der Hoek University of California, Irvine Donald Bren School of Information and Computer Sciences Department of Informatics andre@ics.uci.edu. A Simplified Development Scenario. Pete’s workspace. Ellen’s workspace.
E N D
Informatics 211:Configuration Management & Coordination André van der HoekUniversity of California, IrvineDonald Bren School of Information and Computer SciencesDepartment of Informaticsandre@ics.uci.edu (c) 2007 University of California, Irvine – André van der Hoek
A Simplified Development Scenario Pete’s workspace Ellen’s workspace CM repository Pete Ellen (c) 2007 University of California, Irvine – André van der Hoek
Direct Conflicts Pete’s workspace Ellen’s workspace CM repository changes changes Pete Ellen Conflicting changes to the same artifact (c) 2007 University of California, Irvine – André van der Hoek
Indirect Conflicts Pete’s workspace Ellen’s workspace CM repository changes changes Pete Ellen Conflicting changes to different artifacts (c) 2007 University of California, Irvine – André van der Hoek
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 (c) 2007 University of California, Irvine – André van der Hoek
CM Spectrum of Functionality • Components • Versions • Configurations • Baselines • Project contexts • Structure • System model • Interfaces • Consistency • Selection • Construction • Building • Snapshots • Regeneration • Optimization • Controlling • Access control • Change requests • Bug tracking • Partitioning • Accounting • Statistics • Status • Reports • Auditing • History • Traceability • Logging • Process • Lifecycle support • Task mgmt. • Communication • Documentation • Team • Workspaces • Merging • Families Susan Dart, SCM-3, 1991 (c) 2007 University of California, Irvine – André van der Hoek
Three Generations of CM Systems Continuus DaSC ClearCase Perforce NUCM Asgard CCC/Harvest TRUEchange Proteus ICE Serena Vesta Endevor Functionality NSE PVCS EPOS DSEE Source Integrity Adele VOODOO CVS RCS Odin ShapeTools Sablime Jasmine Research Development SCCS Time (c) 2007 University of California, Irvine – André van der Hoek
First Generation • Focused on: • archiving individual elements • strictly avoiding conflicts • Characterized by: • simple, separate tools • development orientation • Canonical examples • SCCS • RCS • Make (c) 2007 University of California, Irvine – André van der Hoek
First Generation: Version Graphs 1.0 1.1 Author = “André v/d Hoek”Date = 01/12/2001Time = 7:52amComment = “Trying new stuff”Lock = “andre@ics.uci.edu” 1.2 1.2.1.0 2.0 1.2.1.1 2.1 (c) 2007 University of California, Irvine – André van der Hoek
First Generation • Components • Versions • Configurations • Baselines • Project contexts • Structure • System model • Interfaces • Consistency • Selection • Construction • Building • Snapshots • Regeneration • Optimization • Controlling • Access control • Change requests • Bug tracking • Partitioning • Accounting • Statistics • Status • Reports • Auditing • History • Traceability • Logging • Process • Lifecycle support • Task mgmt. • Communication • Documentation • Team • Workspaces • Merging • Families (c) 2007 University of California, Irvine – André van der Hoek
Second Generation • Focused on: • archiving compound elements • different version models • Characterized by: • integrated versioning & build tools • development orientation • Canonical examples: • CVS • Subversion • PVCS • SourceSafe (c) 2007 University of California, Irvine – André van der Hoek
Four Canonical Version Models • State-based extensional • version tree • State-based intensional • conditional compilation • Change-based extensional • change packages • Change-based intensional • change sets (c) 2007 University of California, Irvine – André van der Hoek
Conditional Compilation …#ifdef UNIX #include <stdio.h>#endif#ifdef GRAPHICS #include <graphics.h> #ifdef SMARTGRAPHICS #include <smart.> #endif#endif… (c) 2007 University of California, Irvine – André van der Hoek
Change Packages 1.0 1.0 1.0 1.0 2.0 1.1 1.1 1.1 2.1 1.2 1.2.1.0 1.2 2.2 2.0 1.2.1.1 1.3 2.0.1.0 1.2 2.3 2.1 2.0 (c) 2007 University of California, Irvine – André van der Hoek
Change Sets AVAILABLECHANGESETS SYSTEMSELECTION Bug fix #17 Feature addition#104 Bug fix #21 Feature addition#103 Bug fix #8 Bug fix #6 Bug fix #16 Baseline Bug fix #16 (c) 2007 University of California, Irvine – André van der Hoek
Second Generation • Components • Versions • Configurations • Baselines • Project contexts • Structure • System model • Interfaces • Consistency • Selection • Construction • Building • Snapshots • Regeneration • Optimization • Controlling • Access control • Change requests • Bug tracking • Partitioning • Accounting • Statistics • Status • Reports • Auditing • History • Traceability • Logging • Process • Lifecycle support • Task mgmt. • Communication • Documentation • Team • Workspaces • Merging • Families (c) 2007 University of California, Irvine – André van der Hoek
Third Generation • Focused on: • providing process support • being all-encompassing • Characterized by: • large, complex tools • management orientation • Canonical examples: • ClearCase together with ClearGuide • CM/Synergy (c) 2007 University of California, Irvine – André van der Hoek
Third Generation • Components • Versions • Configurations • Baselines • Project contexts • Structure • System model • Interfaces • Consistency • Selection • Construction • Building • Snapshots • Regeneration • Optimization • Controlling • Access control • Change requests • Bug tracking • Partitioning • Accounting • Statistics • Status • Reports • Auditing • History • Traceability • Logging • Process • Lifecycle support • Task mgmt. • Communication • Documentation • Team • Workspaces • Merging • Families (c) 2007 University of California, Irvine – André van der Hoek
A Fourth Generation ? (c) 2007 University of California, Irvine – André van der Hoek
No… • CM core functionality is stable with well-understood choices • CM tool enhancement seems to be limited to feature creep, not fundamental new approaches • SCM workshop series has ended • Only a few pure CM papers are being published as of late (c) 2007 University of California, Irvine – André van der Hoek
Maybe… • CM functionality is now appearing in domains other than source code management • web content management • product data management • web services and components • software deployment • product line architectures • … • Mining software repositories • no better repository than the CM repository • Still some problems left • indirect conflicts • concern management • Coordination (c) 2007 University of California, Irvine – André van der Hoek
Product Line Architectures: The Problem • “A software product line (SPL) is a strategic software-based asset that explicitly recognizes, optimizes, and manages variability towards current and future feature changes.” [van der Hoek] • But how to manage this asset? (c) 2007 University of California, Irvine – André van der Hoek
Classic Versioning for Product Lines (c) 2007 University of California, Irvine – André van der Hoek
Creating the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Creating the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Creating the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Creating the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Creating the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Creating the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Creating the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Viewing the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Excluding the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Including the Baseline (c) 2007 University of California, Irvine – André van der Hoek
Creating the Record Support (c) 2007 University of California, Irvine – André van der Hoek
Creating the Record Support (c) 2007 University of California, Irvine – André van der Hoek
Viewing the Record Support (c) 2007 University of California, Irvine – André van der Hoek
Removing Old Elements (c) 2007 University of California, Irvine – André van der Hoek
Removing Old Elements (c) 2007 University of California, Irvine – André van der Hoek
Removing Old Elements (c) 2007 University of California, Irvine – André van der Hoek
Removing Old Elements (c) 2007 University of California, Irvine – André van der Hoek
Adding New Elements (c) 2007 University of California, Irvine – André van der Hoek
Viewing the CD Writer (c) 2007 University of California, Irvine – André van der Hoek
Trial Product (c) 2007 University of California, Irvine – André van der Hoek
Pro Product (c) 2007 University of California, Irvine – André van der Hoek
All Music Player Change Sets (c) 2007 University of California, Irvine – André van der Hoek
Visualizing Relationships (c) 2007 University of California, Irvine – André van der Hoek
Example Relationships (c) 2007 University of California, Irvine – André van der Hoek
Product Compositions (c) 2007 University of California, Irvine – André van der Hoek
Additional Relationships (c) 2007 University of California, Irvine – André van der Hoek
Violated Relationships (c) 2007 University of California, Irvine – André van der Hoek