Unifying Artifacts and Activities in a Visual Tool for Distributed Software Development Teams Jon Froehlich and Paul Dourish Interactive & Collaborative.

Slides:



Advertisements
Similar presentations
Using Charts and Graphs in the Classroom
Advertisements

Traceability Requirements Management2 Traceability Systems Engineering STD.
Knoxville, TN Oct. 19, 2009 AMI-Enterprise Systems Requirements Specification Overview.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
CX Analytics: Best Practices in Measuring For Success
George Ktistakis, Demosthenes Akoumianakis Department of Informatics Engineering, Technological Education Institution of Crete, Greece Towards digital.
ENTERFACE’08 Multimodal high-level data integration Project 2 1.
Microsoft Excel Mania Brian Kovar and Stacy Kovar.
Document Imaging and Customer Relationship Management (CRM) alive in VisualRATEX Tuesday, August 2 nd, 2:30 – 3:30pm By Thomas Romantic, Cornell Business.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
ClearEye: An Visualization System for Document Revision CPSC 533C Project Update Qiang Kong Qixing Zheng.
Access 2007 Product Review. With its improved interface and interactive design capabilities that do not require deep database knowledge, Microsoft Office.
Embodied Interaction By Matthew Dunlap Define Artifacts? Overview Next.
Visualization of space-time patterns of West Nile virus Alan McConchie CPSC 533c: Information Visualization December 14, 2006.
CHIME: A Metadata-Based Distributed Software Development Environment Stephen E. Dossick Dept. of Computer Science Columbia University
Collaborative Software Engineering – Awareness and Concurrency Agam.
Some Visualization Principles from Edward Tufte. Edward Tufte, Beautiful Evidence See also
Lecture 3: Shared Workspace and Design Coordination Dr. Xiangyu WANG.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Copyright © Tableau Software, Incorporated. All rights reserved. The Zen of Visual Analysis Chris Stolte Vice President, Engineering & co-founder.
Computational Thinking Related Efforts. CS Principles – Big Ideas  Computing is a creative human activity that engenders innovation and promotes exploration.
PopMedNet Software Development Life Cycle Chayim Herzig-Marx Harvard Pilgrim Health Care Institute Daniel Dee Lincoln Peak Partners.
Platforms for Learning in Computer Science July 28, 2005.
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.
Thesis Proposal Virtual Reality in Construction Cost Estimating By: Mandy Frazure Date: 5/12/04.
.. Skytap Better Software Faster Visual Studio Industry Partner Skytap NEXT STEPS Contact us at: Insert your company description here.
McLean VA, May 3, 2010 SG Systems Systems Requirements Specification Approach Overview.
Anand Raman, Group Manager David Wright, Lead SDE Developer Division March 15, 2007.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Seeking the Source Software Source Code as a Social and Technical Artifact Cleidson de Souza, Jon Froehlich, and Paul Dourish Jon Froehlich University.
POSTSHARP TECHNOLOGIES Better software through simpler code.
Data Abstraction CS 201j: Engineering Software University of Virginia Computer Science Nathanael Paul
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
At A Glance VOLT is a freeware, platform independent tool set that coordinates cross-mission observation planning and scheduling among one or more space.
Dream Report: Secure and Reliable Reporting Renee Sikes Applications Engineer Dream Report Brand Manager.
U.S. Department of the Interior U.S. Geological Survey CDI Webinar Sept. 5, 2012 Kevin T. Gallagher and Linda C. Gundersen September 5, 2012 CDI Science.
SCIENCE COMPANION, SESSION 3 INTRODUCTION TO THE ________________ MODULE [Your name here] January 24, 2011.
Information Visualization: Ten Years in Review Xia Lin Drexel University.
Group 3: Art Gallery Monica Almendarez Content/Project Manager Willliam Egle Technology Manager Christina Pié Usability/ADA Compliance Manager Mirjana.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
ESIP Federation 2004 : L.B.Pham S. Berrick, L. Pham, G. Leptoukh, Z. Liu, H. Rui, S. Shen, W. Teng, T. Zhu NASA Goddard Earth Sciences (GES) Data & Information.
Media Arts and Technology Graduate Program UC Santa Barbara MAT 259 Visualizing Information Winter 2006George Legrady1 MAT 259 Visualizing Information.
Integrating Active Tangible Devices with a Synthetic Environment for Collaborative Engineering Sandy Ressler Brian Antonishek Qiming Wang Afzal Godil National.
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
The Unified Modeling Language (UML)
July 2010 System Release Friday, March 26, System Wide Changes New branding -- People First logo, colors, header, footers on home pages, Web site.
Integrated business-information system for sales process support Bitrix24 Marta Alić, prof. University of Applied Sciences, Zagreb.
Eclipse Project. Installing Visit to download a copy for your home computerhttp:// –Get Release version 3.0 (or.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
Distributed Data Analysis & Dissemination System (D-DADS ) Special Interest Group on Data Integration June 2000.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Aspect Oriented Security Tim Hollebeek, Ph.D.
05 | Integrating JavaScript and MVC 4 Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek.
T Iteration Demo Tempus I1 Iteration
SAP BO ONLINE TRAINING B Y H YDERABADSYS O NLINE T RAINING Contact Us: INDIA: USA:
Federal Land Manager Environmental Database (FED) Overview and Update June 6, 2011 Shawn McClure.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
Development Environment
Tutorial 5: Working with Excel Tables, PivotTables, and PivotCharts
Self Healing and Dynamic Construction Framework:
Unified Modeling Language
Ubiquitous Computing and Augmented Realities
Welcome to Employee Self Service
Federal Land Manager Environmental Database (FED)
Matthew Lyon James Montgomery Lucas Scotta 13 October 2010
Citation Map Visualizing citation data in the Web of Science
Automated Analysis and Code Generation for Domain-Specific Models
CAD DESK PRIMAVERA PRESENTATION.
Enhanced agent workspace for messaging
Presentation transcript:

Unifying Artifacts and Activities in a Visual Tool for Distributed Software Development Teams Jon Froehlich and Paul Dourish Interactive & Collaborative Technologies Group School of Information and Computer Science University of California, Irvine

2 Overview Software development is complex –Involves dealing with complexity of source code (artifact) Distributed software development is even more complex –Involves dealing with both complexity of artifact and` activities around that artifact These two sources of complexity are not independent –Our approach seeks to combine them in a familiar visual frame

3 String.java class String implements Comparable } String substring(int index){ } } String(char value[]){ } public int compareTo(Object o){ Example Amy Frank Daniel Jan ‘04 March ‘04 Feb ‘04

4 String.java class String implements Comparable } String substring(int index){ } } String(char value[]){ } public int compareTo(Object o){ Artifact-Based Tools Amy Frank Daniel Jan ‘00 March ‘04 August ‘02 July ‘02

5 String.java Activity-Based Tools Amy Frank Daniel Jan ‘00 March ‘04 August ‘02 July ‘02 class String implements Comparable } String substring(int index){ } } String(char value[]){ } public int compareTo(Object o){

6 Separation This separation makes it difficult to see elements that involve both artifact and activity: –Who has been working on new sections of code? –Which developers have worked together recently and on what functions/files? or more complicated questions like –What modules depend on those recently updated

7 Our Approach To address this separation, we’ve developed a visualization tool called Augur. –Augur uses the source code itself to reveal information about development activity The source code becomes a unifying principle with which to reveal information about its development

8 Our Approach Augur relies on existing configuration management systems for its activity data –Currently supports CVS Augur performs language/structural analysis to better understand semantics of code

9 Visualizations Visualizations shift load from cognitive system to perceptual system –Leverage visual system’s ability to perceive patterns and structures Visualizations allow user to process large amounts of information in a consumable way

10 SeeSoft

(edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * This is a test class to demo Augur! 1.3 (edward 11-Mar-04): Jon, Sandy, Edward 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public class HelloWorld { 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Default constructor 1.3 (edward 11-Mar-04): */ 1.2 (sandy 06-Mar-04): public HelloWorld(){ 1.2 (sandy 06-Mar-04): Log.println(“Constructor called"); 1.2 (sandy 06-Mar-04): } 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Prints HelloWorld msg & logs call 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public void printMessage(){ 1.2 (sandy 06-Mar-04): Log.println("printMessage called"); 1.1 (jon 02-Feb-04): System.out.println("HelloWorld"); 1.1 (jon 02-Feb-04): } 1.1 (jon 02-Feb-04): }//end HelloWorld class SeeSoft Date Legend Mar 11 Mar 06 Feb 02 Date Legend Mar 11 Mar 06 Feb 02 HelloWorld.java Temporal Activity Date Legend Mar 11 Mar 06 Feb 02 Date Legend Mar 11 Mar 06 Feb 02

(edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * This is a test class to demo Augur! 1.3 (edward 11-Mar-04): Jon, Sandy, Edward 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public class HelloWorld { 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Default constructor 1.3 (edward 11-Mar-04): */ 1.2 (sandy 06-Mar-04): public HelloWorld(){ 1.2 (sandy 06-Mar-04): Log.println(“Constructor called"); 1.2 (sandy 06-Mar-04): } 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Prints HelloWorld msg & logs call 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public void printMessage(){ 1.2 (sandy 06-Mar-04): Log.println("printMessage called"); 1.1 (jon 02-Feb-04): System.out.println("HelloWorld"); 1.1 (jon 02-Feb-04): } 1.1 (jon 02-Feb-04): }//end HelloWorld class SeeSoft HelloWorld.java Author Legend Sandy Edward Jon Author Legend Sandy Edward Jon

(edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * This is a test class to demo Augur! 1.3 (edward 11-Mar-04): Jon, Sandy, Edward 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public class HelloWorld { 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Default constructor 1.3 (edward 11-Mar-04): */ 1.2 (sandy 06-Mar-04): public HelloWorld(){ 1.2 (sandy 06-Mar-04): Log.println(“Constructor called"); 1.2 (sandy 06-Mar-04): } 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Prints HelloWorld msg & logs call 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public void printMessage(){ 1.2 (sandy 06-Mar-04): Log.println("printMessage called"); 1.1 (jon 02-Feb-04): System.out.println("HelloWorld"); 1.1 (jon 02-Feb-04): } 1.1 (jon 02-Feb-04): }//end HelloWorld class Augur HelloWorld.java Structure Legend Constructor Comment Method Structure Legend Constructor Comment Method

14 Augur 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * This is a test class to demo Augur! 1.3 (edward 11-Mar-04): Jon, Sandy, Edward 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public class HelloWorld { 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Default constructor 1.3 (edward 11-Mar-04): */ 1.2 (sandy 06-Mar-04): public HelloWorld(){ 1.2 (sandy 06-Mar-04): Log.println(“Constructor called"); 1.2 (sandy 06-Mar-04): } 1.1 (jon 02-Feb-04): 1.3 (edward 11-Mar-04): /** 1.3 (edward 11-Mar-04): * Prints HelloWorld msg & logs call 1.3 (edward 11-Mar-04): */ 1.1 (jon 02-Feb-04): public void printMessage(){ 1.2 (sandy 06-Mar-04): Log.println("printMessage called"); 1.1 (jon 02-Feb-04): System.out.println("HelloWorld"); 1.1 (jon 02-Mar-04): } 1.1 (jon 02-Feb-04): }//end HelloWorld class HelloWorld.java Structure Legend Constructor Comment Method Whitespace Structure Legend Constructor Comment Method Whitespace Author Legend Sandy Edward Jon Author Legend Sandy Edward Jon Structure Legend Constructor Comment Method Structure Legend Constructor Comment Method Date Legend Mar 11 Mar 06 Feb 02 Date Legend Mar 11 Mar 06 Feb 02

15 /** * This is a test class to demo Augur! Jon, Sandy, Edward */ public class HelloWorld { /** * Default constructor */ public HelloWorld(){ Log.println(“Constructor called"); } /** * Prints HelloWorld msg & logs call */ public void printMessage(){ Log.println("printMessage called"); System.out.println("HelloWorld"); } }//end HelloWorld class Big Picture: on March 6 th, Sandy added logging functionality to HelloWorld. How? * Adding a constructor * Adding one line to an existing method Source code is the common artifact around which developer activities take place –The code itself provides a common & familiar space in which to reveal information about development activity –Code becomes a unifying structure for organizing many different types of information Augur

16 Augur HelloWorld.java Author Legend Sandy Edward Jon Author Legend Sandy Edward Jon Structure Legend Constructor Comment Method Structure Legend Constructor Comment Method Date Legend Mar 11 Mar 06 Feb 02 Date Legend Mar 11 Mar 06 Feb 02 HelloWorld.java SmallerFile.java LargerFile.javaLargestFile.javaFile.java File2.java

17 Augur in Practice Three examples follow that demonstrate how relationships between artifact and activity can be interpreted with Augur

18 Three Examples 1.The activity of commenting

19 Example One Structure Legend Constructor Comment Import Structure Legend Constructor Comment Import Field Method Whitespace It appears that there are relationships between temporality and artifact! First the methods were added and then, 6 months later, the comments were added/modified. Constructor Method Comment Method Comment Method Conner Antoine Conner Antoine Conner Clearly there is a temporal pattern here, but… Now we see, most recently added lines are comments… And comments were added by a another author! Not just detecting comments, but the activity of commenting! This richer characterization made possible by the combination of information.

20

21 Author Activity

22 Author Activity

23 Author Activity Project Length: 4 yrs, 4 mos old Author’s First Commit: ~1 year ago Observation: 74% of lines are comments Project Length: 4 yrs, 4 mos old Author’s First Commit: ~1 year ago Observation: 74% of lines are comments Majority of author’s development activity is commenting –This is easily discernible Tying together multiple views makes this inference possible

24 Three Examples 1.The activity of commenting 2.Unification of views reveal richer notions of activity

25 Unification of Views

26 Three Examples 1.The activity of commenting 2.Unification of views reveal richer notions of activity 3.Exploring changes in context

27 In Context Commit Log Commit Date: 05/09/04 Author: offkey Comment: TestMultiLabeller.java added Comment: Tests GlobalStringLabeller.java Structure Legend Constructor Comment Import Structure Legend Constructor Comment Import Field Method Whitespace

28

29 Controls and Color Legend Primary Visualization Window (Augmented Seesoft View) Secondary Visualizations FileTree Explorer

30 Architecture

31 Extensibility Supports 1. Multiple Version Control Systems 2. Multiple analytic tools 3. Multiple visualizations

32 Ongoing & Future Work Exploring temporal activity patterns in source code Exploring social networking patterns in source code Applying Augur philosophy in other environments

33 Past 2 Years, 3 MonthsPast 1 YearPast 1 MonthPast 1 Week Past 24 Hours Temporal Patterns

34 Author “hawkprime” SelectedAuthor “oscarmm” SelectedAuthor “suvarov” Selected Author “bmazur” Selected

35 Social Patterns

36

37

38

39 Integrating Augur Philosophy

40 Conclusion Activity information is situated within the source code –Source code is an “inhabited space” Exposing activity information in the context of code provides a richer understanding of the relationship between them

41 Thank You Download Augur: Contact :