Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of...

33
Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of California, Irvine [email protected]
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    217
  • download

    0

Transcript of Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of...

Community, Artifacts, and Versions

Community, Artifacts, and Versions

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

[email protected]

CommunityCommunity

Set of people working together towards a common goal

Here, we concern ourselves to those communities that are involved in the joint production of artifacts

Intrinsic need: coordination

Limitations in Coordination AbilityLimitations in Coordination Ability

Group size Location of group members Technology Artifacts

Conceptual Visualization Strengths Weaknesses

Formal, process-basedcoordination

Scalable; Control;Insulation from other activities;Group-centric

Resynchronization problems;Insulation becomes isolation

Informal, awareness-basedcoordination

Flexible;Promotes synergy; Raises awareness;User-centric

Not scalable;Requires extensive human intermediation

Typical Coordination MechanismsTypical Coordination Mechanisms

Conceptual Visualization Strengths Weaknesses

Formal, process-basedcoordination

Scalable; Control;Insulation from other activities;Group-centric

Resynchronization problems;Insulation becomes isolation

Informal, awareness-basedcoordination

Flexible;Promotes synergy; Raises awareness;User-centric

Not scalable;Requires extensive human intermediation

Continuous coordination

Expected to be the strengths of both formal and informal coordination

To be discovered by the proposed research

Continuous CoordinationContinuous 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

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

Susan Dart, SCM-3, 1991

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

Three Generations of CM SystemsThree Generations of CM Systems

Fun

ctio

nalit

y

Time

ResearchDevelopment

1st: version control

2nd: configurationmanagement

3rd: process-based CM

A Typical Development ScenarioA Typical Development Scenario

CMrepository

Pete’s workspace

CBA

Ellen’s workspace

E CD CDDCC

Direct ConflictsDirect Conflicts

CMrepository

Pete’s workspace

CBA

Ellen’s workspace

E CD

Conflicting changes to the same artifact

CCC DD

Indirect ConflictsIndirect Conflicts

CMrepository

Pete’s workspace

CBA

Ellen’s workspace

E CD

Conflicting changes to different artifacts

CCC DD

Traditional CM ApproachesTraditional CM Approaches

Coordination mechanism

Directconflicts

Indirect conflicts

Pessimistic Locking before changes are made

Avoided, at the expense of project delays

Not addressed

Optimistic Automated merging after changes have been made

Resolved, except for overlapping changes

Not addressed

Key ObservationsKey Observations

A CM workspace in reality provides two kinds of isolation:– Good isolation

Shields developers from parallel changes to artifacts

– Bad isolation Hides knowledge of what artifacts other developers are

changing

Opportunities for breaking isolation are limited– Based on repository information only– Initiated by developer only– Addressing direct conflicts only

ObjectiveObjective

To increase awareness of ongoing workspace activities– Collect– Distribute– Organize– Present

To do so automatically and continuously– Push information

To, thereby, move earlier the point at which potential direct and indirect conflicts can be detected

SolutionSolution

New situation:Share information when others perform CM operations, and not just when I perform a CM operation

Old situation:Information available only when I carry out a CM operation or explicitlyrequest information

CMrepository

CMrepository

Palantír ArchitecturePalantír Architecture

CMrepository

Workspace Workspace

Event wrapper

Event service

CM client CM server CM client

Visualization(s)

Event wrapper

Internal state

Extractor

Visualization(s)

Internal state

Extractor

Event Type Indication

Populated Artifact has been placed in a workspace

Unpopulated Artifact has been removed from a workspace

Synchronized Artifact has been synchronized with repository

ChangesInProgress Artifact has changed in a workspace

ChangesCommitted Artifact has been stored in repository

ChangesReverted Artifact has been returned to its original state

Added New artifact has been added to workspace

Removed Artifact has been removed from workspace

Renamed Artifact has been renamed

Moved Artifact has been moved from one artifact to another

SeverityChanged Severity of changes to an artifact has changed

Types of EventsTypes of Events

Typical Sequence of EventsTypical Sequence of EventsPessimistic Populated ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted UnPopulated

Optimistic Populated ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted UnPopulated

Event WrapperEvent Wrapper

Tasks– Intercept workspace activity– Interpret workspace activity– Determine whether the activity is relevant to Palantír– If relevant, gather information regarding the activity– Construct and emit one or more events

Unique per CM system– Wrap command line– Use standard facilities (triggers, virtual file system)

Can and should remain unobtrusive

Internal StateInternal State

Tasks– Maintain overview of activities in both the local and

remote workspaces– Subscribe to relevant workspace activities

Those pertaining to the artifacts in the local workspace but occurring in other workspaces

Siena-based event routing

– Bootstrap new workspaces with information on existing workspaces

Same for every CM system Always remains unobtrusive

ExtractorExtractor

Tasks– Further narrow down the events to be viewed

Set of workspaces Set of authors Set of artifacts …

Same for every CM system One-time obtrusive

ExtractorExtractor

VisualizationVisualization

Tasks– Organize and display events

Same for every CM system Varying degrees of obtrusiveness

– Ticker tape– Tabular– Explorer– Fully graphical

Ticker TapeTicker Tape

TabularTabular

ExplorerExplorer

Fully GraphicalFully Graphical

Fully GraphicalFully Graphical

Fully GraphicalFully Graphical

SeveritySeverity

Currently calculated as the percentage of lines of code that have changed– Simple– Not completely accurate

1 line change to an interface 1000 lines renaming a variable

Work in progress– Other severity measures– Impact measures

Continuous CoordinationContinuous Coordination

Palantír addresses the first part of continuous coordination: information exchange and awareness

Palantír still needs to address the second part of continuous coordination: allowing developers to act upon the information– Part is done subconsciously– Part should be supported explicitly

ConclusionsConclusions

Palantír is a novel prototype that raises awareness of workspace activities– Maintains good isolation while overcoming bad

isolation– Based on workspace information– Automated (push instead of pull)– Addressing direct and indirect conflicts

Palantír is a demonstration of continuous coordination, combining formal (CM system check-in/check-out) with information (awareness) mechanisms– Can we extend the same principles to other

activities (e.g., design, …)?

Future WorkFuture Work

Case study to determine the effectiveness of Palantír– Does it reduce the number of conflicts?– Does it improve coordination?– Does it speed up development time?

Further support for indirect conflicts– Impact analysis– Dependencies

Develop additional visualizations