Palantír: Coordinating Distributed CMWorkspaces Anita Sarma, André van der Hoek Institute for Software Research University of California, Irvine {asarma,

Slides:



Advertisements
Similar presentations
Performance Testing - Kanwalpreet Singh.
Advertisements

Optimistic Methods for Concurrency Control By : H.T. Kung & John T. Robinson Presenters: Munawer Saeed.
1 Perforce The Fast Software Configuration Management System.
WWG a Wide-Area Infrastructure for Groups Joan Manuel Marquès. Universitat Oberta de Catalunya (UOC) Leandro Navarro Universitat.
Enhancing Configuration Management Systems with Information of Parallel Activities Topic Proposal Anita Sarma October 2005.
Enhancing Configuration Management Workspaces with Information of Parallel Activities Topic Proposal Anita Sarma October 2005.
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
© 2010 University of California, Irvine – André van der Hoek1June 10, 2015 – 06:18:06 Informatics 121 Software Design I Lecture 10 André van der Hoek &
ARCS Data Analysis Software An overview of the ARCS software management plan Michael Aivazis California Institute of Technology ARCS Baseline Review March.
1 Configuring Web services (Week 15, Monday 4/17/2006) © Abdou Illia, Spring 2006.
© 2010 University of California, Irvine – André van der Hoek1June 14, 2015 – 15:24:35 Informatics 121 Software Design I Lecture 11 André van der Hoek &
Lecture 23: Software Architectures
Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of California, Irvine
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
Collaborative Software Engineering – Awareness and Concurrency Agam.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Informatics 211: Configuration Management & Coordination André van der Hoek Department of Informatics Donald Bren School of Information and Computer Sciences.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
Reliability of Parallel Build Systems Derrick Coetzee, George Necula UC Berkeley Creative Commons Zero Waiver: To the extent possible under law, the author,
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
VA Pain Coach (VPC) Mobile Applications (Apps) Phase Two (MAP2)
A Need-Based Collaboration Classification Framework Anita Sarma, André van der Hoek Institute for Software Research University of California, Irvine {asarma,
Palantír: Raising Awareness among Configuration Management Workspaces Anita Sarma, Zahra Noroozi, André van der Hoek (Presented by Justin Erenkrantz)
1 Lecture 19 Configuration Management Software Engineering.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Version control Using Git Version control, using Git1.
October 16, 2015 – 16:09:421 © 2006 University of California, Irvine – André van der Hoek Examining Software Design From A General Design Perspective Alex.
Introduction to Version Control SE-2030 Dr. Rob Hasker 1 Based on material at and slides written.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
TFS 2010 What’s new and interesting. Key Items Agile Planning Tools – Slides #3-#6 Improved parallel development - Slides #7-#8 Continuous Integration.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
Rachelle Howell and Ellen M. Rathje University of Texas at Austin NEEScomm IT Development Team.
3-Tier Client/Server Internet Example. TIER 1 - User interface and navigation Labeled Tier 1 in the following graphic, this layer comprises the entire.
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
22 Copyright © 2008, Oracle. All rights reserved. Multi-User Development.
Palantír: Increasing Awareness in Distributed Software Development Anita Sarma and André van der Hoek {asarma, Institute for Software.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
March 2004 At A Glance The AutoFDS provides a web- based interface to acquire, generate, and distribute products, using the GMSEC Reference Architecture.
HighImpactSoft 2010 Organizing a Better Future. Agenda Specify Goals ScopeDefinitions Process Model Preliminary Requirements Issues and solutions TraceabilityPrototype.
UCI Large-Scale Collection of Application Usage Data to Inform Software Development David M. Hilbert David F. Redmiles Information and Computer Science.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Managing multiple projects or services? Have a mix of Microsoft Project and more simple tasks? Need better visibility and control?
Configuration Management Workspace Awareness for Distributed Software Development Anita Sarma Department of Informatics & Institute for Software Research.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Avoiding the Pitfalls of Database Change Automation Cindy Bean Sr. Software Consultant DBmaestro SQLSaturday #514 – Houston, May 14, 2016.
Version Control How and why to control changes in a software artifact.
Configuration Management
Software Configuration Management CSC-532
Project Management Chapter 3.
Threads vs. Events SEDA – An Event Model 5204 – Operating Systems.
Concurrent Version Control
X in [Integration, Delivery, Deployment]
Software Quality Engineering
Design and Programming
Informatics 121 Software Design I
Chapter 2: Building a System
Parallel Changes in Large-Scale Software Development: An Observational Case Study DEWAYNE E. PERRY University of Texas at Austin HARVEY P. SIY Lucent.
Presentation transcript:

Palantír: Coordinating Distributed CMWorkspaces Anita Sarma, André van der Hoek Institute for Software Research University of California, Irvine {asarma,

A Typical Development Scenario CM repository Pete’s workspace CBA Ellen’s workspace ECD

Problem! A CM workspace in reality provides two kinds of isolation: –Good isolation  Shields current work from others changes –Bad isolation  Hides knowledge of what artifacts other developers are changing Break bad isolation, such that developers are aware of each other’s changes, but current work remains shielded from other people’s changes

The Solution 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 explicitly request information CM repository CM repository

Many Difficult Questions Which information must be shared? How is the information presented? How can information overload be avoided? Can this approach scale? Does it actually help developers coordinate better? Goal: demonstrate feasibility of workspace awareness first!

Palantír Architecture CM repository Pete’s workspace C B A Ellen’s workspace E C D CM clientCM serverCM client Event wrapper Pete’s Visualizations Ellen’s Visualizations Palantír Internal State Palantír Internal State Event Service Event Service

Populating a Workspace Ellen populates her workspace with directories & files

Making Changes in the Workspace Ellen makes changes edit – creates redo.c write.c & dict.c ‘?’ denotes artifacts are undergoing changes Green color denotes changes by workspace owner

Committing Changes Ellen has finished her changes and committed them ‘?’ has changed to ‘!’ denoting changes are known Blue bars denote Severity of changes

More Changes (by Other Developers) Layers denote concurrent changes Other authors denoted by shades of red color Layers can be brought forward

Critical Feature: Pair-Wise Comparisons

Removing and Moving Artifacts Icons denote CM activities namely move and remove

Metadata Extensive metadata from CM systems Annotated with time of event occurrence Choice of author color from palette Back/ forward button for easy traversal

Scalability & Information Overload Application –Manage only relevant artifacts  Artifacts present in “my” workspace  Leverages event service filtering –Internal data structure versus visualization User cognition –Pair-wise comparisons –Stack shows linear evolution in time –Filter data per user criteria –Sorting of artifacts per severity / date

Experience Integration with two CM systems –CVS (optimistic) –RCS (pessimistic) Relatively easy to implement –500 lines of Java code each –Wraps each CVS/RCS command with a PalantirCVS/RCS command that invokes CVS/RCS and emits relevant events –Not complete, but the essence (~60%) is there

Related Work Configuration Management –Coven –COOP/Orm CSCW –MMM, ShrEdit –BSCW, “Edit wear and read wear” Software Evolution Visualization –Code decay –3D visualization

Conclusions Palantír is a prototype that… –…brings awareness to distributed CM workspaces –…shows pair-wise conflict –…provides a simple measure of severity Future Work –Examine change impact analysis for both atomic and compound artifacts –Additional visualizations –Case studies to determine effectiveness

Conflicts Do Happen! Large systems, multiple developers lead to conflicting changes.  Perry & Votta: “Files that have high degrees of parallel changes also tend to have more defects.”  Perry & Votta: “Overlapping time schedule of successive releases suggest that features for different releases are being developed almost concurrently.” Awareness of others changes helps in conflict resolution –Elvin’s success: “providing a way to gather and redistribute collaboration-focused information during everyday use.”

Conflicts Direct Conflicts: Overlapping changes to the same artifact Indirect Conflicts: Changes to one artifact modifying the behavior of another artifact –Implicit domain knowledge of developers. –Future Work: trace dependencies

Agile Processes Agile processes have fewer conflicts, but conflicts exist nonetheless Increased awareness necessitated by higher number of check-ins –Need to synchronize workspace only for significant changes, and not for all changes in the workspace A number of organizations, do not follow agile processes (NASA)

Event Frequency Event generated on check-in / check- out and other CM functions –Depending on the CM system in question. Push Model: events generated when others perform CM operations. Potential to leverage virtual file systems –Track smaller units of changes (save /edit)  Especially for severity calculations –Develop simple watch mechanisms

Existing CM functionality CVS watches – delivery mechanism is crude –Scaling problems Coven softlocks –Need to specify intended changes beforehand, which is difficult to do –Only watches for direct conflicts

P2P GrooveSiena Clients listening to events

Pair-Wise Comparisons dev 3 dev 1 ws owner dev 2 dev 4 dev1-dev2 dev1-dev3 dev1-dev4 dev1-All dev1-All: summarizes all comaprisons dev1-dev?: only those conflicts between dev1 and the other dev

Visualization Features Different views with different trade-offs –Amount of information versus level of intrusiveness –Scrolling marquee, fully graphical, tabular Configurable –Selection of relevant developers, events, timeframes Scalable –Internal data structure versus actual visualization –Pair-wise conflicts –Filter data on user criteria –Sorting per severity or change impact Extensive metadata