This Article 
 Bibliographic References 
 Add to: 
Cognitive Heuristics in Software Engineering: Applying and Extending Anchoring and Adjustment to Artifact Reuse
December 2004 (vol. 30 no. 12)
pp. 873-888
Jeffrey Parsons, IEEE Computer Society
The extensive literature on reuse in software engineering has focused on technical and organizational factors, largely ignoring cognitive characteristics of individual developers. Despite anecdotal evidence that cognitive heuristics play a role in successful artifact reuse, few empirical studies have explored this relationship. This paper proposes how a cognitive heuristic, called anchoring, and the resulting adjustment bias can be adapted and extended to predict issues that might arise when developers reuse code and/or designs. The research proposes that anchoring and adjustment can be manifested in three ways: propagation of errors in reuse artifacts, failure to include requested functionality absent from reuse artifacts, and inclusion of unrequested functionality present in reuse artifacts. Results from two empirical studies are presented. The first study examines reuse of object classes in a programming task, using a combination of practicing programmers and students. The second study uses a database design task with student participants. Results from both studies indicate that anchoring occurs. Specifically, there is strong evidence that developers tend to use the extraneous functionality in the artifacts they are reusing and some evidence of anchoring to errors and omissions in reused artifacts. Implications of these findings for both practice and future research are explored.

[1] B. Cox, “Planning the Software Industrial Revolution,” IEEE Software, vol. 7, no. 6, pp. 25-33, Dec. 1990.
[2] H. Mili, F. Mili, and A. Mili, “Reusing Software: Issues and Research Direction,” IEEE Trans. Software Eng., vol. 21, no. 6, pp. 528-561, Dec. 1995.
[3] M. Morisio, M. Ezran, and C. Tully, “Success and Failure Factors in Software Reuse,” IEEE Trans. Software Eng., vol. 28, no. 4, pp. 340-357, Apr. 2002.
[4] P.W. Fach, “Design Reuse through Frameworks and Patterns,” IEEE Software, vol. 18, no. 5, pp. 71-76, Sept./Oct. 2001.
[5] M. Fowler, Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997.
[6] E. Gamma, R. Helm, R. Johnson, and J. Vissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
[7] D.C. Schmidt, “Using Design Patterns to Develop Reusable Object-Oriented Communication Software,” Comm. ACM, vol. 38, no. 10, pp. 65-76, 1995.
[8] W.B. Frakes and G. Succi, “An Industrial Study of Reuse, Quality and Productivity,” J. Systems and Software, vol. 57, no. 2, pp. 99-106, 2001.
[9] M. Griss, “Software Reuse: From Library to Factory,” IBM Systems J., vol. 32, no. 4, pp. 548-566, 1993.
[10] G. Succi, L. Benedicenti, and T. Vernazza, “Analysis of the Effects of Software Reuse on Customer Satisfaction in an RPG Environment,” IEEE Trans. Software Eng., vol. 27, no. 5, pp. 473-479, May 2001.
[11] Y. Kim and E.A. Stohr, “Software Reuse: Survey and Research Directions,” J. Management Information Systems, vol. 14, no. 4, pp. 113-147, 1998.
[12] W. Lim, “Effects of Reuse on Quality, Productivity, and Economics,” IEEE Software, vol. 11, no. 5, pp. 23-30, Oct. 1994.
[13] M.A. Rothenberger and K.J. Dooley, “A Performance Measure for Software Reuse Projects,” Decision Sciences, vol. 30, no. 4, pp. 1131-1153, 1999.
[14] R. Fichman and C.F. Kemerer, “Object Technology and Reuse: Lessons from Early Adopters,” Computer, vol. 30, no. 10, pp. 47-59, Oct. 1997.
[15] R. Fichman and C.F. Kemerer, “Incentive Compatibility and Systematic Software Reuse,” J. Systems and Software, vol. 57, no. 1, pp. 45-60, 2001.
[16] T. Love, Object Lessons: Lessons Learned in Object-Oriented Development Projects. New York: SIGS Books, 1993.
[17] W.B. Frakes and C. Terry, “Software Reuse: Metrics and Models,” ACM Computing Surveys, vol. 28, no. 2, pp. 415-435, 1996.
[18] G. Irwin, “The Role of Similarity in the Reuse of Object-Oriented Analysis Models,” J. Management Information Systems, vol. 19, no. 2, pp. 221-250, 2002.
[19] A. Sen, “The Role of Opportunism in the Software Design Reuse Process,” IEEE Trans. Software Eng., vol. 23, no. 7, pp. 418-436, July 1997.
[20] A. Mili, S. Yacoub, E. Addy, and H. Mili, “Toward an Engineering Discipline of Software Re-use,” IEEE Software, vol. 16, no. 5, pp. 22-31, Sept./Oct. 1999.
[21] S. Purao, V. Storey, and T. Han, “Improving Analysis Pattern Reuse in Conceptual Design: Augmenting Automated Processes with Supervised Learning,” Information Systems Research, vol. 14, no. 3, pp. 269-290, 2003.
[22] V. Sugumaran, M. Tanniru, and V. Storey, “Supporting Reuse in Systems Analysis,” Comm. ACM, vol. 40, no. 11, pp. 312-322, 2000.
[23] I. Jacobson, M. Griss, and P. Jonsson, “Making the Reuse Business Work,” Computer, vol. 30, no. 10, pp. 36-42, Oct. 1997.
[24] G. Lakoff, Women, Fire and Dangerous Things: What Categories Reveal about the Mind. Chicago: Univ. of Chicago Press, 1987.
[25] E. Smith and D. Medin, Categories and Concepts. Cambridge, Mass.: Harvard Univ. Press, 1981.
[26] G.S.J. Novak, “Creation of Views for Reuse of Software with Different Data Representations,” IEEE Trans. Software Eng., vol. 21, no. 12, pp. 993-1005, Dec. 1995.
[27] J. Parsons and Y. Wand, “Choosing Classes in Conceptual Modeling,” Comm. ACM, vol. 40, no. 6, pp. 63-69, 1997.
[28] S. Navathe, R. Elmasri, and J. Larson, “Integrating User Views in Database Design,” Computer, vol. 19, no. 6, pp. 50-62, June 1986.
[29] T. Ravichandran and M.A. Rothenberger, “Software Reuse Strategies and Component Markets,” Comm. ACM, vol. 46, no. 8, pp. 109-114, 2003.
[30] K. Maruyama and K.-i. Shima, “An Automatic Class Generation Mechanism by Using Method Integration,” IEEE Trans. Software Eng., vol. 26, no. 5, pp. 425-440, May 2000.
[31] J. Kim and F.J. Lerch, “Why Is Programming (Sometimes) So Difficult? Programming as Scientific Discovery in Multiple Problem Spaces,” Information Systems Research, vol. 8, no. 1, pp. 25-50, 1997.
[32] N. Maiden and A. Sutcliffe, “Exploiting Reusable Specification Through Analogy,” Comm. ACM, vol. 35, no. 4, pp. 55-64, 1992.
[33] D. Batra and S.R. Anthony, “Novice Errors in Conceptual Database Design,” European J. Information Systems, vol. 3, no. 1, pp. 57-69, 1994.
[34] S. Plous, The Psychology of Judgment and Decision Making. New York: McGraw-Hill, 1993.
[35] M.E. Schweitzer and G.P. Cachon, “Decision Bias in the Newsvendor Problem with a Known Demand Distribution: Experimental Evidence,” Management Science, vol. 46, no. 2, pp. 404-420, 2000.
[36] J.T. Buchanan and J.L. Corner, “The Effects of Anchoring in Interactive MCDM Solutions Methods,” Computers and Operations Research, vol. 24, no. 10, pp. 907-918, 1997.
[37] J.F. George, K. Duffy, and M. Ahuja, “Countering the Anchoring and Adjustment Bias with Decision Support Systems,” Decision Support Systems, vol. 29, pp. 195-206, 2000.
[38] V. Venkatesh, “Determinants of Perceived Ease of Use: Integrating Control, Intrinsic Motivation, and Emotion into the Technology Acceptance Model,” Information Systems Research, vol. 11, no. 4, pp. 342-365, 2000.
[39] V. Venkatesh and M.G. Morris, “Why Don't Men Ever Stop to Ask for Directions? Gender, Social Influence, and Their Role in Technology Acceptance and Usage Behavior,” MIS Quarterly, vol. 24, no. 1, pp. 115-139, 2000.
[40] C.B. Mervis and E. Rosch, “Categorization of Natural Objects,” Ann. Rev. of Psychology, vol 32, pp. 89-115, 1981.
[41] J.R. Bettman and M. Sujan, “Effects of Framing on Evaluation of Comparable and Noncomparable Alternatives by Expert and Novice Consumers,” J. Consumer Research, vol. 14, pp. 141-154, 1987.
[42] A. Tversky and D. Kahneman, “Judgment under Uncertainty: Heuristics and Biases,” Science, vol. 185, no. 4157, pp. 1124-1131, 1974.
[43] D. Farchamps, “Organizational Factors and Reuse,” IEEE Software, vol. 11, no. 5, pp. 31-41, Oct. 1994.
[44] M. Pittman, “Lessons Learned in Managing Object-Oriented Development,” IEEE Software, vol. 10, no. 1, pp. 43-53, Feb. 1993.
[45] S. Webb and J. MacMillian, “Cognitive Bias in Software Engineering,” Comm. ACM, vol. 38, no. 6, pp. 57-69, 1995.
[46] N. Cliff, Analyzing Multivariate Data. San Diego, Calif.: Harcourt Brace Jova novich, 1987.
[47] R. Harris, A Primer of Multivariate Statistics. New York: Academic Press, 1975.
[48] E.M. Rogers, Diffusion of Innovations, fourth ed. New York: The Free Press, 1995.
[49] B.W. Boehm and P.N. Papaccio, “Understanding and Controlling Software Costs,” IEEE Trans. Software Eng., vol. 14, no. 10, pp. 1462-1477, Oct. 1988.
[50] C.W. Emory, Business Research Methods. Homewood, Ill.: Irwin, 1980.
[51] B.P. Lientz and E.B. Swanson, “Discovering Issues in Software Maintenance,” Data Management, vol. 16, no. 10, pp. 15-24, 1978.
[52] B.A. Kitchenham, S.L. Pflegger, L.M. Pickard, P.W. Jones, D.C. Hoaglin, K. El-Eman, and J. Rosenberg, “Preliminary Guidelines for Empirical Research in Software Engineering,” IEEE Trans. Software Eng., vol. 28, no. 8, pp. 721-734 Aug. 2002.
[53] S.L. Pfleeger, Software Engineering Theory and Practice, second ed. Upper Saddle River, N.J.: Prentice Hall, 2001.
[54] V.R. Basili and F. Lanubile, “Building Knowledge through Families of Experiments,” IEEE Trans. Software Eng., vol. 25, no. 4, pp. 456-473, July/Aug. 1999.

Index Terms:
Software psychology, requirements/specifications, reusable software, reusable libraries, reuse models, human factors in software design.
Jeffrey Parsons, Chad Saunders, "Cognitive Heuristics in Software Engineering: Applying and Extending Anchoring and Adjustment to Artifact Reuse," IEEE Transactions on Software Engineering, vol. 30, no. 12, pp. 873-888, Dec. 2004, doi:10.1109/TSE.2004.94
Usage of this product signifies your acceptance of the Terms of Use.