The Community for Technology Leaders
RSS Icon
Issue No.05 - Sept.-Oct. (2012 vol.38)
pp: 1054-1068
Narayan Ramasubbu , University of Pittsburgh, Pittsburgh
Chris F. Kemerer , University of Pittsburgh, Pittsburgh and King Abdul Aziz University, Saudi Arabia
Jeff Hong , Singapore Management University, Singapore
This study develops and empirically tests the idea that the impact of structural complexity on perfective maintenance of object-oriented software is significantly determined by the team strategy of programmers (independent or collaborative). We analyzed two key dimensions of software structure, coupling and cohesion, with respect to the maintenance effort and the perceived ease-of-maintenance by pairs of programmers. Hypotheses based on the distributed cognition and task interdependence theoretical frameworks were tested using data collected from a controlled lab experiment employing professional programmers. The results show a significant interaction effect between coupling, cohesion, and programmer team strategy on both maintenance effort and perceived ease-of-maintenance. Highly cohesive and low-coupled programs required lower maintenance effort and were perceived to be easier to maintain than the low-cohesive programs and high-coupled programs. Further, our results would predict that managers who strategically allocate maintenance tasks to either independent or collaborative programming teams depending on the structural complexity of software could lower their team's maintenance effort by as much as 70 percent over managers who use simple uniform resource allocation policies. These results highlight the importance of achieving congruence between team strategies employed by collaborating programmers and the structural complexity of software.
Maintenance engineering, Complexity theory, Couplings, Collaboration, Software, Programming profession, software management, Object-oriented programming, complexity measures, software quality, software productivity, programming teams, maintenance process, CK metrics
Narayan Ramasubbu, Chris F. Kemerer, Jeff Hong, "Structural Complexity and Programmer Team Strategy: An Experimental Test", IEEE Transactions on Software Engineering, vol.38, no. 5, pp. 1054-1068, Sept.-Oct. 2012, doi:10.1109/TSE.2011.88
[1] R.C. Seacord, D. Plakosh, and G.A. Lewis, Modernizing Legacy Systems. Addison-Wesley, pp. 1-16, 2003.
[2] C.F. Kemerer, "Software Complexity and Software Maintenance: A Survey of Empirical Research," Annals of Software Eng., vol. 1, pp. 1-22, 1995.
[3] J.T. Nosek and P. Palvia, "Software Maintenance Management: Changes in the Last Decade," J. Software Maintenance and Evolution: Research and Practice, vol. 2, pp. 157-174, 2006.
[4] N.F. Schneidewind, "The State of Software Maintenance," IEEE Trans. Software Eng., vol. 13, no. 3, pp. 303-310, Mar. 1987.
[5] D.P. Darcy, C.F. Kemerer, S.A. Slaughter, and J.E. Tomayko, "The Structural Complexity of Software: An Experimental Test," IEEE Trans. Software Eng., vol. 31, no. 11, pp. 982-995, Nov. 2005.
[6] R.S. Sangwan, P. Vercellone-Smith, and P.A. Laplante, "Structural Epochs in the Complexity of Software over Time," IEEE Software, vol. 25, no. 4, pp. 66-73, July/Aug. 2008.
[7] E. Arisholm, "Empirical Assessment of the Impact of Structural Properties on the Changeability of Object-Oriented Software," Information and Software Technology, vol. 48, pp. 1046-1055, 2006.
[8] R.D. Banker and S.A. Slaughter, "The Moderating Effects of Structure on Volatility and Complexity in Software Enhancement," Information Systems Research, vol. 11, pp. 0219-0240, 2000.
[9] B. Du Bois, S. Demeyer, and J. Verelst, "Does the 'Refactor to Understand' Reverse Engineering Pattern Improve Program Comprehension?" Proc. Ninth European Conf. Software Maintenance and Reeng., 2005.
[10] B. Du Bois, S. Demeyer, and J. Verelst, "Refactoring—Improving Coupling and Cohesion of Existing Code," Proc. 11th Working Conf. Reverse Eng., 2004.
[11] M.A. Storey, "Theories, Tools and Research Methods in Program Comprehension: Past, Present and Future," Software Quality J., vol. 14, pp. 187-208, 2006.
[12] A.v. Mayrhauser and A.M. Vans, "Identification of Dynamic Comprehension Processes during Large Scale Maintenance," IEEE Trans. Software Eng., vol. 22, no. 6, pp. 424-437, June 1996.
[13] R.K. Bandi, V.K. Vaishnavi, and D.E. Turk, "Predicting Maintenance Performance Using Object-Oriented Design Complexity Metrics," IEEE Trans. Software Eng., vol. 29, no. 1, pp. 77-87, Jan. 2003.
[14] F. Fioravanti and P. Nesi, "Estimation and Prediction Metrics for Adaptive Maintenance Effort of Object-Oriented Systems," IEEE Trans. Software Eng., vol. 27, no. 12, pp. 1062-1084, Dec. 2001.
[15] R. Subramanyam and M.S. Krishnan, "Empirical Analysis of CK Metrics for Object-Oriented Design Complexity: Implications for Software Defects," IEEE Trans. Software Eng., vol. 29, no. 4, pp. 297-310, Apr. 2003.
[16] J.T. Nosek, "The Case for Collaborative Programming," Comm. ACM, vol. 41, pp. 105-108, 1998.
[17] A. Parrish, R. Smith, D. Hale, and J. Hale, "A Field Study of Developer Pairs: Productivity Impacts and Implications," IEEE Software, vol. 21, no. 5, pp. 76-79, Sept./Oct. 2004.
[18] L. Williams, R.R. Kessler, W. Cunningham, and R. Jeffries, "Strengthening the Case for Pair Programming," IEEE Software, vol. 17, no. 4, pp. 19-25, July/Aug. 2000.
[19] V. Balijepally, R. Mahapatra, S. Nerur, and K.H. Price, "Are Two Heads Better Than One for Software Development? The Productivity Paradox of Pair Programming," MIS Quarterly, vol. 33, pp. 91-118, 2009.
[20] N. Salleh, E. Mendes, and J. Grundy, "Empirical Studies of Pair Programming for CS/SE Teaching in Higher Education: A Systematic Literature Review," IEEE Trans. Software Eng., vol. 37, no. 4, pp. 509-525, July/Aug. 2010.
[21] C. McDowell, L. Werner, H.E. Bullock, and J. Fernald, "Pair Programming Improves Student Retention, Confidence, and Program Quality," Comm. ACM, vol. 49, pp. 90-95, 2006.
[22] S. Sawyer, "Software Development Teams," Comm. ACM, vol. 47, pp. 95-99, 2004.
[23] K.M. Lui, K.C.C. Chan, and J. Nosek, "The Effect of Pairs in Program Design Tasks," IEEE Trans. Software Eng., vol. 34, no. 2, pp. 197-211, Mar./Apr. 2008.
[24] N.V. Flor and H. Edwin L, "Analyzing Distributed Cognition in Software Teams: A Case Study of Team Programming During Perfective Software Maintenance," Proc. Fourth Workshop Empirical Studies of Programmers, pp. 36-64, 1991.
[25] D.J. Campbell, "Task Complexity: A Review and Analysis," Academy of Management Rev., vol. 13, pp. 40-52, 1988.
[26] R. Wageman, "Interdependence and Group Effectiveness," Administrative Science Quarterly, vol. 40, pp. 145-180, 1995.
[27] R. Saavedra, P.C. Earley, and L.V. Dyne, "Complex Interdependence in Task-Performing Groups," J. Applied Psychology, vol. 78, pp. 61-72, 1993.
[28] J. Hollan, E. Hutchins, and D. Kirsch, "Distributed Cognition: Towards a New Foundation for Human-Computer Interaction Research," ACM Trans. Computer-Human Interaction, vol. 7, pp. 174-196, 2000.
[29] J.D. Thompson, Organizations in Action: Social Science Bases of Administrative Theory. Transaction Publishers, 2003.
[30] R.E. Kraut and S. Lynn A, "Coordination in Software Development," Comm. ACM, vol. 38, pp. 69-81, 1995.
[31] C. Bird, D. Pattison, R. D'Souza, V. Filkov, and P. Devanbu, "Latent Social Structure in Open Source Projects," Proc. 16th ACM SIGSOFT Foundations of Software Eng., 2008.
[32] E. Hutchins, Cognition in the Wild. MIT Press, 1996.
[33] Y. Rogers and J. Ellis, "Distributed Cognition: An Alternative Framework for Analysing and Explaining Collaborative Working," J. Information Technology, vol. 9, pp. 119-128, 1994.
[34] H. Sharp and H. Robinson, "A Distributed Cognition Account of Mature XP Teams," Lecture Notes in Computer Science, P. Abrahamsson, M. Marchesi, and G. Succi, eds., vol. 4044, pp. 1-10, Springer, 2006.
[35] J.E. McGrath, Groups Interaction and Performance. Prentice-Hall, 1984.
[36] P.S. Goodman, "Impact of Task and Technology on Group Performance," Designing Effective Workgroups, P.S. Goodman ed., pp. 120-167, Jossey-Bass, 1986.
[37] V.R. Gibson and J.A. Senn, "System Structure and Software Maintenance Performance," Comm. ACM, vol. 32, pp. 347-358, 1989.
[38] J. Hagemeister, B. Lowther, P. Oman, X. Yu, and W. Zhu, "An Annotated Bibliography on Software Maintenance," ACM SIGSOFT Software Eng. Notes, vol. 17, pp. 79-84, 1992.
[39] R.D. Banker, S.M. Datar, C.F. Kemerer, and D. Zweig, "Software Complexity and Maintenance Costs," Comm. ACM, vol. 36, pp. 81-94, 1993.
[40] N.E. Fenton and A.A. Kaposi, "Metrics and Software Structure," Information and Software Technology, vol. 29, pp. 301-320, 1987.
[41] R. Adamov and L. Richter, "A Proposal for Measuring the Structural Complexity of Programs," J. Systems and Software, vol. 12, pp. 55-70, 1990.
[42] H. Dhama, "Quantitative Models of Cohesion and Coupling in Software," J. Systems and Software, vol. 29, pp. 65-74, 1995.
[43] 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.
[44] E. Arisholm, L.C. Briand, and F. Audun, "Dynamic Coupling Measurement for Object-Oriented Software," IEEE Trans. Software Eng., vol. 30, no. 8, pp. 491-506, Aug. 2004.
[45] L.C. Briand, J.W. Daly, and J. Wust, "A Unified Framework for Cohesion Measurement in Object-Oriented Systems," Empirical Software Eng., vol. 3, pp. 65-117, 1998.
[46] D.P. Darcy and C.F. Kemerer, "OO Metrics in Practice," IEEE Software, vol. 22, no. 6, pp. 17-19, Nov./Dec. 2005.
[47] E. Arisholm and D.I.K. Sjoberg, "Evaluating the Effect of a Delegated versus Centralized Control Style on the Maintainability of Object-Oriented Software," IEEE Trans. Software Eng., vol. 30, no. 8, pp. 521-534, Aug. 2004.
[48] E. Arisholm, H. Gallis, T. Dyba, and D.I.K. Sjoberg, "Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise," IEEE Trans. Software Eng., vol. 33, no. 2, pp. 65-86, Feb. 2007.
[49] F.D. Davis, "Perceived Usefulness, Perceived Ease-of-Use, and End User Acceptance of Information Technology," MIS Quarterly, vol. 13, pp. 318-339, 1989.
[50] M.G. Morris and A. Dillon, "How User Perceptions Influence Software Use," IEEE Software, vol. 14, no. 4, pp. 58-65, July 1997.
[51] C.K. Riemenschneider, B.C. Hardgrave, and F.D. Davis, "Explaining Software Developer Acceptance of Methodologies: A Comparison of Five Theoretical Models," IEEE Trans. Software Eng., vol. 28, no. 12, pp. 1135-1145, Dec. 2002.
[52] C.B. Seaman and V.R. Basili, "Communication and Organization: An Empirical Study of Discussion in Inspection Meetings," IEEE Trans. Software Eng., vol. 24, no. 7, pp. 559-572, July 1998.
[53] V. Venkatesh, "Determinants of Perceived Ease of Use: Integrating Control, Intrinsic Motivation, and Emotion into the Technology Acceptance Model," Information Systems Research, vol. 11, pp. 342-365, 2000.
[54] V. Venkatesh and F.D. Davis, "A Model of the Antecedents of Perceived Ease of Use: Development and Test," Decision Sciences, vol. 27, pp. 451-481, 1996.
[55] A. Tversky and D. Kahneman, "Judgment under Uncertainty: Heuristics and Biases," Science, vol. 185, pp. 1124-1130, 1974.
[56] D.D. Spinellis, 31, May, 2010.
[57] Sun-Java, db_pages.getpage?page_id=320, 31, May, 2010.
[58] StataCorp "Stata Statistical Software: Release 11," College Station, StataCorp LP, 2009.
[59] S.S. Shapiro and M.B. Wilk, "An Analysis of Variance Test for Normality," Biometrika, vol. 52, pp. 591-611, 1965.
[60] X. Chen, P. Ender, M. Mitchell, and C. Wells, "Regression with Stata," reg default.htm, July 2010.
[61] C.J. Huberty and S. Olejnik, Applied MANOVA and Discriminant Analysis. Wiley-Interscience, 2006.
[62] J.P. Shaffer, "Multiple Hypothesis Testing," Ann. Rev. Psychology, vol. 46, pp. 561-584, 1995.
56 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool