INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS



Similar documents
Factors Influencing the Adoption of Biometric Authentication in Mobile Government Security

Cut paste string operation for collaborative groupware applications

National Chiayi University Department of Education, Coursework Guidelines for Master s and Doctoral Students

TABLE OF CONTENTS ABSTRACT ACKNOWLEDGEMENT LIST OF FIGURES LIST OF TABLES

A Study On Employee Retention Practices And Its Effectiveness In IT Sector

Towards Software Configuration Management for Test-Driven Development

Understanding Chinese Educational Leaders Conceptions of Learning and Leadership in an International Education Context

IEEE Computer Society Certified Software Development Associate Beta Exam Application

Schneps, Leila; Colmez, Coralie. Math on Trial : How Numbers Get Used and Abused in the Courtroom. New York, NY, USA: Basic Books, p i.

Integrity 10. Curriculum Guide

GROUPWARE. Ifeoluwa Idowu

SIMPLIFIED CENTRALIZED OPERATIONAL TRANSFORMATION ALGORITHM FOR CONCURRENT COLLABORATIVE SYSTEMS

LIST OF FIGURES. Figure No. Caption Page No.

INTEGRATED STAFF ATTENDANCE SYSTEM (ISAS) WEE PEK LING

MASTER of PHILOSOPHY in MODERN EUROPEAN HISTORY

University of Cambridge: Programme Specifications MASTER OF PHILOSOPHY IN MODERN EUROPEAN HISTORY

Intellectual Property Protection in the Fashion Industry: Current Trends and Insights for China

An Enterprise Modeling Framework for Banks using. Algebraic Graph Transformation

TALENT MANAGEMENT PRACTICES AND ITS IMPACT ON ORGANIZATIONAL PRODUCTIVITY: A STUDY WITH REFERENCE TO IT SECTOR IN BENGALURU

Essays in Financial Mathematics

Experiential Education as a Best Practice Pedagogy for Environmental Education in Teacher Education. Volume 1

Regulation On Attainment of Doctor of Sciences Degree at SEEU (PhD)

The Processes and Effectiveness of Online Counselling and Therapy for Young People. Mitchell J. Dowling. University of Canberra.

Analysis and Design of Active Queue Management for TCP-RED Congestion Control Strategies

Review Your Thesis or Dissertation

Master Data Management

System Administration of Windchill 10.2

COUPLE OUTCOMES IN STEPFAMILIES

Knowledge Management Strategic Alignment in the Banking Sector at the Gulf Cooperation Council (GCC) Countries

ARIS Design Platform Getting Started with BPM

STUDENTS ATTITUDES TOWARDS BUSINESS ETHICS: A COMPARISON BETWEEN INDONESIA AND LESOTHO.

AGREEMENT FOR DOUBLE OR JOINT DOCTORAL DEGREE

Corporate Reputation Management. and Stakeholder Engagement: A Case Study of Five Top. Australian Companies

Model-based Version Management System Framework

Change Management. ABSTRACT

TABLE OF CONTENTS CHAPTER TITLE PAGE

Bas~c Accoun~~nll NZELE DAVID NZOMO. "'lwalnn or NAIWoml\'~ZJI'-""M" fl. 9. Ikx lrhj7. 1i.JQ. University of Nairobi Press. iijjmiiimllii ---~_---1 \

A Direct Numerical Method for Observability Analysis

Data Security at the KOKU

Operating Systems Principles

Declaration to be submitted by directors in the Applicant Company 1

SOUTH DAKOTA STATE UNIVERSITY Policy and Procedure Manual

Windchill Service Information Manager Curriculum Guide

Udai Shankar 2 Deptt. of Computer Sc. & Engineering Madan Mohan Malaviya Engineering College, Gorakhpur, India

vii TABLE OF CONTENTS CHAPTER TITLE PAGE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABSTRAK

A Reputation Replica Propagation Strategy for Mobile Users in Mobile Distributed Database System

Data Warehousing in the Age of Big Data

Kim-Song Le (B.Ec, M.Ec, MBA, GDip.Sc)

Oracle Enterprise Manager

NEURAL NETWORKS A Comprehensive Foundation

Computer Science. General Education Students must complete the requirements shown in the General Education Requirements section of this catalog.

Activity Mining for Discovering Software Process Models

An Active Packet can be classified as

Apple Pro Training Series. OS X Server. Essentials. Arek Dreyer. and Ben Greisler

National Chiao Tung University Department of Mechanical Engineering Doctoral Program Regulations

University of Pune. Rules for the Degree of Master of Philosophy (M.Phil.)

Concurrent Programming

Code of Good Practice for PhD candidates and Supervisors of TU Delft Graduate School

Department of International Trade at Feng Chia University Master s Program Requirements Policy

The Software. Audit Guide. ASQ Quality Press. Milwaukee, Wisconsin. John W. Helgeson

Designing and Coding Secure Systems

A Framework for the Design of Cloud Based Collaborative Virtual Environment Architecture

Oracle SOA Suite 11g: Essential Concepts Student Guide

How To Extract Content From Thai Websites

MODELLING AND ANALYSIS OF INTEGRATED PRODUCTION - INVENTORY - DISTRIBUTION SYSTEMS. A. NOORUL HAQ Department of Mechanical Engineering

City of Georgetown. Cisco Unified Communications. Scope of Work

Information Systems. Administered by the Department of Mathematical and Computing Sciences within the College of Arts and Sciences.

Integrated Wealth Management

Quantification and Traceability of Requirements

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Contents. 1 Introduction. 2 Feature List. 3 Feature Interaction Matrix. 4 Feature Interactions

IMPROVEMENT THE PRACTITIONER'S GUIDE TO DATA QUALITY DAVID LOSHIN

Mining. Practical. Data. Monte F. Hancock, Jr. Chief Scientist, Celestech, Inc. CRC Press. Taylor & Francis Group

CITY UNIVERSITY OF HONG KONG 香 港 城 市 大 學. Self-Organizing Map: Visualization and Data Handling 自 組 織 神 經 網 絡 : 可 視 化 和 數 據 處 理

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Essays in Market Microstructure and Investor Trading

Practicum Handbook for School Counseling (COUN 583) (Updated 9/29/14)

Please consult the Department of Engineering about the Computer Engineering Emphasis.

Masters in Human Computer Interaction

Core Training Quick Reference Guide Version 2.0

Obj ect-oriented Construction Handbook

Hadoop: The Definitive Guide

Engineering Masters Program Requirements

The Data Webhouse. Toolkit. Building the Web-Enabled Data Warehouse WILEY COMPUTER PUBLISHING

Gujarat Forensic Sciences University Sector 9, Gandhinagar Application Form for Faculty Position

Transcription:

INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS By Haifeng Shen A DISSERTATION SUBMITTED IN FULFILLMENT OF THE REQUIREMENTS OF THE DEGREE OF DOCTOR OF PHILOSOPHY AT THE SCHOOL OF COMPUTING AND INFORMATION TECHNOLOGY FACULTY OF ENGINEERING AND INFORMATION TECHNOLOGY GRIFFITH UNIVERSITY BRISBANE, QLD 4111, AUSTRALIA SEPTEMBER 2003 c Copyright by Haifeng Shen, 2003

Abstract Software systems are getting larger and more complex, while the requirements are becoming vaguer and more rapidly changing. These trends make current software development more and more likely a team work. To integrate multiple developers into a coherent structured management process and make team software development a positive-sum game for both higher productivity and better quality, many team software development methodologies have been proposed and practised. An emerging methodology is collaborative programming, which allows a group of programmers to work together on the same source code for design, implementation of individual components, and integration of individual components. Compared with other team software methodologies that only address needs in some phases or situations, collaborative programming is more adaptive to the variety of different phases or situations in a team software development process. A core technical component in collaborative programming is collaborative editing, which allows a group of programmers to view and edit the same source code. To support different phases or situations in an Internet-based collaborative programming process, collaborative editing must meet the requirements of supporting unconstrained, responsive, real-time collaborative editing; unconstrained, syncretic, nonreal-time collaborative editing; and smooth, flexible switching between real-time and non-real-time collaborative editing. This thesis research contributes several novel techniques to address these requirements, and an Internet-based collaborative programming environment to integrate those techniques. These research contributions have advanced state-of-the-art technologies on collaborative editing for supporting Internet-based collaborative programming. First, ii

we contribute a collaborative highlighting gestural communication technique for unconstrained, responsive, real-time collaborative editing. This technique is particularly effective in improving the quality of real-time interaction on text-based source code documents. The contribution to the operational transformation technology is the extension of the technology to support group awareness. It includes a package of operational transformation functions and transformation control algorithms for consistency maintenance in collaborative highlighting, and a flexible undo solution that has the capability of undoing any highlighting operation at any time. Second, we contribute a flexible operation-based merging technique for unconstrained, syncretic, non-real-time collaborative editing, which is efficient and has the capability of textually integrating all changes, and automatically detecting and resolving syntactic conflicts according to application-dependent user-specified policies. The contribution to the operational transformation technology is the extension of the technology to support unconstrained, syncretic, non-real-time collaborative editing. Its includes a log compression algorithm, a textual merging algorithm, and a syntactic merging algorithm. Moreover, we contribute a flexible notification technique to support flexible collaborative editing: unconstrained, responsive, real-time collaborative editing; unconstrained, syncretic, non-real-time collaborative editing; and smooth, flexible switching between them. The contribution to the operational transformation technology is the extension of the technology to support flexible collaborative editing. It includes a new transformation control algorithm that has a linear time complexity, two notification algorithms that support propagation and acceptance of any notifications at any time, and a notification propagation protocol that is efficient for both real-time and non-real-time collaborative editing. iii

Table of Contents Abstract Table of Contents List of Figures Publications derived from this research Systems derived from this research Acknowledgements ii iv viii xi xiii xiv 1 Introduction 1 1.1 Trends in software development..................... 1 1.1.1 Larger and more complex software............... 1 1.1.2 Vaguer and more rapidly changing software.......... 2 1.2 Team software development methodologies............... 5 1.2.1 Pair programming........................ 5 1.2.2 Software configuration management............... 8 1.3 Collaborative programming....................... 13 1.3.1 The case for collaborative programming............ 15 1.3.2 Collaborative editing....................... 16 1.3.3 Requirements for collaborative editing............. 17 1.4 Real-time collaborative editing...................... 19 1.4.1 Centralized architecture..................... 19 1.4.2 Replicated architecture...................... 21 1.4.3 Consistency maintenance techniques.............. 22 1.4.4 Operational transformation................... 26 1.4.5 Focuses and contributions.................... 29 iv

1.5 Non-real-time collaborative editing................... 30 1.5.1 Related techniques and systems................. 31 1.5.2 Focuses and contributions.................... 32 1.6 Switching between real-time and non-real-time collaborative editing. 33 1.6.1 Related techniques and systems................. 33 1.6.2 Focuses and contributions.................... 35 1.7 Thesis outline............................... 36 2 Real-time collaborative highlighting 38 2.1 Introduction................................ 38 2.2 Representation of highlights....................... 42 2.3 Consistency maintenance......................... 46 2.3.1 General causality violation problem............... 46 2.3.2 Divergence caused by concurrent overshadowing highlighting operations............................. 47 2.3.3 Intention violation of highlighting operations caused by concurrent insertion/deletion operations................ 55 2.3.4 A transformation control algorithm............... 63 2.4 Flexible undo solution.......................... 69 2.5 Conclusions and future work....................... 75 3 Flexible operation-based merging 77 3.1 Introduction................................ 77 3.2 Textual merging.............................. 82 3.2.1 State-based merging technique.................. 82 3.2.2 Operation-based merging technique............... 93 3.3 A log compression algorithm....................... 101 3.3.1 Related work........................... 102 3.3.2 Definitions............................. 103 3.3.3 Operational merging technique................. 106 3.3.4 The compression algorithm.................... 112 3.3.5 Discussions on the COMET compression algorithm...... 124 3.4 An operation-based textual merging algorithm............. 127 3.4.1 Related work........................... 128 3.4.2 An operation-based textual merging algorithm......... 131 3.4.3 Discussions on the SLOT control algorithm........... 134 3.5 Syntactic merging............................. 137 3.5.1 A flexible syntactic merging framework............. 139 3.5.2 Syntactic merging algorithm................... 141 v

3.5.3 Version control.......................... 151 3.6 System design and implementation................... 152 3.6.1 System configuration....................... 153 3.6.2 A flexible operation-based merging experiment......... 156 3.7 Conclusions and future work....................... 160 4 Flexible notification 163 4.1 Introduction................................ 163 4.2 A flexible notification framework.................... 166 4.2.1 Notification frequency...................... 166 4.2.2 Notification granularity...................... 169 4.2.3 Notification mechanism...................... 171 4.3 Notification for flexible collaborative editing.............. 173 4.3.1 Related techniques........................ 174 4.3.2 Notification buffers........................ 175 4.3.3 Notification algorithms...................... 177 4.3.4 Notification propagation protocol................ 180 4.3.5 A comprehensive example.................... 189 4.4 Discussions on propagation protocols.................. 194 4.4.1 SLOT transformation control algorithm............. 195 4.4.2 Mutual exclusion at the notification server........... 199 4.4.3 Backup of outstanding notifications............... 200 4.5 System design and implementation................... 203 4.5.1 System configuration....................... 203 4.5.2 A scenario of flexible collaborative editing........... 206 4.6 Related work............................... 207 4.7 Conclusions and future work....................... 208 5 An Internet-based collaborative programming environment 211 5.1 Overview.................................. 211 5.2 System configuration........................... 213 5.3 Four kinds of collaborative sessions................... 216 5.4 A collaborative programming experiment................ 219 5.5 Conclusions and future work....................... 221 6 Conclusions and future work 224 A More selective undo examples 229 vi

B Formal proofs of theorems and properties 237 C Sample code 245 Bibliography 246 vii

List of Figures 1.1 The waterfall model of software development process......... 3 1.2 Frequent iterations lead to extreme programming........... 4 1.3 Pair programming............................. 6 1.4 Virtual pair programming........................ 7 1.5 Concurrent work supported by Copy-Modify-Merge.......... 9 1.6 Operational transformation versus serialization............. 28 2.1 Telepointing versus highlighting..................... 40 2.2 Highlights represented as changes of background colours....... 43 2.3 Highlighting operations and their inverses............... 45 2.4 An example of causality violation.................... 47 2.5 HOSE algorithm to solve the divergence problem........... 54 2.6 An example of intention violation.................... 56 2.7 Another example of intention violation................. 59 2.8 GOTO algorithm to solve the intention violation problem....... 62 2.9 PICOT algorithm to preserve both intention and convergence.... 66 2.10 SUIT algorithm to selectively undo a highlighting operation..... 74 3.1 Merging may happen at two stages................... 78 3.2 Types of update merging......................... 79 3.3 The representation of editing scripts................... 84 3.4 Coarse-grained representation of editing scripts............ 85 3.5 An example of three-way textual merging supported by diff3..... 87 viii

3.6 Character-based versus line-based editing script............ 88 3.7 A state-based commit merging process................. 91 3.8 A state-based update merging process.................. 93 3.9 An operation-based commit merging process.............. 97 3.10 An operation-based update merging process.............. 98 3.11 A log for illustrating relationships between operations......... 104 3.12 A log for illustrating relationships between neighbouring operations. 106 3.13 Log L is compressed by applying operational merging......... 113 3.14 The depiction of COMET compression algorithm: L c = COMET(L). 116 3.15 A log for illustrating interrelations between operations........ 120 3.16 Interrelations between operations.................... 121 3.17 Editing graph transforming string xyz to string xc123......... 125 3.18 Operation-based merging algorithm................... 129 3.19 Operation-based merging algorithm based on the GINA approach.. 130 3.20 Operation-based merging algorithm based on the IceCube approach. 131 3.21 Syntactic merging versus textual merging................ 138 3.22 A flexible syntactic merging framework................. 139 3.23 Syntactic-Conflict function returns wrong judgement......... 142 3.24 How to redo operations.......................... 144 3.25 The setting of SMIT syntactic merging algorithm........... 145 3.26 System configuration of FORCE..................... 153 3.27 The FORCE SCM front-end applet................... 154 3.28 Compression options and merging policies............... 155 3.29 Log compression after the construction period............. 156 3.30 Performance differences of commit merging after construction period 157 3.31 Performance difference of update merging after construction period. 158 3.32 Log compression after the debugging period.............. 159 3.33 Performance differences of commit merging after the debugging period 159 3.34 Performance differences of update merging after the debugging period 160 ix

4.1 Relation between notification frequency and collaborative systems.. 166 4.2 Notification frequency parameter values................. 167 4.3 Frequency parameter values used in example systems......... 168 4.4 Granularity parameter values used in example systems........ 170 4.5 A flexible notification framework.................... 172 4.6 Sequential notification propagation protocol.............. 181 4.7 Concurrent notification propagation protocol.............. 182 4.8 An example of flexible collaborative editing............... 189 4.9 Generation of notification messages M 1 and M 2............ 190 4.10 Propagation of notification message M 1................. 191 4.11 Propagation of notification message M 2................. 192 4.12 Acceptance of notifications on operations O 1 and O 3.......... 194 4.13 Compare concurrent propagation to sequential propagation...... 198 4.14 Configure notification policies...................... 204 4.15 User-controlled notification with selective granularity......... 205 5.1 System configuration of the web-based RECIPE environment..... 214 5.2 RECIPE terminal applet......................... 215 5.3 Four kinds of collaborative session supported by RECIPE....... 218 A.1 Undoing a highlighting operation is mixed with a concurrent highlighting operation............................... 230 A.2 Undoing a highlighting operation is mixed with concurrent undo of another highlighting operation...................... 231 A.3 Undoing a highlighting operation is mixed with a concurrent insertion/deletion operation.......................... 233 A.4 Undoing a highlighting operation is mixed with concurrent undo of an insertion/deletion operation....................... 235 x

Publications derived from this research 1. Haifeng Shen and C. Sun. Improving Real-time Collaboration with Highlighting. In International Journal of Future Generation Computer Systems, North-Holland, Elsevier Science Publisher, to appear July 2003. 2. Haifeng Shen and C. Sun. Flexible Notification for Collaborative Systems. In Proceedings of ACM Conference on Computer-Supported Cooperative Work, pages 77 86, New Orleans, Louisiana, USA, ACM Press, November 2002. 3. Haifeng Shen and C. Sun. Flexible Merging for Asynchronous Collaborative Systems. In Proceedings of Tenth International Conference on Cooperative Information Systems, pages 304 321, University of California, Irvine, USA, Springer Verlag, November 2002. 4. Haifeng Shen and C. Sun. RECIPE: A Web-based Environment for Supporting Real-time Collaborative Programming. In Proceedings of International Conference on Networks, Parallel and Distributed Processing, pages 283 288, Tsukuba, Japan, ACTA Press, October 2002. 5. Haifeng Shen and C. Sun. Highlighting: A Gesturing Communication Tool for Real-time Collaborative Systems. In Proceedings of the 5th IEEE International Conference on Algorithms and Architectures for Parallel Processing, pages 180 187, Beijing, China, IEEE computer society, October 2002. 6. Haifeng Shen and C. Sun. A Log Compression Algorithm for Operation-based xi

Version Control Systems. In Proceedings of IEEE 26th Annual International Computer Software and Application Conference, pages 867 872, Beijing, Oxford, England, IEEE computer society, August 2002. 7. Haifeng Shen and C. Sun. Collaborative Highlighting for Real-time Group Editors. In Proceedings of International Conference on Innovative Internet Computing Systems, pages 39 50, Khlungsborn, Germany, Springer Verlag, June 2002. 8. Haifeng Shen and C. Sun. Operation-based revision control systems. In Proceedings of ACM GROUP 2001 Workshop on Collaborative Editing Systems, Online proceeding: http://www.research.umbc.edu/ jcampbel/group01/ WS- Papers.htm, Boulder, Colorado, USA, September 2001. 9. Haifeng Shen and C. Sun. RECIPE: a prototype for Internet-based real-time collaborative programming. In Procedings of ACM CSCW 2000 Workshop on Collaborative Editing Systems, Online proceeding: http://csdl.tamu.edu/ lidu/ iwces2/papers/index.html, Philadelphia, USA, December 2000. xii

Systems derived from this research 1. RECIPE (REal-time Collaborative Interactive Programming Environment): A Web-based Real-time Collaborative Programming Environment. Demonstrated at ACM CSCW 2000 Workshop on Collaborative Editing Systems, Philadelphia, USA, December 2000. URL: http://reduce.qpsf.edu.au/ hfshen/recipe/ 2. FORCE (Flexible Operation-based Revision Control Environment): A Webbased Source Code Editor with Integrated Flexible Revision Control Support. URL: http://reduce.qpsf.edu.au/force/ 3. NICE (Notification-flexible Collaborative Editing): A Web-based Collaborative Edting System with Flexible Notification Support. Demonstrated at ACM CSCW 2002 Workshop on Collaborative Editing Systems, New Orleans, Louisiana, USA, November 2002. URL: http://reduce.qpsf.edu.au/nice/ xiii

Acknowledgements I would like to express my most sincere appreciation to my supervisor, Professor Chengzheng Sun, who has looked after me throughout the four years of my PhD study. He has taught me every aspect of how to be successful in academia and his pursuit for research excellence has set a good example for me. Without his supervision and advice, I could not have done this. No words can express my gratitude to my beloved wife, who has provided me with emotional and family support, which has carried me through some difficult time. She deserves more than half of my achievements. I am indebted to my parents. They have patiently supported me throughout my years of studies. Without their support, this would not be possible. I owe my friends, Jisheng Han, Jiuyong Li, and Junhu Wang, for their companionship and encouragement during these years. I would like to thank my colleagues, David Chen, Aguido Horatio Davis, Jingzhi Guo, Qian Xia, and Maria Aneiros, for the knowledge I have gained from discussions, debates, and various fun activities. xiv

xv GRIFFITH UNIVERSITY Date: September 2003 Author: Title: Haifeng Shen Internet-based Collaborative Programming Techniques and Environments Department: School of Computing and Information Technology Degree: Ph.D. Year: 2003 I declare this work has not previously been submitted for a degree or diploma in any university. To the best of my knowledge and belief, the thesis contains no material previously published or written by another person except where due reference is made in the thesis itself. Signature of Author