loading...
  • Publication
  • RapidPosts
  • Abstract - Software Dependencies, Work Dependencies, and Their Impact on Failures
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Software Dependencies, Work Dependencies, and Their Impact on Failures
RapidPost
ISSN: 0098-5589
Marcelo Cataldo, Research and Technology Center, Robert Bosch LLC, Pittsburgh
Audris Mockus, Avaya Labs Research, Basking Ridge
Jeffrey A. Roberts, Duquesne University, Pittsburgh
James D. Herbsleb, Carnegie Mellon University, Pittsburgh
Prior research has shown that customer-reported software faults are often the result of violated dependencies that are not recognized by developers implementing software. Many types of dependencies and corresponding measures have been proposed to help address this problem. The objective of this research is to compare the relative performance of several of these dependency measures as they relate to customer-reported defects. Our analysis is based on data collected from two projects from two independent companies. Combined, our data set encompasses eight years of development activity involving 154 developers. The principal contribution of this study is the examination of the relative impact that syntactic, logical, and work dependencies have on the failure proneness of a software system. While all dependencies increase the fault proneness, the logical dependencies explained most of the variance in fault proneness, while workflow dependencies had more impact than syntactic dependencies. These results suggest that practices such as rearchitecting, guided by the network structure of logical dependencies, hold promise for reducing defects.

[1] D. Atkins, T. Ball, T. Graves, and A. Mockus, “Using Version Control Data to Evaluate the Impact of Software Tools: A Case Study of the Version Editor,” IEEE Trans. Software Eng., vol. 28, no. 7, pp. 625-637, July 2002.
[2] C.Y. Baldwin and K.B. Clark, Design Rules: The Power of Modularity. MIT Press, 2000.
[3] V.R. Basili and B.T. Perricone, “Software Errors and Complexity: An Empirical Investigation,” Comm. ACM, vol. 12, pp. 42-52, 1984.
[4] L.C. Briand, J. Wust, J.W. Daly, and D.V. Porter, “Exploring the Relationships between Design Measures and Software Quality in Object-Oriented Systems,” J. Systems and Software, vol. 51, pp. 245-273, 2000.
[5] R.S. Burt, Structural Holes: The Social Structure of Competition. Harvard Univ. Press, 1992.
[6] M. Cataldo, P. Wagstrom, J.D. Herbsleb, and K.M. Carley, “Identification of Coordination Requirements: Implications for the Design of Collaboration and Awareness Tools,” Proc. Conf. Computer Supported Cooperative Work, pp. 353-362, 2006.
[7] M. Cataldo, “Dependencies in Geographically Distributed Software Development: Overcoming the Limits of Modularity,” PhD dissertation, Inst. for Software Research, School of Computer Sciences, Carnegie Mellon Univ., 2007.
[8] M. Cataldo, M. Bass, J.D. Herbsleb, and L. Bass, “On Coordination Mechanism in Global Software Development,” Proc. Int'l Conf. Global Software Eng., pp. 71-80, 2007.
[9] S.R. Chidamber and C.F. Kemerer, “A Metrics Suite for Object-Oriented Design,” IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, June 1994.
[10] K.C. Crowston, “Toward a Coordination Cookbook: Recipes for Multi-Agent Action,” PhD dissertation, Sloan School of Management, Masschusetss Inst. of Tech nology, 1991.
[11] B. Curtis, H. Kransner, and N. Iscoe, “A Field Study of Software Design Process for Large Systems,” Comm. ACM, vol. 31, pp. 1268-1287, 1988.
[12] C.R.B. de Souza, “On the Relationship between Software Dependencies and Coordination: Field Studies and Tool Support,” PhD dissertation, Donald Bren School of Information and Computer Sciences, Univ. of California, Irvine, 2005.
[13] C.R.B. de Souza, D. Redmiles, L. Cheng, D. Millen, and J. Patterson, “How a Good Software Practice Thwarts Collaboration —The Multiple Roles of APIs in Software Development,” Proc. Conf. Foundations of Software Eng., pp. 221-230, 2004.
[14] M. Eaddy, T. Zimmermannn, K.D. Sherwood, V. Garg, G.C. Murphy, N. Nagappan, and A.V. Aho, “Do Crosscutting Concerns Cause Defects?” IEEE Trans. Software Eng., vol. 34, no. 4, pp. 497-515, July/Aug. 2008.
[15] S.G. Eick, T.L. Graves, A.F. Karr, A. Mockus, and P. Schuster, “Visualizing Software Changes,” IEEE Trans. Software Eng., vol. 28, no. 4, pp. 396-412, Apr. 2002.
[16] S.D. Eppinger, D.E. Whitney, R.P. Smith, and D.A. Gebala, “A Model-Based Method for Organizing Tasks in Product Development,” Research in Eng. Design, vol. 6, pp. 1-13, 1994.
[17] S. Faraj and Y. Xiao, “Coordination in Fast-Response Organization,” Management Science, vol. 52, no. 8, pp. 1155-1169, 2006.
[18] N.E. Fenton and M. Neil, “A Critique of Software Defect Prediction Models,” IEEE Trans. Software Eng., vol. 25, no. 5, pp.675-689, Sept./Oct. 1999.
[19] L.C. Freeman, “Centrality in Social Networks: I. Conceptual Clarification,” Social Networks, vol. 1, pp. 215-239, 1979.
[20] J.R. Galbraith, Designing Complex Organizations. Addison-Wesley Publishing, 1973.
[21] H. Gall, K. Hajek, and M. Jazayeri, “Detection of Logical Coupling Based on Product Release History,” Proc. Int'l Conf. Software Maintenance, pp. 190-198, 1998.
[22] B. Geppert, A. Mockus, and F. Rößler, “Refactoring for Changeability: A Way to Go?” Proc. 11th Int'l Symp. Software Metrics, pp.35-48, 2005.
[23] T.L. Graves, A.F. Karr, J.S. Marron, and H. Siy, “Predicting Fault Incidence Using Software Change History,” IEEE Trans. Software Eng., vol. 26, no. 7, pp. 653-661, July 2000.
[24] R.E. Grinter, J.D. Herbsleb, and D.E. Perry, “The Geography of Coordination Dealing with Distance in R&D Work,” Proc. Conf. Supporting Group Work, pp. 306-315, 1999.
[25] A.E. Hassan and R.C. Holt, “C-REX: An Evolutionary Code Extractor for C,” Proc. Conf. Systems Eng. Research Meeting, 2004.
[26] J.D. Herbsleb, A. Mockus, and J.A. Roberts, “Collaboration in Software Engineering Projects: A Theory of Coordination,” Proc. Int'l Conf. Information Systems, 2006.
[27] J.D. Herbsleb and A. Mockus, “An Empirical Study of Speed and Communication in Globally Distributed Software Development,” IEEE Trans. Software Eng., vol. 29, no. 6, pp. 481-494, June 2003.
[28] S. Horwitz, T. Reps, and D. Binkley, “Interprocedural Slicing Using Dependence Graphs,” ACM Trans. Programming Languages and Systems, vol. 22, pp. 26-60, 1990.
[29] D.H. Hutchens and V.R. Basili, “System Structure Analysis: Clustering with Data Bindings,” IEEE Trans. Software Eng., vol. 11, no. 8, pp. 749-757, Aug. 1985.
[30] D. Krackhardt and J.D. Brass, “Intra-Organizational Networks: The Micro Side,” Social Network Analysis: Research in the Social and Behavioral Sciences, pp. 207-229, Sage, 1994.
[31] A. Meneely, L. Williams, W. Snipes, and J. Osborn, “Predicting Failures with Developer Networks and Social Network Analysis,” Proc. Foundations of Software Eng., 2008.
[32] A. Mockus and D. Weiss, “Predicting Risk of Software Changes,” Bell Labs Technical J., vol. 5, pp. 169-180, 2000.
[33] A. Mockus and D. Weiss, “Globalization by Chunking: A Quantitative Approach,” IEEE Software, vol. 18, no. 2, pp. 30-37, Mar./Apr. 2001.
[34] K.H. Moeller and D. Paulish, “An Empirical Investigation of Software Fault Distribution,” Proc. Int'l Software Metrics Symp., pp.82-90, 1993.
[35] N. Nagappan and T. Ball, “Using Software Dependencies and Churn Metrics to Predict Field Failures: An Empirical Case Study,” Proc. First Int'l Symp. Empirical Software Eng. and Measurement, pp. 363-373, 2007.
[36] N. Nagappan, B. Murphy, and V.R. Basili, “The Influence of Organizational Structure on Software Quality: An Empirical Case Study,” Proc. Int'l Conf. Software Eng., pp. 521-530, 2008.
[37] D.L. Parnas, “On the Criteria to Be Used in Decomposing Systems into Modules,” Comm. ACM, vol. 15, pp. 1053-1058, 1972.
[38] M. Pinzger, N. Nagappan, and B. Murphy, “Can Developer-Module Networks Predict Failures?” Proc. Foundations of Software Eng., 2008.
[39] A. Sarma, Z. Noroozi, and A. Van Der Hoek, “Palantir: Raising Awareness among Configuration Management Workspaces,” Proc. Int'l Conf. Software Eng., pp. 444-453, 2003.
[40] R.W. Selby and V.R. Basili, “Analyzing Error-Prone System Structure,” IEEE Trans. Software Eng., vol. 17, no. 2, pp. 141-152, Feb. 1991.
[41] T. Schummer and J.M. Haake, “Supporting Distributed Software Development by Modes of Collaboration,” Proc. European Conf. Computer-Supported Collaborative Work, pp. 79-89, 2001.
[42] N. Staudenmayer, “Managing Multiple Interdependencies in Large Scale Software Development Projects,” unpublished PhD dissertation, Sloan School of Management, Massachusetts Inst. of Tech nology, 1997.
[43] W.P. Stevens, G.J. Myers, and L.L. Constantine, “Structure Design,” IBM Systems J., vol. 13, pp. 231-256, 1974.
[44] E. Trainer, S. Quirk, C. de Souza, and D. Redmiles, “Bridging the Gap between Technical and Social Dependencies with Ariadne,” Proc. Workshop the Eclipse Technology Exchange, pp. 26-30, 2005.
[45] J.D. Thompson, Organizations in Action: Social Science Bases of Administrative Theory. McGraw-Hill, 1967.
[46] E. von Hippel, “Task Partitioning: An Innovation Process Variable,” Research Policy, vol. 19, pp. 407-418, 1990.
[47] D.J. Watts, Small Worlds: The Dynamics of Networks between Order and Randomness. Princeton Univ. Press, 1994.
[48] T. Zimmermannn and N. Nagappan, “The Predicting Defects Using Network Analysis on Dependency Graphs,” Proc. Int'l Conf. Software Eng., pp. 531-540, 2008.

Index Terms:
Distribution/maintenance/enhancement, metrics/measurement, organizational management and coordination, quality analysis and evaluation.
Citation:
Marcelo Cataldo, Audris Mockus, Jeffrey A. Roberts, James D. Herbsleb, "Software Dependencies, Work Dependencies, and Their Impact on Failures," IEEE Transactions on Software Engineering, 09 July 2009. IEEE computer Society Digital Library. IEEE Computer Society, <http://doi.ieeecomputersociety.org/10.1109/TSE.2009.42>
Usage of this product signifies your acceptance of the Terms of Use.