Software development is an intensively collaborative activity, where common collaboration issues (task management, resource use, communication, etc.) are aggravated by the fast pace of change, artifact complexity and interdependency, an ever larger volume of context information, geographical distribution of participants, etc. Consequently, the issue of tool-based support for collaboration is a pressing one in software engineering. In this thesis, we address collaboration in the context of modeling and enacting development processes. Such processes are traditionally conceived as structures imposed upon the development of a software product. However, a sizable proportion of collaboration in software engineering is ad hoc, and composed of unplanned activities. So as to make software processes contribute to collaboration support, especially the unplanned kind, we focus on their function of information repositories on the main elements of collaboration and the interactions of such elements. Our contribution, on the one hand, is a conceptual model of collaborative development support, which is able to account for popular tools like version control systems and bug tracking systems. This conceptual model is then applied to software processes. We hence define a global approach for the exploitation of process information for collaboration support, based on the central notions of query language and event handling mechanism. On the other hand, we propose a metamodel, CMSPEM (Collaborative Model-Based Software & System Process Engineering Metamodel), which extends SPEM (Software & System Process Engineering Metamodel) with concepts and relationships necessary for collaboration support. This metamodel is then tooled with model creation tools (graphical and textual editors), and a process server which implements an HTTP/REST-based query language and an event subscription and handling framework. Our approach is illustrated and validated, first, by an analysis of development practices inferred from project data from 219 open source projects. Second, collaboration support utilities (making contextual information available, automating repetitive actions, generating reports on individual contributions) have been implemented using the CMSPEM process server.
Modeling and enacting ad hoc collaborative processes