SHF:Small:Collaborative Research: Supporting Continuous Awareness and Exploration of Social and Design Dependencies
Northern Arizona University, Flagstaff AZ
Investigators
Abstract
Modern software engineering is a highly social activity, which is in contrast aimed at producing technical artifacts. As a result, complex dependencies between the technical elements of software systems and the social structures of the developers that are tasked with their creation have a direct effect on software quality: in projects that exhibit a high degree of congruence between the design of a software system and the social communication structures of its developers, teams are more productive and systems contain fewer faults. This research project aims to create the necessary tool support so that software engineers can be made keenly aware of these socio-technical dependencies within the familiar context of their everyday development activities. By providing this information in this specific context ? at a time when it is useful and actionable ? the broader impacts of this research have the potential to dramatically transform software engineering habits and practices by bringing into sharper focus the existing and emerging socio-technical trends of a development effort, allowing developers to intervene when they diverge, and ultimately improving the quality of the software systems produced. To achieve these objectives, this research project is grounded on the creation of an architecture-centric toolset that supports the analysis of social network patterns, designed to be an addition to the popular Eclipse development environment. This toolset will support continuous awareness of emerging socio-technical dependencies by collecting data and providing a host of displays that allow developers to visualize their project?s software architecture, dependencies between source code units, and the social network formed through analysis of developer communications. Key contributions and advances of this work include the novel integration of social aspects of development with the architecture of software systems, the provision of concrete socio-architectural congruence metrics, and the presentation of this information to developers during ongoing development efforts.
View original record on NSF Award Search →