This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
The Role of Opportunism in the Software Design Reuse Process
July 1997 (vol. 23 no. 7)
pp. 418-436

Abstract—Software design involves translating a set of task requirements into a structured description of a computer program that will perform the task. A software designer can use design schema, collaborative design knowledge, or can reuse design artifacts. Very little has been done to include reuse of design artifacts in the software development life cycle, despite tremendous promises of reuse. As a result, this technique has not seen widespread use, possibly due to a lack of cognitive understanding of the reuse process. This research explores the role of a specific cognitive aspect, opportunism, in demand-side software reuse. We propose a cognitive model based on opportunism that describes the software design process with reuse. Protocol analysis verifies that the software design with reuse is indeed opportunistic and reveals that some software designers employ certain tasks of the reuse process frequently. Based on these findings, we propose a reuse support system that incorporates blackboard technology and existing reuse library management system.

[1] W.W. Agresti and F.E. McGarry, "The Minnowbrook Workshop on Software Reuse: A Summary Report," Tutorial, Software Reuse: Emerging Technology, W. Tracz, ed., Los Alamitos, Calif., IEEE CS Press, 1987.
[2] U. Apte, C.S. Sankar, M. Thakur, and J. Turner, "Reusability Strategy for Development of Information Systems: Implementation Experience of a Bank," MIS Quarterly, vol. 14, no. 4, pp. 421-431, Dec. 1990.
[3] R.D. Banker and R.J. Kauffman, "Reuse and Productivity in Integrated Computer-Aided Software Engineering: An Empirical Study," MIS Quarterly, vol. 15, no.3, Sept. 1991, pp. 375-401.
[4] I. Benbasat, The Information Systems Reseach Challenge: Experimental Research Methods.Boston: Harvard Business School Press, 1989.
[5] T. Biggerstaff and C. Richter, "Reusability Framework, Assessment, and Directions," IEEE Software, pp. 41-49, Mar. 1987.
[6] M. Bouwman, "Expert vs. Novice Decision Making in Accounting: A Summary," Accounting Organizations and Society, vol. 9, pp. 325-327, 1984.
[7] B.A. Burton, R.W. Aragon, and S.A. Bailey, "The Reusable Software Library," IEEE Software, pp. 25-33, July 1987.
[8] J. Conklin and M. Begeman, "gIBIS: A Tool for Exploratory Policy Discussion," Proc. CSCW 88, ACM Press, New York, 1988, pp. 140-152.
[9] B. Curtis, "Cognitive Issues in Reusing Software Artifacts," Software Reusability: Vol. II Applications and Experience, T.J. Biggerstaff and A.J. Perlis, eds., pp. 269-287.New York: ACM Press, 1989.
[10] M.J. Davis and H.G. Hawley, "Reuse of Software Process and Product through Knowledge-Based Adaptation," Proc. Third Int'l Conf. Software Reusability, pp. 44-52,Rio de Janerio, Brazil, Nov. 1994.
[11] Blackboard Systems. R. Engelmore and T. Morgan, eds., New York: Addison-Wesley, 1988.
[12] W.B. Frakes and T.P. Pole, "Proteus: A Reuse Library System that Supports Multiple Representation Methods," ACM SIGIR Forum, vol. 24, pp. 43-55, 1990.
[13] W.B. Frakes and T.P. Pole, "An Empirical Study of Representation Methods for Reusable Components," IEEE Trans. Software Eng., Aug. 1994, pp. 617-630.
[14] R. Guindon, “Knowledge Exploited by Experts during Software Systems Design,” Int’l J. Man-Machine Studies, Vol. 33, 1990, pp. 279-182.
[15] R. Guindon, "Requirements and Design of DesignVision, An Object-Oriented Graphical Interface to an Intelligent Software Design Assistant," Proc. CHI, pp. 499-506,Monterey, Calif., May 1992.
[16] B. A. Hayes–Roth,“Blackboard for control,”Artificial Intelligence,vol. 26, pp. 251–321, 1985.
[17] B. Hayes-Roth and R. Hayes-Roth, "A Cognitive Model of Planning," Cognitive Science, vol. 3, pp. 275-310, 1979.
[18] "IEF Basics Handbook for the Windows Operating System," Texas Instruments, 1993.
[19] R. Jeffries, A.A. Turner, P.G. Polson, and M.E. Atwood, "The Processes Involved in Designing Software," Cognitive Skills and Their Acquisition, J.R. Anderson, ed. Hillsdale, N.J.: Lawrence Erlbaum Associates, 1981.
[20] C. Jones, Economics of Software Reuse Computer, vol. 27, pp. 106-107, July 1994.
[21] E. Kant and A. Newell, "Problem-Solving Techniques for the Design of Algorithms," Information Processing and Management, vol. 28, no. 1, pp. 97-118, 1984.
[22] S. Katz,C. Richter,, and K.-S. The,“PARIS: A system for reusing partially interpreted schemas,” Proc. Ninth Int’l Conf. on Software Eng., pp. 377-385, 1987.
[23] F.N. Kerlinger, Foundations of Behavioral Research.Fort Worth, Texas: Holt, Rinehart, and Winston, 1986.
[24] J. Kim and F.J. Lerch, "Towards a Model of Cognitive Process in Logical Design: Comparing Object-Oriented and Traditional Functional Decomposition Software Methodologies," Proc. CHI,Monterey, Calif., pp. 489-498, May 1992.
[25] J.L. Kolodner, Case-Based Reasoning, Morgan Kaufmann, San Francisco, Calif., 1993.
[26] S. Komiya, "A Model for the Recording and Reuse of Software Design Decisions and Decision Rationale," Proc. Third Int'l Conf. Software Reusability, pp. 200-201,Rio de Janerio, Brazil, Nov. 1994.
[27] N. Maiden, "Human Issues in Software Reuse," Integrated Software Reuse: Management and Techniques, P. Walton and N. Maiden, eds., Brookfield, Vermont: Ashgate Publishers, 1993.
[28] N.A. Maiden and A. Sutcliffe,“People-oriented software reuse: the very thought,” Proc. Second Int’l Workshop on Software Reuse, Computer, pp. 176-185,PressLucca, Italy March24-26, 1993.
[29] A. MacLean, R.M. Young, and V.M.E. Bellotti et al., , "Questions, Options, and Criteria: Elements of Design Space Analysis, Human-Computer Interaction, Special Issue on Design Rationale, J.M. Carroll and T.P. Moran, eds., vol. 6, nos. 3/4, 1991.
[30] J.M. Moore and S.C. Bailin, "Domain Analysis Framework for Reuse," Domain Analysis and Software Systems Modeling, R. Prieto-Diaz and G. Arango, eds., Los Alamitos, Calif.: IEEE CS Press, 1993.
[31] J.M. Morel and Jean Faget,“The REBOOT environment,” Selected Papers from the 2nd Int’l Workshop on Software Reusability Advances in Software, pp. 80-88,ReuseLucca, Italy, March24-26, 1993, IEEE CS Press.
[32] A. Newell and H. Simon, "Human Problem Solving.Englewood Cliffs, N.J.: Prentice Hall, 1972.
[33] J. Neighbors, "The DRACO Approach to Constructing Software from Reusable Components," IEEE Trans. Software Eng., vol. 10, no. 5, pp. 564-574, Sept. 1984.
[34] L. Raschid,T. Sellis, and C.-C. Lin,"Exploiting concurrency in a DBMS implementation for production systems," Technical Report UMIACS-TR-89-5, Univ. of Maryland, Jan. 1989.
[35] R. Prieto-Diaz and G. Arango, Eds.,Domain Analysis and Software Systems Modeling.Los Alamitos, CA: IEEE Computer Society Press, 1991.
[36] E. Soloway and K. Ehrlich, "Empirical Studies of Programming Knowledge," IEEE Trans. Software Eng, vol. 18, no. 5, pp. 595-609, Sept. 1984.
[37] A. Sutcliffe, "Software Reuse: State of the Art and Survey of Technical Approaches," Integrated Software Reuse: Management and Techniques, P. Walton and N. Maiden, eds., Brookfield, Vermont, Ashgate Publishers, 1993.
[38] W.J. Tracz, "Computer Programming and the Human Thought Process," Software-Practice and Experience, vol. 9, pp. 127-137, 1979.
[39] W.J. Tracz, "Software Reuse Myths," ACM SIGSOFT Software Eng. Notes, pp. 17-21, Jan. 1988.
[40] W. Tracz, Ed.,Software Reuse: Emerging Technology.Los Alamitos, CA: IEEE Computer Society Press, 1991.
[41] S.N. Woodfield, D.W. Embley, and D.T. Scott, "Can Programmers Reuse Software," IEEE Software, pp. 52-79, July 1987.
[42] M.W. Van Someren, Y.F. Barnard, and J.A.C. Sandberg, The Think Aloud Method: A Practical Guide to Modeling Cognitive Processes.Boston: Academic Press, 1994.

Index Terms:
Software design, cognitive model, cognitive study, software reuse, reusability, opportunism, reuse library managers.
Citation:
Arun Sen, "The Role of Opportunism in the Software Design Reuse Process," IEEE Transactions on Software Engineering, vol. 23, no. 7, pp. 418-436, July 1997, doi:10.1109/32.605760
Usage of this product signifies your acceptance of the Terms of Use.