informatics 211: configuration management & coordination

65
Informatics 211: Configuration Management & Coordination André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine [email protected]

Upload: tayte

Post on 14-Jan-2016

15 views

Category:

Documents


0 download

DESCRIPTION

Informatics 211: Configuration Management & Coordination. André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences University of California, Irvine [email protected]. A Typical Development Scenario. Pete’s workspace. Ellen’s workspace. A. B. C. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Informatics 211: Configuration Management & Coordination

Informatics 211:Configuration Management &

Coordination

Informatics 211:Configuration Management &

Coordination

André van der HoekDepartment of Informatics

Donald Bren School of Information and Computer Sciences

University of California, Irvine

[email protected]

Page 2: Informatics 211: Configuration Management & Coordination

A Typical Development ScenarioA Typical Development Scenario

CMrepository

Pete’s workspace

CBA

Ellen’s workspace

E CD

Page 3: Informatics 211: Configuration Management & Coordination

Direct ConflictsDirect Conflicts

CMrepository

Pete’s workspace

BA

Ellen’s workspace

ED

Conflicting changes to the same artifact

CC

Page 4: Informatics 211: Configuration Management & Coordination

Traditional CM TechniquesTraditional CM Techniques

Coordination mechanism

Directconflicts

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

Page 5: Informatics 211: Configuration Management & Coordination

Traditional CM TechniquesTraditional CM Techniques

Coordination mechanism

Directconflicts

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.

Page 6: Informatics 211: Configuration Management & Coordination

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).”

Walter Tichy, SCM-1, 1988

Page 7: Informatics 211: Configuration Management & Coordination

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 FunctionalityCM 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

Page 8: Informatics 211: Configuration Management & Coordination

CCC/Harvest

Three Generations of CM SystemsThree Generations of CM SystemsFu

nct

ionalit

y Proteus

Jasmine

EPOS

VOODOO

ShapeTools

Asgard NUCMDaSC

Vesta

Adele

ICE

Odin

Time

Source Integrity

Continuus

CVS

PVCSDSEE

SCCS

NSE

ClearCase

TRUEchangeSerena

Endevor

Perforce

RCSSablime Research

Development

Page 9: Informatics 211: Configuration Management & Coordination

First GenerationFirst Generation

Focused on:– archiving individual elements– strictly avoiding conflicts

Characterized by:– simple, separate tools– development orientation

Canonical examples– SCCS– RCS– Make

Page 10: Informatics 211: Configuration Management & Coordination

First Generation: Version GraphsFirst 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/2001Time = 7:52amComment = “Trying new stuff”Lock = “[email protected]

lock

Page 11: Informatics 211: Configuration Management & Coordination

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 GenerationFirst 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

Page 12: Informatics 211: Configuration Management & Coordination

Second GenerationSecond Generation

Focused on:– archiving compound elements– different version models

Characterized by:– integrated versioning & build tools– development orientation

Canonical examples:– CVS– Subversion– PVCS– SourceSafe

Page 13: Informatics 211: Configuration Management & Coordination

Four Canonical Version ModelsFour Canonical Version Models

State-based extensional– version tree

State-based intensional– conditional compilation

Change-based extensional– change packages

Change-based intensional– change sets

Page 14: Informatics 211: Configuration Management & Coordination

Conditional CompilationConditional Compilation

…#ifdef UNIX

#include <stdio.h>#endif#ifdef GRAPHICS

#include <graphics.h>#ifdef SMARTGRAPHICS

#include <smart.>#endif

#endif…

Page 15: Informatics 211: Configuration Management & Coordination

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

1.0

1.1

1.2

Page 16: Informatics 211: Configuration Management & Coordination

Change SetsChange Sets

Baseline

Bug fix #16

Feature addition#103

Bug fix #17Feature addition

#104

Bug fix #8

Bug fix #16

Bug fix #6

Bug fix #21

AVAILABLECHANGE

SETS

SYSTEMSELECTION

Page 17: Informatics 211: Configuration Management & Coordination

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 GenerationSecond 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

Page 18: Informatics 211: Configuration Management & Coordination

Third GenerationThird Generation

Focused on:– providing process support– being all-encompassing

Characterized by:– large, complex tools– management orientation

Canonical examples:– ClearCase together with ClearGuide– Cm/Synergy

Page 19: Informatics 211: Configuration Management & Coordination

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 GenerationThird 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

Page 20: Informatics 211: Configuration Management & Coordination

A Fourth GenerationA Fourth Generation

?

Page 21: Informatics 211: Configuration Management & Coordination

No…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

Page 22: Informatics 211: Configuration Management & Coordination

Maybe…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

Page 23: Informatics 211: Configuration Management & Coordination

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 24: Informatics 211: Configuration Management & Coordination

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 25: Informatics 211: Configuration Management & Coordination

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 26: Informatics 211: Configuration Management & Coordination

Software Deployment: the ProblemSoftware Deployment: the Problem

Producer Consumer

Page 27: Informatics 211: Configuration Management & Coordination

Software Deployment Life CycleSoftware Deployment Life Cycle

Release

Retire

Reconfig Adapt RemoveUpdate

Install

Producer

Consumer

Page 28: Informatics 211: Configuration Management & Coordination

SourceForgeSourceForge

Page 29: Informatics 211: Configuration Management & Coordination

RPMRPM

Page 30: Informatics 211: Configuration Management & Coordination

Product Line Architectures: The ProblemProduct 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?

Page 31: Informatics 211: Configuration Management & Coordination

Classic Versioning for Product LinesClassic Versioning for Product Lines

Page 32: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 33: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 34: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 35: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 36: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 37: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 38: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 39: Informatics 211: Configuration Management & Coordination

Advanced Versioning for Product LinesAdvanced Versioning for Product Lines

Page 40: Informatics 211: Configuration Management & Coordination

Mining Software RepositoriesMining 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

Page 41: Informatics 211: Configuration Management & Coordination

Activity ViewerActivity Viewer

Page 42: Informatics 211: Configuration Management & Coordination

HighlightingHighlighting

Page 43: Informatics 211: Configuration Management & Coordination

Distance is AgeDistance is Age

Page 44: Informatics 211: Configuration Management & Coordination

Rotation Allows Different ViewpointsRotation Allows Different Viewpoints

Page 45: Informatics 211: Configuration Management & Coordination

Larger Projects: Time OrderedLarger Projects: Time Ordered

Page 46: Informatics 211: Configuration Management & Coordination

Larger Projects: Most Activity OrderedLarger Projects: Most Activity Ordered

Page 47: Informatics 211: Configuration Management & Coordination

Larger Projects: Developer ViewLarger Projects: Developer View

Page 48: Informatics 211: Configuration Management & Coordination

Same Project Ordered by TimeSame Project Ordered by Time

Page 49: Informatics 211: Configuration Management & Coordination

Committed versus Not CommittedCommitted versus Not Committed

Page 50: Informatics 211: Configuration Management & Coordination

(Animated)(Animated)

Page 51: Informatics 211: Configuration Management & Coordination

Applied to GAIM, jEdit, and Argo/UMLApplied 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

Page 52: Informatics 211: Configuration Management & Coordination

Indirect ConflictsIndirect Conflicts

Coordination mechanism

Directconflicts

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

Page 53: Informatics 211: Configuration Management & Coordination

Direct ConflictsDirect Conflicts

CMrepository

Pete’s workspace

BA

Ellen’s workspace

ED

Conflicting changes to the same artifact

CC

Page 54: Informatics 211: Configuration Management & Coordination

Indirect ConflictsIndirect Conflicts

CMrepository

Pete’s workspace

CBA

Ellen’s workspace

E CD

Conflicting changes to different artifacts

Page 55: Informatics 211: Configuration Management & Coordination

PalantírPalantír

Page 56: Informatics 211: Configuration Management & Coordination

LighthouseLighthouse

Page 57: Informatics 211: Configuration Management & Coordination

World ViewWorld View

Page 58: Informatics 211: Configuration Management & Coordination

World ViewWorld View

Page 59: Informatics 211: Configuration Management & Coordination

World Wall?World Wall?

Page 60: Informatics 211: Configuration Management & Coordination

CoordinationCoordination

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness ofdevelopment activities

and developers, manageinformation overload

Task allocation and assignment

Communication archivalalong with artifacts

Communication

Collocation benefits todistributed development

Organizational memory,knowledge acquisition and

dissemination, social navigation

Prescribed and defined coordination support

Artifact Management Task Management

Advanced conflictdetection

Bas

ic F

unct

iona

lity

Rig

id P

roce

ssIn

form

atio

n D

isco

very

Info

rmat

ion

Pro

visi

on

Fine grained versioning,conflict resolution

Instant messaging,monitoring changes

to artifacts

Page 61: Informatics 211: Configuration Management & Coordination

Layers: Coordination ParadigmsLayers: Coordination Paradigms

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness ofdevelopment activities

and developers, manageinformation overload

Task allocation and assignment

Communication archivalalong with artifacts

Communication

Collocation benefits todistributed development

Organizational memory,knowledge acquisition and

dissemination, social navigation

Prescribed and defined coordination support

Artifact Management Task Management

Advanced conflictdetection

Bas

ic F

unct

iona

lity

Rig

id P

roce

ssIn

form

atio

n D

isco

very

Info

rmat

ion

Pro

visi

on

Fine grained versioning,conflict resolution

Instant messaging,monitoring changes

to artifacts

Page 62: Informatics 211: Configuration Management & Coordination

Strands: Technical Dimensions of CoordinationStrands: Technical Dimensions of Coordination

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness ofdevelopment activities

and developers, manageinformation overload

Task allocation and assignment

Communication archivalalong with artifacts

Communication

Collocation benefits todistributed development

Organizational memory,knowledge acquisition and

dissemination, social navigation

Prescribed and defined coordination support

Artifact Management Task Management

Advanced conflictdetection

Bas

ic F

unct

iona

lity

Rig

id P

roce

ssIn

form

atio

n D

isco

very

Info

rmat

ion

Pro

visi

on

Fine grained versioning,conflict resolution

Instant messaging,monitoring changes

to artifacts

Page 63: Informatics 211: Configuration Management & Coordination

A New Paradigm: Provoked BehaviorA New Paradigm: Provoked Behavior

Continuous coordination,collaborative architecture,

seamless development environments,

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness ofdevelopment activities

and developers, manageinformation overload

Task allocation and assignment

Communication archivalalong with artifacts

Communication

Collocation benefits todistributed development

Organizational memory,knowledge acquisition and

dissemination, social navigation

Prescribed and defined coordination support

Artifact Management Task Management

Advanced conflictdetection

Bas

ic F

unct

iona

lity

Rig

id P

roce

ssIn

form

atio

n D

isco

very

Info

rmat

ion

Pro

visi

onP

rovo

ked

Beh

avio

r

Fine grained versioning,conflict resolution

Instant messaging,monitoring changes

to artifacts

Page 64: Informatics 211: Configuration Management & Coordination

Configuration ManagementConfiguration Management

Continuous coordination,collaborative architecture,

seamless development environments,

Asynchronous communicationAccess to common set of artifacts,

isolated workspaces and version control

Parallel development,roles and access rights

Passive awareness ofdevelopment activities

and developers, manageinformation overload

Task allocation and assignment

Communication archivalalong with artifacts

Communication

Collocation benefits todistributed development

Organizational memory,knowledge acquisition and

dissemination, social navigation

Prescribed and defined coordination support

Artifact Management Task Management

Advanced conflictdetection

Bas

ic F

unct

iona

lity

Rig

id P

roce

ssIn

form

atio

n D

isco

very

Info

rmat

ion

Pro

visi

on

Fine grained versioning,conflict resolution

Instant messaging,monitoring changes

to artifacts

Pro

voke

dB

ehav

ior

Page 65: Informatics 211: Configuration Management & Coordination

ConclusionConclusion

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