Upload
barnard-park
View
216
Download
0
Embed Size (px)
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
Citation preview
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