Configuration Management and Software EnvironmentsConcerns for Software EnvironmentsCritical QuestionsConfiguration ManagementSpectrum of FunctionalityMany CM SystemsA History of CM ResearchVersioning ParadigmsConditional CompilationVersion TreeChange PackagesChange SetsBack to CM & EnvironmentsCritical CM ConsiderationsCM – Integrated in the EditorSlide 16Slide 17CM – A Separate ToolSlide 19Slide 20CM – An Integrated Data ModelSlide 22Slide 23CM – The EnvironmentSlide 25Slide 26Current State of the ArtBut Where Do We Go from Here?Some Possible DirectionsToday’s Rapidly Changing LandscapeCritical Questions RevisitedA New Kind of EnvironmentResearch ProjectsSlide 34Required Modeling ConceptsxADL 2.0Slide 37MénageSlide 39Slide 40Software Deployment: the ProblemSlide 42Slide 43Slide 44Software Deployment Life CycleSRMSlide 47Slide 48Software DockSlide 50Slide 51Architectural Differencing / MergingSlide 53Slide 54Slide 55Current StatusSlide 57ConclusionsConfiguration ManagementandSoftware EnvironmentsConfiguration ManagementandSoftware EnvironmentsAndré van der HoekInstitute for Software ResearchUniversity of California, [email protected] for Software EnvironmentsConcerns for Software EnvironmentsLarge software–Many components–Many artifacts–Many kinds of artifactsLarge teams–Many developersLong term evolution–Many changesCritical QuestionsCritical QuestionsHow 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., …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, 1988Dart,SCM-3, 1991Construction•Building•Snapshots•Regeneration•OptimizationConstruction•Building•Snapshots•Regeneration•OptimizationAuditing•History•Traceability•LoggingAuditing•History•Traceability•LoggingComponents•Versions•Configurations•Baselines•Project contextsComponents•Versions•Configurations•Baselines•Project contextsSpectrum of FunctionalitySpectrum of FunctionalityAccounting•Statistics•Status•ReportsAccounting•Statistics•Status•ReportsProcess•Lifecycle•Task mgmt.•Communication•DocumentationProcess•Lifecycle•Task mgmt.•Communication•DocumentationControlling•Access control•Change request•Bug tracking•PartitioningControlling•Access control•Change request•Bug tracking•PartitioningTeam•Workspaces•Merging•FamiliesTeam•Workspaces•Merging•FamiliesStructure•System model•Interfaces•Consistency•SelectionStructure•System model•Interfaces•Consistency•SelectionMany CM SystemsMany CM SystemsClearCaseTelelogicDimensionsAllChangeChangeManRazorBitKeeperPerforcePVCSAccuRev…CVSRCSAegisSubversionKeep-ItODESourceCast…CM Yellow Pages,www.cmtoday.com, 2002A History of CM ResearchA History of CM ResearchAsgardClearCaseCoMaPOEMPCTEDamoklesRCSSCCSVOODOO Adele IIICEP-EditPCLCOVAide deCampDSEEShapeTools InscapeSIOPIEConditionalcompilationCedar Adele IGandalfConradi & Westfechtel,ACM Surveys, 2000Versioning ParadigmsVersioning ParadigmsRepresentationState-based Change-basedConditionalcompilationChangesetsVersiontreeChangepackagesIntensionalExtensionalSelectionConditional CompilationConditional Compilation #ifdef UNIX#include <stdio.h>#endif#ifdef GRAPHICS#include <graphics.h>#ifdef SMARTGRAPHICS#include <smart.>#endif#endifInline storage of individual changes with pre-processing1.01.12.11.2 1.2.1.0Version TreeVersion Tree2.0 1.2.1.11.2.1.0.1.0External storage of individual changes with checkout/checkinChange PackagesChange Packages1.01.12.01.22.11.2.1.01.2.1.11.02.02.22.12.31.01.11.31.22.02.0.1.0Feature #12Bug fix #21Bug fix #2External storage of coordinated changes with checkout/checkinChange SetsChange SetsBaselineBug fix #16Feature addition#103Bug fix #17AVAILABLECHANGESETSACTUALSYSTEMSELECTIONFeature#104Bug fix #8Bug fix #16Bug fix #6Bug fix #21...External storage of coordinated changes with mergingBack to CM & EnvironmentsBack to CM & EnvironmentsIntegrated 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”Critical CM ConsiderationsCritical CM ConsiderationsWhat is the CM focus?What versioning paradigms are used?How usable is the resulting environment?CM – Integrated in the EditorCM – Integrated in the EditorBig, Feature-Rich EditorCM – Integrated in the EditorCM – Integrated in the EditorPIE–Integrated SmallTalk environment–Change sets as dependent layersP-Edit/MVPE–Text editor–Simultaneous editing of multiple versions of a single text source file–Source file is partitioned into fragments–Control constructs are hiddenWord (!)Emacs (!)CM – Integrated in the EditorCM – Integrated in the EditorWhat is the CM focus?–Change trackingWhat versioning paradigms are used?–AnyHow usable is the resulting environment?–Easy–Only sufficient for a single userCM – A Separate ToolCM – A Separate ToolFile SystemDesigntoolCMtoolTestingtoolAnalysistool…CM – A Separate ToolCM – A Separate ToolSCCS / RCS / …–Revision control system–Locks prevent conflicts–Access to artifacts via individual workspacesDSEE–Configuration management system–Access to repository via a virtual file systemAlmost all regular CM systemsCM – A Separate ToolCM – A Separate ToolWhat is the CM focus?–Change tracking–Conflict avoidanceWhat versioning paradigms are used?–Any, provided that text files are versionedHow usable is the resulting environment?–Relatively easy to moderately complex–Able to support moderate groups of usersCM – An Integrated Data ModelCM – An Integrated Data ModelDesigntoolTestingtoolAnalysistool…Rich Data Model with RelationshipsCM CM CM CMCM – An Integrated Data ModelCM – An Integrated Data ModelGandalf / Inscape / Cedar / DAMOKLES / …–System models–Interfaces, pre- and post-conditions, typing, …PCTE–Software engineering
View Full Document