configuration management and software environments

58
Configuration Management and Software Environments André van der Hoek Institute for Software Research University of California, Irvine [email protected]

Upload: johnna

Post on 13-Jan-2016

21 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: Configuration Management and Software Environments

Configuration Management

andSoftware Environments

Configuration Management

andSoftware Environments

André van der HoekInstitute for Software ResearchUniversity of California, Irvine

[email protected]

Page 2: Configuration Management and Software Environments

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

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

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

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

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

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

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

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

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

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

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

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

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

CM – Integrated in the EditorCM – Integrated in the Editor

Big, Feature-Rich Editor

Page 16: Configuration Management and Software Environments

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

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

CM – A Separate ToolCM – A Separate Tool

File System

Designtool

CMtool

Testingtool

Analysistool

Page 19: Configuration Management and Software Environments

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

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

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

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

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

CM – The EnvironmentCM – The Environment

Designtool

Testingtool

Analysistool

CMtool

Page 25: Configuration Management and Software Environments

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

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

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

But Where Do We Go from Here? But Where Do We Go from Here?

?

Page 29: Configuration Management and Software Environments

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

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

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

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

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

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

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

xADL 2.0xADL 2.0

You know all about it!

Page 37: Configuration Management and Software Environments

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

MénageMénage

Page 39: Configuration Management and Software Environments

MénageMénage

Page 40: Configuration Management and Software Environments

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

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 42: Configuration Management and Software Environments

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 43: Configuration Management and Software Environments

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 44: Configuration Management and Software Environments

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 45: Configuration Management and Software Environments

Software Deployment Life CycleSoftware Deployment Life Cycle

Release

Retire

Reconfig Adapt RemoveUpdate

Install

Producer

Consumer

Page 46: Configuration Management and Software Environments

SRMSRM

Page 47: Configuration Management and Software Environments

SRMSRM

Page 48: Configuration Management and Software Environments

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

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

Software DockSoftware Dock

Page 51: Configuration Management and Software Environments

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

Architectural Differencing / MergingArchitectural Differencing / Merging

Design Time Run Time

deploy/instantiate

Page 53: Configuration Management and Software Environments

Architectural Differencing / MergingArchitectural Differencing / Merging

Design Time Run Time

deploy/instantiate

evo

lve

Page 54: Configuration Management and Software Environments

Architectural Differencing / MergingArchitectural Differencing / Merging

Design Time Run Time

deploy/instantiate

evo

lve

?

?

Page 55: Configuration Management and Software Environments

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

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

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

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