PHD 01/07
Towards Computer-Supported Collaborative Software Engineering
Carl Cook
Department of Computer Science
University of Canterbury
Abstract
Software engineering is a fundamentally collaborative activity, yet most tools
that support software engineers are designed only for single users. There are
many foreseen benefits in using tools that support real time collaboration
between software engineers, such as avoiding conflicting concurrent changes
to source files and determining the impact of program changes immediately.
Unfortunately, it is difficult to develop non-trivial tools that support real
time Collaborative Software Engineering (CSE). Accordingly, the few CSE
tools that do exist have restricted capabilities.
Given the availability of powerful desktop workstations and recent advances
in distributed computing technology, it is now possible to approach
the challenges of CSE from a new perspective. The research goal in this
thesis is to investigate mechanisms for supporting real time CSE, and to determine
the potential gains for developers from the use of CSE tools. An
infrastructure, Caise, is presented which supports the rapid development of
real time CSE tools that were previously unobtainable, based on patterns of
collaboration evident within software engineering.
In this thesis, I discuss important design aspects of CSE tools, including
the identification of candidate patterns of collaboration. I describe the
Caise approach to supporting small teams of collaborating software engineers.
This is by way of a shared semantic model of software, protocol for
tool communication, and Computer Supported Collaborative Work (CSCW)
facilities. I then introduce new types of synchronous semantic model-based
tools that support various patterns of CSE. Finally, I present empirical and
heuristic evaluations of typical development scenarios.
Given the Caise infrastructure, it is envisaged that new aspects of collaborative
work within software engineering can be explored, allowing the
perceived benefits of CSE to be fully realised.