Download presentation
Presentation is loading. Please wait.
1
Informatics 211: Configuration Management & Coordination André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine andre@ics.uci.edu
2
A Typical Development Scenario CM repository Pete’s workspace CBA Ellen’s workspace ECD
3
Direct Conflicts CM repository Pete’s workspace BA Ellen’s workspace ED Conflicting changes to the same artifact CC
4
Traditional CM Techniques Coordination mechanism Direct conflicts Pessimistic (classical versioning) Locking before changes are made Avoided, at the expense of project delays Optimistic (advanced versioning) Automated merging after changes have been made Resolved, except for overlapping changes
5
Traditional CM Techniques Coordination mechanism Direct conflicts Pessimistic (classical versioning) Locking before changes are made Avoided, at the expense of project delays Optimistic (advanced versioning) Automated merging after changes have been made Resolved, except for overlapping changes Both with the side effect of keeping a history of changes.
6
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
7
Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts CM Spectrum of Functionality Susan Dart, SCM-3, 1991 Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection
8
CCC/Harvest Three Generations of CM Systems 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
9
First Generation Focused on: –archiving individual elements –strictly avoiding conflicts Characterized by: –simple, separate tools –development orientation Canonical examples –SCCS –RCS –Make
10
First Generation: Version Graphs 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
11
Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts First Generation Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection
12
Second Generation Focused on: –archiving compound elements –different version models Characterized by: –integrated versioning & build tools –development orientation Canonical examples: –CVS –Subversion –PVCS –SourceSafe
13
Four Canonical Version Models State-based extensional –version tree State-based intensional –conditional compilation Change-based extensional –change packages Change-based intensional –change sets
14
Conditional Compilation … #ifdef UNIX #include #endif #ifdef GRAPHICS #include #ifdef SMARTGRAPHICS #include #endif #endif …
15
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
16
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
17
Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts Second Generation Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection
18
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
19
Construction Building Snapshots Regeneration Optimization Construction Building Snapshots Regeneration Optimization Auditing History Traceability Logging Auditing History Traceability Logging Components Versions Configurations Baselines Project contexts Components Versions Configurations Baselines Project contexts Third Generation Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle support Task mgmt. Communication Documentation Process Lifecycle support Task mgmt. Communication Documentation Controlling Access control Change requests Bug tracking Partitioning Controlling Access control Change requests Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection
20
A Fourth Generation ?
21
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 to date
22
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
23
Software Deployment: the Problem ProducerConsumer
24
Software Deployment: the Problem ProducerConsumer
25
Software Deployment: the Problem ProducerConsumer
26
Software Deployment: the Problem ProducerConsumer
27
Software Deployment Life Cycle Release Retire ReconfigAdaptRemoveUpdate Install Producer Consumer
28
SourceForge
29
RPM
30
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?
31
Classic Versioning for Product Lines
32
Advanced Versioning for Product Lines
40
Mining Software Repositories Configuration management repositories are traditionally a “depot” –occasional roll-back –occasional search for relevant information But what if we used the information captured by configuration management repositories to our advantage –understanding software developers –helping software developers
41
Activity Viewer
42
Highlighting
43
Distance is Age
44
Rotation Allows Different Viewpoints
45
Larger Projects: Time Ordered
46
Larger Projects: Most Activity Ordered
47
Larger Projects: Developer View
48
Same Project Ordered by Time
49
Committed versus Not Committed
50
(Animated)
51
Applied to GAIM, jEdit, and Argo/UML Simulated the archives –demonstrated scalability –demonstrated usefulness –filters are a must Interesting patterns –core developers –core developer “overtaken” by others –lots of people on a project, but most are working on pictures, not code –highly active artifacts –… Much more analysis to be done Planned: viewing on HIPerWall
52
Indirect Conflicts Coordination mechanism Direct conflicts Indirect conflicts Pessimistic (classical versioning) Locking before changes are made Avoided, at the expense of project delays Not addressed Optimistic (advanced versioning) Automated merging after changes have been made Resolved, except for overlapping changes Not addressed
53
Direct Conflicts CM repository Pete’s workspace BA Ellen’s workspace ED Conflicting changes to the same artifact CC
54
Indirect Conflicts CM repository Pete’s workspace CBA Ellen’s workspace ECD Conflicting changes to different artifacts
55
Palantír
56
Lighthouse
57
World View
59
World Wall?
60
Coordination Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts
61
Layers: Coordination Paradigms Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts
62
Strands: Technical Dimensions of Coordination Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts
63
A New Paradigm: Provoked Behavior Continuous coordination, collaborative architecture, seamless development environments, Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Provoked Behavior Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts
64
Configuration Management Continuous coordination, collaborative architecture, seamless development environments, Asynchronous communication Access to common set of artifacts, isolated workspaces and version control Parallel development, roles and access rights Passive awareness of development activities and developers, manage information overload Task allocation and assignment Communication archival along with artifacts Communication Collocation benefits to distributed development Organizational memory, knowledge acquisition and dissemination, social navigation Prescribed and defined coordination support Artifact ManagementTask Management Advanced conflict detection Basic Functionality Rigid Process Information Discovery Information Provision Fine grained versioning, conflict resolution Instant messaging, monitoring changes to artifacts Provoked Behavior
65
Conclusion CM is a long-standing field which has seen numerous contributions –some highly influential (sometimes delayed by as much as 20 years) –others indirectly shaping –others utterly useless While the core ideas of CM have been well developer, there is still much room for improvement –particularly if one considers CM to be a coordination problem –particularly if one brings together CM with other disciplines Software engineering can be cool
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.