Comprehend and analyze knowledge networks to improve software evolution

  • Authors:
  • Christian Del Rosso

  • Affiliations:
  • Nokia Research Center, Itämerenkatu 11-13, 00180 Helsinki, Finland

  • Venue:
  • Journal of Software Maintenance and Evolution: Research and Practice
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

When a set of people are connected by a set of meaningful social relationships we talk of a social network. A social network represents a social structure and the underlying structural patterns can be used to analyze and comprehend how people relate to each other and their emergent behavior as a group. Developing software is fundamentally a human activity. Developers cooperate and exchange knowledge and information, creating in fact, a particular type of social network that we call knowledge network. In this paper we investigate knowledge networks in software development teams by applying social network analysis and we use the Apache web server as a case study. By analyzing the structural communication and coordination patterns in Apache we have been able to identify the Apache knowledge network, highlight potential communication bottlenecks, and find brokers and important coordination points in the software development team. Furthermore, our work enables a software architect to analyze and maintain the organization and the software architecture aligned during software evolution. An important lesson that we have is that the analysis of knowledge networks constitutes an additional tool to be added to the traditional software architecture assessment methods. Copyright © 2009 John Wiley & Sons, Ltd. In this paper we investigate knowledge networks in software development teams by applying social network analysis and the Apache web server is used as case study. By analyzing the structural communication and coordination patterns in Apache we have been able to identify the Apache knowledge network, highlight potential communication bottlenecks and find brokers and important coordination points in the software development team. Furthermore, our work enables a software architect to analyze and maintain the organization and the software architecture aligned during software evolution. Copyright © 2009 John Wiley & Sons, Ltd.