palantr: increasing awareness in distributed software development anita sarma and andr van der hoek...

Post on 19-Jan-2018

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Direct Conflicts Ellen’s CM Workspace in USA Pete’s CM Workspace in Canada Direct conflicts are overlapping changes to the same artifact in different workspaces /word pad/edit/spell /write /……… /word pad/edit/spell /undo /redo Configuration Management Repository

TRANSCRIPT

Palantír: Increasing Awareness in Distributed Software Development

Anita Sarma and André van der Hoek

{asarma, andre}@ics.uci.edu

Institute for Software Research University of California, Irvine

ScenarioEllen’s CM Workspace in USA

Pete’s CM Workspace in Canada

Workspaces isolate developers from changes made concurrently by other developers

/word pad/edit/spell /write

/………

/word pad/edit/spell /undo

/redo

Configuration ManagementRepository

Direct ConflictsEllen’s CM Workspace in USA

Pete’s CM Workspace in Canada

Direct conflicts are overlapping changes to the same artifact in different workspaces

/word pad/edit/spell /write

/………

/word pad/edit/spell /undo

/redo

Configuration ManagementRepository

Indirect ConflictsEllen’s CM Workspace in USA

Pete’s CM Workspace in Canada

Indirect conflicts are changes to an artifact causing the behavior of another artifact to change

/word pad/edit/spell /write

/………

/word pad/edit/spell /undo

/redo

Configuration ManagementRepository

Traditional CM Approach Locking

Only one person can change an artifact at a time (check-out/check-in)

Limited in allowing parallel changes Does not address indirect conflicts

Merging Conflicts have to be manually resolved Indirect conflicts not addressed

Current CM functionality is inadequate in addressing direct/indirect conflicts

Goal Improve workspace awareness among

developers, such that they are continuously informed of parallel changes Which artifacts are changing? What is the severity of the changes?

(amount/size of change between two versions) What is the impact of the changes?

(effect of changes on my current work) Being aware of the parallel changes would enable

developers to reduce direct and indirect conflicts

Palantír deliberately but non-intrusively breaks the isolation of workspaces

Existing Scenario

Ellen’s CM Workspace

Pete’s CM Workspace/word pad/edit/spell

/write /…..

/word pad/edit/spell /undo

/redo CMRepository

Palantír Components

Ellen’s CM Workspace

Pete’s CM Workspace/word pad/edit/spell

/write /…..

/word pad/edit/spell /undo

/redoEllen’s Visualization Pete’s Visualization

Severity Analysis Change Impact Analysis

CMRepository

Complete Palantír Architecture

Ellen’s CM Workspace

Pete’s CM Workspace/word pad/edit/spell

/write /…..

/word pad/edit/spell /undo

/redoEllen’s Visualization Pete’s Visualization

Severity Analysis Change Impact Analysis

CMRepository

Event notificati

on

Visualization Component Shows pair-wise conflicts between developers Shows severity and impact of the changes Triggered by CM actions

Check-out, check-in, add, remove ... Unique view per workspace

Conflicts are shown only for artifacts present in that workspace

We plan to experiment with different visualizations Tabular form, graphical display, ticker tape, …

1. Ellen populates her workspace

Workspace owner

Gray indicates no changes have occurred as of now

2. Ellen makes changes to some artifacts in her workspace

Green indicates changes by the workspace owner (Ellen)

“?” indicates changes are being made but their exact nature is not known

3. Ellen puts the changes back into the CM system

Severity and impact indicators

“!” indicates changes are now known

4. Ellen makes changes to print and (again) spell, Pete makes changes to write

Red indicates changes in another workspace

Stack indicates evolution into new versions

5. Pete makes changes to spell

Back button for traversing up one layer

Other features: zooming in and zooming out

Other features: examining other versions and meta-data

Examining a different version Artifact metadata

Severity Analysis

“The amount (size) of change between two versions of an artifact”

Proposed algorithms Lines of code

Simple, but inaccurate Token based difference

Measures structural changes, but language dependent Abstract syntax tree

Very detailed analyses, but likely too expensive (and language dependent)

Work in progress

Impact Analysis

“The effect of changes on my current work” Proposed algorithms

Overlapping lines of code Simple, but inaccurate

Changed interfaces Potentially accurate and effective, but language

dependent Dependency analysis

Very precise, semantic results, but complex (and language dependent)

Work in progress

Related Work

Configuration Management ClearCase, Telelogic, Subversion, Coven, …

Software Visualization Code decay, 3D visualization, …

Computer-Supported Collaborative Work Edit wear and read wear, BSCW, TUKAN, …

Palantír provides a solution that combines contributions in each of these areas

Conclusion

Palantír is a prototype that… …brings awareness to workspaces …shows pair-wise conflict …provides severity analysis …provides change impact analysis

Use of Palantír (hopefully) results in fewer direct and indirect conflicts

Future work Analysis algorithms for both atomic and

compound artifacts Additional visualizations

Addressing Scale

Leverage hierarchical structure of artifact

Show pair-wise conflicts Sorting constituent artifacts according

to highest severity/change impact Explore “smaller boxed” in the user

interface Truncate number of layers being

visualized

top related