collaborative editing systems and their application to

40
Collaborative Editing Systems and their Application to Distributed Software Engineering Jon A. Preston PhD Student Department of Computer Science Georgia State University Interim Department Head Department of Information Technology Clayton College and State University

Upload: others

Post on 30-Jan-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Collaborative Editing Systems and their Application to

Collaborative Editing Systems and their Application to Distributed Software Engineering

Jon A. Preston

PhD StudentDepartment of Computer ScienceGeorgia State University

Interim Department HeadDepartment of Information TechnologyClayton College and State University

Page 2: Collaborative Editing Systems and their Application to

Thinking Collaboratively

“Great things can happen, when you don’t care who gets credit.”

- Mark Twain

Page 3: Collaborative Editing Systems and their Application to

Agenda

CSCWSynchronous & AsynchronousVirtual Presence and HCI IssuesTransparent & Aware Models

Distributed Software EngineeringConfiguration ManagementDistributed CMS

Well-known ProblemsCache CoherencyMutexMerging

Recent WorkOpen Research

Page 4: Collaborative Editing Systems and their Application to

Computer Supported Collaborative Work (CSCW)

Page 5: Collaborative Editing Systems and their Application to

CSCW Defined

Computer Supported Collaborative/Cooperative Work

Focus on collaboration (HCI)Focus on cooperation (IS)

Goal-driven (work)Computer systems support

Page 6: Collaborative Editing Systems and their Application to

Synchronous and Asynchronous

Users can edit at different timesAsynchronous

Users can edit at the same timeSynchronous

Patters in collaborationBegins asynchronous (email sufficient)Migrates to synchronous (deadline)

Page 7: Collaborative Editing Systems and their Application to

Virtual Presence

Provide information about other users in the system

Name, picture, email, “state,” chat, VoIP

Display what sections of the document others are editing

Show “ownership”Show historical information

Page 8: Collaborative Editing Systems and their Application to

Other HCI/Social Issues

Allow users to not be botheredAllow “deep” work

Integrate communication tools into IDE

“Eclipse” by Cheng et al. (2004)

Shared and personal views of collaborative space

Page 9: Collaborative Editing Systems and their Application to

Transparencies

CSCW system knows nothing about the software “underneath”Useful to support legacy systemsSignificant overhead

CSCW system is not coupled to the user software

Capture and broadcast UI events

Page 10: Collaborative Editing Systems and their Application to

Aware CSCW

Tightly-coupled CSCW systems to shared programCan be optimized

CSCW system knows about collaborative software

Cache events and broadcast what is important

Page 11: Collaborative Editing Systems and their Application to

Levels within Groupware

DisplayRenders the application to the user

ViewContains the application's logical presentation

ModelThe application's state and internal information

FileThe persistent information of the application

Roth and Unger(2000)

Page 12: Collaborative Editing Systems and their Application to

FileModel

Display

View

User 1 User N

Display

View

Shared Model

Page 13: Collaborative Editing Systems and their Application to

Display

View

User 1

File

Model

Display

View

User N

File

Model

Shared View

Page 14: Collaborative Editing Systems and their Application to

Hybrid Model

FileModel

Display

View

User 1 User N…Display

View

Page 15: Collaborative Editing Systems and their Application to

Distributed Software Engineering

Page 16: Collaborative Editing Systems and their Application to

Applicability of CSCW

EvolutionChanges must be tracked among many different versions of the software

ScaleIncreasingly large systems involve more interactions among methods and developers

Distribution of knowledgeMany people all working on the system

Clustering of edits (12.5% within 24h)Perry et al. (2001)

Page 17: Collaborative Editing Systems and their Application to

Configuration Management

Mutual ExclusionCheck in and check outEREW, CREW, & CRCW

VersioningRollbacks, branches, and joins

Permission/access

Page 18: Collaborative Editing Systems and their Application to

Distributed CMS

Configuration Management SystemsCVS, RCS, VSS, etc.

Can distribute repository on multiple machines

Ubiquity of networked machinesImprove network access (distributed cache)

Currently distribute at file-level only

Page 19: Collaborative Editing Systems and their Application to

Mappings to Known Problems

Page 20: Collaborative Editing Systems and their Application to

Cache Coherency

Assume a CRCW policyChanges must be propagated

Various update protocols

ApproachesSnoopy cacheWrite invalidateDirectory-based protocol (shared, exclusive, unused)

Page 21: Collaborative Editing Systems and their Application to

Mutex

Must ensure that only one user can edit any given areaHelps mitigate merge problemFine granularity

Improves parallelism, complicates modification effects

Course granularityEases modification effects, reduces parallelism

Page 22: Collaborative Editing Systems and their Application to

Merging

User 1 has artifact AUser 2 has artifact ABoth users edit (asynchronously)

User 1 creates A1

User 2 creates A2

Check-in both modified versionsAutomate the merge process

Detect collisions in documents

Page 23: Collaborative Editing Systems and their Application to

Handling Synchronicity

Conflict Resolution MatrixO(n2) – can be parallelizedShen & Sun (2002)

Dependency TreesFirewalls and cursorsChange propagation into subtreesKaiser & Kaplan (1993)

Page 24: Collaborative Editing Systems and their Application to

Recent Work

Page 25: Collaborative Editing Systems and their Application to

Other in the Field

GrouplabUniversity of Calgary

Cooperative Systems Engineering GroupComputing Department, Lancaster University

Graphics, Visualization & Usability CenterKeith Edwards Georgia Institute of Technology

Xerox PARCSigGROUP of the ACMMany Others!

Page 26: Collaborative Editing Systems and their Application to

A Sample in CSCW Software Engineering Research

Tam, J., McCaffrey, L, Maurer, F. and Greenberg, S. (2000) Change Awareness in Software Engineering Using Two Dimensional Graphical Design and Development Tools. Report 2000-670-22, Department of Computer Science, University of Calgary, Alberta, Canada, October.

Page 27: Collaborative Editing Systems and their Application to

The Study

AsynchronousPrototyped a software modeling tool using UMLPlacement: situated vs. separatePresentation: symbolic vs. literalFour change visualizations

Animated replays (situated & literal)Storyboards (separate & literal)Iconic representations (situated & symbolic)Documentation (separate & symbolic)

Page 28: Collaborative Editing Systems and their Application to

Situated & Literal: Animated Replays

Page 29: Collaborative Editing Systems and their Application to

Situated & Symbolic: Iconic

Page 30: Collaborative Editing Systems and their Application to

Separate & Literal: Storyboards

Page 31: Collaborative Editing Systems and their Application to

Separate & Symbolic: Documentation

Page 32: Collaborative Editing Systems and their Application to

Procedures

Four changesAddition of informationDeletion from diagramModificationMovement

Pre testKnowledge of UML and CS

Post testHow the mechanism workedLikert 1 (useless) - 5 (very effective) scale

Page 33: Collaborative Editing Systems and their Application to

Results

Symbolic well accepted (abstraction)Gaze shift of separate a negativeBefore-after comparisons of storyboarding time consumingDifficulty in visualizing movementUsers wanted to see current version of document“Who” and “why” of change critical

Page 34: Collaborative Editing Systems and their Application to

Potential Open Research

Page 35: Collaborative Editing Systems and their Application to

Granularity

Examine fine-level of granularity in configuration management systemsLock at a class levelLock at a method levelLock at a block level

Page 36: Collaborative Editing Systems and their Application to

Implications of Fine-level Locking

Modifications within a class (private)Could impact other elements of a class

Modifications to a class (public)Could impact API (clients) of class

Modifications at the block levelCould impact other block elements

Track/notify user of implications

Page 37: Collaborative Editing Systems and their Application to

Models/Patterns of Software Editing/Development Behavior

How do developers build/edit software?PSP/TSP and others address productivityOther models attempt to capture process at a higher-levelExtreme ProgrammingBut are there patterns to how code is built and/or edited?

Page 38: Collaborative Editing Systems and their Application to

Non-Code-Based Synchronous Editing Systems

Integrate into existing, widely-adopted document editing systems

Peer-to-peer communication

Improve Versioning (CM) into document editing

Page 39: Collaborative Editing Systems and their Application to

ReferencesKAISER G. E. and KAPLAN S. M. Parallel and Distributed Incremental Attribute Evaluation Algorithms for Multiuser Software Development Environments. ACM Transactions on Software Engineering and Methodology, vol. 2, no. 1, pp. 47-92, January 1993.PERRY D. E., SIY H. P., and VOTTA L. G. Parallel Changes in Large Scale Software Development: An Observational Case Study. ACM Transactions on Software Engineering and Methodology, vol. 10, no. 3, pp. 308-337, July 2001.ROTH, J. and UNGER C. Developing synchronous collaborative applications with TeamComponents. 4th International Conference on Cooperative Systems. 2000.SHEN H. and SUN C. Flexible Notification for Collaborative Systems. In Proceedings of CSCW'02, New Orleans Louisiana, pp. 77-86, November 2002.TAM, J., MCCAFFREY, L, MAURER, F. and GREENBERG, S. Change Awareness in Software Engineering Using Two Dimensional Graphical Design and Development Tools. Report 2000-670-22, Department of Computer Science, University of Calgary, Alberta, Canada, October 2000.

Page 40: Collaborative Editing Systems and their Application to

Questions