A Social Collaborative Distributed Software Development Environment,” Has Been Reviewed in Final Form
Total Page:16
File Type:pdf, Size:1020Kb
A Social Collaborative Distributed Software Development Environment A Dissertation Presented in Fulfillment of the Requirements for the Degree of Doctor of Philosophy with a Major in Computer Science in the College of Graduate Studies University of Idaho By Hani Ahmad Bani-Salameh August 16, 2011 Major Professor: Dr. Clinton Jeffery Copyright © 2010-2011 Hani Bani-Salameh. All rights reserved. ii Authorization to Submit Dissertation This dissertation of Hani Ahmad Bani-Salameh, submitted for the degree of Doctor of Philosophy with a major in Computer Science and entitled “A Social Collaborative Distributed Software Development Environment,” has been reviewed in final form. Permission, as indicated by the signatures and dates given below, is now granted to submit final copies to the College of Graduate Studies for approval. Major Professor: Date: Dr. Clinton Jeffery Committee member: Date: Dr. Jim Alves-Foss Committee member: Date: Dr. Robert Rinker Committee member: Date: Dr. Barry Willis Department Administrator: Date: Dr. Gregory W. Donohoe Discipline’s College Dean: Date Dr. Larry A. Stauffer Final Approval and Acceptance by the College of Graduate Studies: Date: Dr. Jie Chen iii Abstract Software engineering is usually a team effort. Distributed software development needs real-time collaboration tools that help replicate the benefits of face-to-face meetings and support interaction among team members. Unfortunately, most of the tools that exist have limited capabilities, such as source code editing, and developers face collaboration and communication challenges in working with each other. Over the past decade software researchers have invented various development tools that integrate collaborative features. Unfortunately, most software developers still lack the right means and level of communication to coordinate their work and perform their tasks effectively, particularly in distributed settings. Developers still lack a sense of remote team members’ presence, and in some contexts, such as open source development, they still find it difficult to find appropriate project partners. This draws attention to the need for community integration inside collaborative development environment tools. This dissertation investigates collaboration and communication mechanisms for distributed software development. The research results include solutions to problems that are associated with providing online awareness and presence information, and determine the prospective gains from the use of these solutions. This research contributes the core idea and novel design and implementation techniques for a real-time social collaborative integrated development environment (IDE). It describes the design and implementation of a social collaborative IDE inside a virtual environment named Collaborative Virtual Environment (CVE) where users can interact with each other within a 3D virtual world. A subsystem of CVE called Social Collaborative Integrated Development Environment (SCI) is presented that supports communication and collaboration within a distributed software development community, and integrates community and social features inside the development environment. SCI addresses the communication and collaboration needs in a variety of different phases in a team software development process, unifies the concepts of social networking and collaborative IDE, and integrates presence information and collaborative development tools into a single environment. In addition, this dissertation relates the contributions to previous research and describes directions for future work. This dissertation discusses social networking features that offer a context, and provide activity, and presence information within a development community. A central component of these features is an awareness monitor that shows the team members’ activity, and provides general awareness of projects’ progress and development changes, and makes them easy to track. iv Acknowledgment Every dissertation is a joint effort and mine is no exception. I would like to express my gratitude to all the people who supported this work. It has been a long journey involved with major research challenges and overcoming critical developments obstacles. I would like to thank my major professor, Dr. Clinton Jeffery, for his critical eye and foresight. It has been pleasure learning from his experience and insights for these past six years. Without his early guidance and encouragement, my years as a Ph.D. student would have been far less productive. I thank him for his encouragement, patience, support, and knowledge. I would like to thank my committee members: Dr. Jim Alves-Foss, Dr. Robert Rinker, and Dr. Barry Willis, for their encouragement and constructive criticism about the presented research and the formatting of this dissertation. They have been a strong supporter of my work and they provided invaluable feedback. I would like to thank Mr. Bruce Bolden and every member of the computer science I class from the Summer 2011 session who participated in the evaluation studies. This work would have been much more difficult without them. Finally, thank you also to the corporate and governmental sponsors of this work. This research was supported in part by a grant from the National Science Foundation under agreement number DUE-0402572. In addition, this work was supported in part by the Specialized Information Services Division of the U.S. National Library of Medicine. Hani Bani-Salameh August 16, 2011 v Table of contents Authorization to Submit Dissertation ............................................................................. ii Abstract ............................................................................................................................. iii Acknowledgment .............................................................................................................. iv Table of contents ............................................................................................................... v List of Figures ................................................................................................................... ix List of Tables ................................................................................................................... xii Part I Introduction and Background Research ......................................................... xiii Chapter 1 Introduction..................................................................................................... 1 1.1 Problem Description ........................................................................................................ 2 1.2 Research Hypotheses ....................................................................................................... 3 1.3 Contributions.................................................................................................................... 3 1.4 Organization ..................................................................................................................... 4 1.5 The state of this dissertation ............................................................................................ 5 Chapter 2 Background Research .................................................................................... 6 2.1 The Importance of Collaboration ..................................................................................... 6 2.2 Research Related to Collaborative Software Engineering ............................................... 7 2.2.1 Collaborative Software Systems (Groupware) ......................................................... 7 2.2.2 Collaborative Development Environments ............................................................ 14 2.2.3 Comparison to SCI Tool ........................................................................................ 20 2.3 Summary ........................................................................................................................ 22 Chapter 3 Social Networks ............................................................................................. 23 3.1 Definition of Social Network ......................................................................................... 23 3.2 Social Network Research Advances and Applications .................................................. 24 3.3 Developers’ Social Networks ........................................................................................ 25 3.4 Social Network Examples for Software Development .................................................. 26 3.5 Summary ........................................................................................................................ 28 Part II Primary Contributions (Synchronous and Asynchronous Features) ........... 30 Chapter 4 Synchronous Collaborative IDE System Support ..................................... 31 4.1 Overview of CVE .......................................................................................................... 31 4.2 Overview of ICI ............................................................................................................. 32 4.2.1 Use Scenarios ......................................................................................................... 35 vi 4.3 Design ............................................................................................................................ 35 4.3.1 Collaborative Sessions ..........................................................................................