configuration management and software environments
DESCRIPTION
Configuration Management and Software Environments. André van der Hoek Institute for Software Research University of California, Irvine [email protected]. Concerns for Software Environments. Large software Many components Many artifacts Many kinds of artifacts Large teams Many developers - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/1.jpg)
Configuration Management
andSoftware Environments
Configuration Management
andSoftware Environments
André van der HoekInstitute for Software ResearchUniversity of California, Irvine
![Page 2: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/2.jpg)
Concerns for Software EnvironmentsConcerns for Software Environments
Large software– Many components– Many artifacts– Many kinds of artifacts
Large teams– Many developers
Long term evolution– Many changes
![Page 3: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/3.jpg)
Critical QuestionsCritical 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., …
![Page 4: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/4.jpg)
Configuration ManagementConfiguration 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
![Page 5: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/5.jpg)
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 FunctionalitySpectrum 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
![Page 6: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/6.jpg)
Many CM SystemsMany 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
![Page 7: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/7.jpg)
A History of CM ResearchA History of CM Research
Asgard
ClearCaseCoMaPOEM
PCTE
Damokles
RCS
SCCS
VOODOO Adele II
ICE
P-Edit
PCL
COVAide deCamp
DSEE
ShapeTools InscapeSIO
PIE
Conditionalcompilation
Cedar Adele I
Gandalf
Conradi & Westfechtel,ACM Surveys, 2000
![Page 8: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/8.jpg)
Versioning ParadigmsVersioning Paradigms
Representation
State-based Change-based
Conditionalcompilation
Changesets
Versiontree
Changepackages
Inte
nsion
al
Extens
ional
Sel
ectio
n
![Page 9: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/9.jpg)
Conditional CompilationConditional Compilation
#ifdef UNIX#include <stdio.h>
#endif#ifdef GRAPHICS
#include <graphics.h>#ifdef SMARTGRAPHICS
#include <smart.>#endif
#endif
Inline storage of individual changes with pre-processing
![Page 10: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/10.jpg)
1.0
1.1
2.1
1.2 1.2.1.0
Version TreeVersion Tree
2.0 1.2.1.1 1.2.1.0.1.0
External storage of individual changes with checkout/checkin
![Page 11: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/11.jpg)
Change PackagesChange 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
Featu
re #
12
Bug fix
#21
Bug fix
#2
External storage of coordinated changes with checkout/checkin
![Page 12: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/12.jpg)
Change SetsChange Sets
Baseline
Bug fix #16
Feature addition#103
Bug fix #17
AVAILABLECHANGE
SETS
ACTUALSYSTEM
SELECTION
Feature#104
Bug fix #8
Bug fix #16
Bug fix #6
Bug fix #21
...
External storage of coordinated changes with merging
![Page 13: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/13.jpg)
Back to CM & EnvironmentsBack 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”
![Page 14: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/14.jpg)
Critical CM ConsiderationsCritical CM Considerations
What is the CM focus? What versioning paradigms are used? How usable is the resulting
environment?
![Page 15: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/15.jpg)
CM – Integrated in the EditorCM – Integrated in the Editor
Big, Feature-Rich Editor
![Page 16: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/16.jpg)
CM – Integrated in the EditorCM – 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 (!)
![Page 17: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/17.jpg)
CM – Integrated in the EditorCM – 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
![Page 18: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/18.jpg)
CM – A Separate ToolCM – A Separate Tool
File System
Designtool
CMtool
Testingtool
Analysistool
…
![Page 19: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/19.jpg)
CM – A Separate ToolCM – 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
![Page 20: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/20.jpg)
CM – A Separate ToolCM – 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
![Page 21: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/21.jpg)
CM – An Integrated Data ModelCM – An Integrated Data Model
Designtool
Testingtool
Analysistool
…
Rich Data Model with Relationships
CM CM CM CM
![Page 22: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/22.jpg)
CM – An Integrated Data ModelCM – 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
![Page 23: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/23.jpg)
CM – An Integrated Data ModelCM – 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
![Page 24: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/24.jpg)
CM – The EnvironmentCM – The Environment
Designtool
Testingtool
Analysistool
…
CMtool
![Page 25: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/25.jpg)
CM – The EnvironmentCM – 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)
![Page 26: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/26.jpg)
CM – The EnvironmentCM – 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
![Page 27: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/27.jpg)
Current State of the ArtCurrent 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
![Page 28: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/28.jpg)
But Where Do We Go from Here? But Where Do We Go from Here?
?
![Page 29: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/29.jpg)
Some Possible DirectionsSome Possible Directions
Extend to other domains– Web– Product data management– …
Improve CM functionality– Better integrations– More features– …
Useful, but not earth shattering
![Page 30: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/30.jpg)
Today’s Rapidly Changing LandscapeToday’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 changingand the nature of CM is changing accordingly!
![Page 31: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/31.jpg)
Critical Questions RevisitedCritical 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., …
![Page 32: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/32.jpg)
A New Kind of EnvironmentA New Kind of Environment
ImplementationImplementation DeploymentDeploymentSystem TestingSystem Testing Run-TimeRun-TimeDesignDesign
ComponentsComponents Source FilesSource Files FeaturesFeatures SystemsSystems ExecutablesExecutables
Versioned Components (Architecture)
Continuous Change Management
![Page 33: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/33.jpg)
Research ProjectsResearch Projects
ImplementationImplementation DeploymentDeploymentSystem TestingSystem Testing Run-TimeRun-TimeDesignDesign
ComponentsComponents Source FilesSource Files FeaturesFeatures SystemsSystems ExecutablesExecutables
Versioned Components (Architecture)
SRM
xADL
Ménage ArchDiff
Dock
![Page 34: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/34.jpg)
Research ProjectsResearch Projects
ImplementationImplementation DeploymentDeploymentSystem TestingSystem Testing Run-TimeRun-TimeDesignDesign
ComponentsComponents Source FilesSource Files FeaturesFeatures SystemsSystems ExecutablesExecutables
Versioned Components (Architecture)
SRM
xADL
Ménage ArchDiff
Dock
![Page 35: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/35.jpg)
Required Modeling ConceptsRequired Modeling Concepts
Components, connectors, interfaces Types & instances
Linear evolution Revisions
Diverging paths of evolution Branches
Alternatives (variation points) Guarded variants
Non-mandatory architectural elements Guarded options
Hierarchical composition Sub-architectures
Implementations Mappings
![Page 36: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/36.jpg)
xADL 2.0xADL 2.0
You know all about it!
![Page 37: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/37.jpg)
Research ProjectsResearch Projects
ImplementationImplementation DeploymentDeploymentSystem TestingSystem Testing Run-TimeRun-TimeDesignDesign
ComponentsComponents Source FilesSource Files FeaturesFeatures SystemsSystems ExecutablesExecutables
Versioned Components (Architecture)
SRM
xADL
Ménage ArchDiff
Dock
![Page 38: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/38.jpg)
MénageMénage
![Page 39: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/39.jpg)
MénageMénage
![Page 40: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/40.jpg)
Research ProjectsResearch Projects
ImplementationImplementation DeploymentDeploymentSystem TestingSystem Testing Run-TimeRun-TimeDesignDesign
ComponentsComponents Source FilesSource Files FeaturesFeatures SystemsSystems ExecutablesExecutables
Versioned Components (Architecture)xADL
Ménage ArchDiffSRM
Dock
![Page 41: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/41.jpg)
Software Deployment: the ProblemSoftware Deployment: the Problem
Producer Consumer
![Page 42: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/42.jpg)
Software Deployment: the ProblemSoftware Deployment: the Problem
Producer Consumer
![Page 43: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/43.jpg)
Software Deployment: the ProblemSoftware Deployment: the Problem
Producer Consumer
![Page 44: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/44.jpg)
Software Deployment: the ProblemSoftware Deployment: the Problem
Producer Consumer
![Page 45: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/45.jpg)
Software Deployment Life CycleSoftware Deployment Life Cycle
Release
Retire
Reconfig Adapt RemoveUpdate
Install
Producer
Consumer
![Page 46: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/46.jpg)
SRMSRM
![Page 47: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/47.jpg)
SRMSRM
![Page 48: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/48.jpg)
Research ProjectsResearch Projects
ImplementationImplementation DeploymentDeploymentSystem TestingSystem Testing Run-TimeRun-TimeDesignDesign
ComponentsComponents Source FilesSource Files FeaturesFeatures SystemsSystems ExecutablesExecutables
Versioned Components (Architecture)xADL
Ménage ArchDiffSRM
Dock
![Page 49: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/49.jpg)
Software DockSoftware Dock
Agent
Agent
Agent
Release Dock
Agent
Agent
EnterpriseDock
Agent
Agent Agent
FieldDock
Agent FieldDock
Wide-AreaEvent Service
![Page 50: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/50.jpg)
Software DockSoftware Dock
![Page 51: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/51.jpg)
Research ProjectsResearch Projects
ImplementationImplementation DeploymentDeploymentSystem TestingSystem Testing Run-TimeRun-TimeDesignDesign
ComponentsComponents Source FilesSource Files FeaturesFeatures SystemsSystems ExecutablesExecutables
Versioned Components (Architecture)xADL
Ménage ArchDiffSRM
Dock
![Page 52: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/52.jpg)
Architectural Differencing / MergingArchitectural Differencing / Merging
Design Time Run Time
deploy/instantiate
![Page 53: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/53.jpg)
Architectural Differencing / MergingArchitectural Differencing / Merging
Design Time Run Time
deploy/instantiate
evo
lve
![Page 54: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/54.jpg)
Architectural Differencing / MergingArchitectural Differencing / Merging
Design Time Run Time
deploy/instantiate
evo
lve
?
?
![Page 55: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/55.jpg)
Architectural Differencing / MergingArchitectural Differencing / Merging
Design Time Run Time
deploy/instantiate
evo
lve
dyn
am
ism
architectural patch
mergediff
![Page 56: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/56.jpg)
Current StatusCurrent 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
![Page 57: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/57.jpg)
Configuration ManagementConfiguration 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
![Page 58: Configuration Management and Software Environments](https://reader035.vdocument.in/reader035/viewer/2022062803/568146a4550346895db3c156/html5/thumbnails/58.jpg)
ConclusionsConclusions
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