Font Size: a A A

On the relationship between software dependencies and coordination: Field studies and tool support

Posted on:2006-04-17Degree:Ph.DType:Dissertation
University:University of California, IrvineCandidate:de Souza, Cleidson Ronald BotelhoFull Text:PDF
GTID:1458390008452138Subject:Computer Science
Abstract/Summary:
As software systems provide more, and more distributed, real-time services to our society, it is possible to witness their growing complexity. One way to manage this complexity is to decompose software systems into smaller parts, called modules. The predictable consequence of dividing a system into modules is that these modules need to be put back together in some coordinated way, so that the software system can provide services. A dependency between software modules is said to exist when one module relies on another to perform its operations or when changes to the latter must be reflected on the former.; Dependencies between software modules affect their development, maintenance, and reuse. More important, they affect the coordination of software development efforts. Although this relationship has been long known by researchers and practitioners, it has been largely unexplored. Most researchers focus on the technical aspects of the dependencies---identification, analysis, and maintenance---instead of focusing on their implications for understanding the collaborative work of software production. Meanwhile, empirical studies of software dependencies focus on how organizations and teams adopt strategies to manage these dependencies.; To address this issue, I have conducted two field studies to understand how software developers manage the effect of these dependencies in the coordination of their work. Using ethnographic data, I detail how management of dependencies can be understood as impact management---the work performed by software developers to minimize the impact of one's effort on that of others, and at the same time, the impact of others' efforts on one's own. The main aspect underlying impact management is used to inform the design of Ariadne, a tool that aims to facilitate this same activity.; Ariadne is evaluated in two different settings, each examined to determine how software dependencies can be used to facilitate the understanding and enactment of collaborative software development activities. This dissertation concludes by using the observations from my field studies and results from my evaluations to suggest implications for empirical software engineering research, organizational work practices, and the design of collaborative technologies.
Keywords/Search Tags:Software, Dependencies, Field studies, Coordination, Work
Related items