Download presentation
Presentation is loading. Please wait.
1
Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine andre@ics.uci.edu
2
Concerns for Software Environments Large software –Many components –Many artifacts –Many kinds of artifacts Large teams –Many developers Long term evolution –Many changes
3
Critical Questions How do I keep track of changes? How do I put a product together? How do I avoid conflicts? How do I account for what happened? How do I go “back in time”? Etc., etc., …
4
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).” Tichy, SCM-1, 1988
5
Dart, SCM-3, 1991 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 Spectrum of Functionality Accounting Statistics Status Reports Accounting Statistics Status Reports Process Lifecycle Task mgmt. Communication Documentation Process Lifecycle Task mgmt. Communication Documentation Controlling Access control Change request Bug tracking Partitioning Controlling Access control Change request Bug tracking Partitioning Team Workspaces Merging Families Team Workspaces Merging Families Structure System model Interfaces Consistency Selection Structure System model Interfaces Consistency Selection
6
Many CM Systems ClearCase Telelogic Dimensions AllChange ChangeMan Razor BitKeeper Perforce PVCS AccuRev … CVS RCS Aegis Subversion Keep-It ODE SourceCast … CM Yellow Pages, www.cmtoday.com, 2002
7
A History of CM Research Asgard ClearCaseCoMaPOEM PCTE Damokles RCS SCCS VOODOOAdele II ICE P-Edit PCL COV Aide de Camp DSEE ShapeToolsInscapeSIO PIE Conditional compilation CedarAdele I Gandalf Conradi & Westfechtel, ACM Surveys, 2000
8
Versioning Paradigms Representation State-basedChange-based Conditional compilation Change sets Version tree Change packages Intensional Extensional Selection
9
Conditional Compilation #ifdef UNIX #include #endif #ifdef GRAPHICS #include #ifdef SMARTGRAPHICS #include #endif #endif Inline storage of individual changes with pre-processing
10
1.0 1.1 2.1 1.21.2.1.0 Version Tree 2.01.2.1.1 1.2.1.0.1.0 External storage of individual changes with checkout/checkin
11
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 Feature #12 Bug fix #21 Bug fix #2 External storage of coordinated changes with checkout/checkin
12
Change Sets Baseline Bug fix #16 Feature addition #103 Bug fix #17 AVAILABLE CHANGE SETS ACTUAL SYSTEM SELECTION Feature #104 Bug fix #8 Bug fix #16 Bug fix #6 Bug fix #21... External storage of coordinated changes with merging
13
Back to CM & Environments Integrated in the editor –“Editor is the environment” A separate tool –“File system is the environment” An integrated data model –“Data model is the environment” The environment –“CM tool is the environment”
14
Critical CM Considerations What is the CM focus? What versioning paradigms are used? How usable is the resulting environment?
15
CM – Integrated in the Editor Big, Feature-Rich Editor
16
CM – Integrated in the Editor PIE –Integrated SmallTalk environment –Change sets as dependent layers P-Edit/MVPE –Text editor –Simultaneous editing of multiple versions of a single text source file –Source file is partitioned into fragments –Control constructs are hidden Word (!) Emacs (!)
17
CM – Integrated in the Editor What is the CM focus? –Change tracking What versioning paradigms are used? –Any How usable is the resulting environment? –Easy –Only sufficient for a single user
18
CM – A Separate Tool File System Design tool CM tool Testing tool Analysis tool …
19
CM – A Separate Tool SCCS / RCS / … –Revision control system –Locks prevent conflicts –Access to artifacts via individual workspaces DSEE –Configuration management system –Access to repository via a virtual file system Almost all regular CM systems
20
CM – A Separate Tool What is the CM focus? –Change tracking –Conflict avoidance What versioning paradigms are used? –Any, provided that text files are versioned How usable is the resulting environment? –Relatively easy to moderately complex –Able to support moderate groups of users
21
CM – An Integrated Data Model Design tool Testing tool Analysis tool … Rich Data Model with Relationships CM
22
CM – An Integrated Data Model Gandalf / Inscape / Cedar / DAMOKLES / … –System models –Interfaces, pre- and post-conditions, typing, … PCTE –Software engineering repository –Standardized interface (including CM) CoMa –Simple versioned hyperweb system –Attribute-based graphs with cross-graph links Nowadays virtually extinct, except in the field of hypermedia
23
CM – An Integrated Data Model What is the CM focus? –Traceability –Consistency management What versioning paradigms are used? –State-based extensional –Change-based extensional How usable is the resulting environment? –Difficult to use –Able to support large groups of users
24
CM – The Environment Design tool Testing tool Analysis tool … CM tool
25
CM – The Environment Asgard –CM-oriented process engine –Mapping of activity-based processes to change packages Adele –Configuration management database with process engine –Object-orientation Popular in high-end CM systems –ClearCase (Rational Rose) –Continuus (Telelogic IDE)
26
CM – The Environment What is the CM focus? –Process management –Change tracking What versioning paradigms are used? –Any, provided that text files are versioned How usable is the resulting environment? –Moderately complex to use –Able to support large groups of users
27
Current State of the Art CM is present in different incarnations virtually everywhere One billion dollar industry –Over a hundred commercial CM systems –Many additional freeware, public domain, and open source CM systems Recognized as essential to any successful project –CMM, ISO 9000 Active community –CM Yellow Pages, CM Today
28
But Where Do We Go from Here? ?
29
Some Possible Directions Extend to other domains –Web –Product data management –… Improve CM functionality –Better integrations –More features –… Useful, but not earth shattering
30
Today’s Rapidly Changing Landscape Construction by component assembly Integrators and suppliers Multiple organizations and locations Decentralized control Management of changes after development –Right artifacts to right places at right times Run-time change management The very nature of software environments is changing and the nature of CM is changing accordingly!
31
Critical Questions Revisited How do I keep track of changes… –…if I am not the only one making them? How do I put a product together… –…if the pieces come from many different places? How do I avoid conflicts… –…if I am not in control? How do I account for what happened… –…if users change running applications? How do I go “back in time”… –…if the original source is somewhere else? Etc., etc., …
32
A New Kind of Environment Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) Continuous Change Management
33
Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) SRM xADL MénageArchDiff Dock
34
Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) SRM xADL MénageArchDiff Dock
35
Required Modeling Concepts Components, connectors, interfacesTypes & instances Linear evolutionRevisions Diverging paths of evolutionBranches Alternatives (variation points)Guarded variants Non-mandatory architectural elementsGuarded options Hierarchical compositionSub-architectures ImplementationsMappings
36
xADL 2.0 You know all about it!
37
Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) SRM xADL MénageArchDiff Dock
38
Ménage
40
Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) xADL MénageArchDiff SRM Dock
41
Software Deployment: the Problem ProducerConsumer
42
Software Deployment: the Problem ProducerConsumer
43
Software Deployment: the Problem ProducerConsumer
44
Software Deployment: the Problem ProducerConsumer
45
Software Deployment Life Cycle Release Retire ReconfigAdaptRemoveUpdate Install Producer Consumer
46
SRM
48
Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) xADL MénageArchDiff SRM Dock
49
Software Dock Agent Release Dock Agent Enterprise Dock Agent Field Dock Agent Field Dock Wide-Area Event Service
50
Software Dock
51
Research Projects Implementation Deployment System Testing Run-Time Design Components Source Files Features Systems Executables Versioned Components (Architecture) xADL MénageArchDiff SRM Dock
52
Architectural Differencing / Merging Design TimeRun Time deploy/instantiate
53
Architectural Differencing / Merging Design TimeRun Time deploy/instantiate evolve
54
Architectural Differencing / Merging Design TimeRun Time deploy/instantiate evolve? ?
55
Architectural Differencing / Merging Design TimeRun Time deploy/instantiate evolvedynamism architectural patch mergediff
56
Current Status Diff representation –Defined as xADL 2.0 extension Differencing and merging algorithms –Implemented for static operation To be examined –Dynamic case –Multiplicity –Distribution –Run-time CM system
57
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).” Tichy, SCM-1, 1988
58
Conclusions CM as a discipline is changing –Broader scope –Intermingling with other disciplines CM tools will be vastly different –What is the right role in a software environment? –Inherently support design, development, deployment, and run-time Continuous change management Versioned components are the key
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.