Bridging the gap between technical and social dependencies with Ariadne

One of the reasons why large-scale software development is difficult is the number of dependencies that software engineers need to face; e.g., dependencies among the software components and among the development tasks. These dependencies create a need for communication and coordination that requires continuous effort by software developers. Empirical studies, including our own, suggest that technical dependencies among software components create social dependencies among the software developers implementing these components. Based on this observation, we developed Ariadne, a Java plug-in for Eclipse. Ariadne analyzes a Java project to identify program dependencies and collects authorship information about the project by connecting to a configuration management repository. Through this process, Ariadne can "translate" technical dependencies among software components into social dependencies among software developers. This paper describes the design of Ariadne, how it identifies technical dependencies among software components, how it extracts information from configuration management systems and, finally, how it translates this into social dependencies. Ariadne's purpose is to create a bridge between technical and social dependencies.

[1]  Steven D. Eppinger,et al.  Sloan School of Management Working Paper Factors That Influence Technical Communication in Distributed Product Development: an Empirical Study in the Telecommunications Industry Factors That Influence Technical Communication in Distributed Product Development: an Empirical Study in the Telecommunica , 2022 .

[2]  Craig Larman Design - Protected Variation: The Importance of Being Closed , 2001, IEEE Softw..

[3]  Stanley Wasserman,et al.  Social Network Analysis: Methods and Applications , 1994, Structural analysis in the social sciences.

[4]  Rebecca E. Grinter Recomposition: Coordinating a Web of Software Dependencies , 2003, Computer Supported Cooperative Work (CSCW).

[5]  Steven D. Eppinger,et al.  Identifying Modular and Integrative Systems and Their Impact on Design Team Interactions , 2003 .

[6]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[7]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[8]  Steven D. Eppinger,et al.  The Misalignment of Product Architecture and Organizational Structure in Complex Product Development , 2004, Manag. Sci..

[9]  Li-Te Cheng,et al.  Sometimes you need to see through walls: a field study of application programming interfaces , 2004, CSCW.

[10]  Mark S. Ackerman,et al.  Just talk to me: a field study of expertise location , 1998, CSCW '98.

[11]  Paul Dourish,et al.  Seeking the source: software source code as a social and technical artifact , 2005, GROUP.

[12]  Maarten Sierhuis,et al.  Management of interdependencies in collaborative software development , 2003, 2003 International Symposium on Empirical Software Engineering, 2003. ISESE 2003. Proceedings..

[13]  Li-Te Cheng,et al.  How a good software practice thwarts collaboration: the multiple roles of APIs in software development , 2004, SIGSOFT '04/FSE-12.

[14]  Alfonso Fuggetta,et al.  Software process: a roadmap , 2000, ICSE '00.

[15]  Peter A. Gloor,et al.  TeCFlow – A Temporal Communication Flow Visualizer for Social Network Analysis , 2004 .

[16]  Ken Kennedy,et al.  Constructing the Procedure Call Multigraph , 1990, IEEE Trans. Software Eng..

[17]  Paul Dourish,et al.  From Technical Dependencies to Social Dependencies , 2004 .

[18]  Gary J. Nutt,et al.  The evolution towards flexible workflow systems , 1996, Distributed Syst. Eng..

[19]  David Notkin,et al.  An empirical study of static call graph extractors , 1998, TSEM.

[20]  Thomas W. Reps,et al.  The use of program dependence graphs in software engineering , 1992, International Conference on Software Engineering.

[21]  Rebecca E. Grinter Decomposition : ABSTRACT Putting It All Back , 2022 .

[22]  Arun Lakhotia Constructing call multigraphs using dependence graphs , 1993, POPL '93.

[23]  Tyson R. Browning,et al.  Applying the design structure matrix to system decomposition and integration problems: a review and new directions , 2001, IEEE Trans. Engineering Management.

[24]  Stephen G. Eick,et al.  Seesoft-A Tool For Visualizing Line Oriented Software Statistics , 1992, IEEE Trans. Software Eng..

[25]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[26]  Steven D. Eppinger,et al.  Predicting technical communication in product development organizations , 1995 .

[27]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.