Abstract
Software reuse, a long-standing and refractory issue in software technology, has been specifically emphasized as an advantage of the object-oriented programming paradigm. We report an empirical study of expert Smalltalk programmers reusing user interface classes in small graphical applications. Our primary goal was to develop a qualitative characterization of expert reuse strategies that could be used to identify requirements for teaching and supporting reuse programming. A secondary interest was to demonstrate to these experts the Reuse View Matcher—a prototype reuse tool—and to collect some initial observations of this tool in use during reuse programming. We observed extensive “reuse of uses” in the programmers' work: they relied heavily on code in expample applications that provided an implicit specification for reuse of the target class. We called this implicit specification a “usage context.” The programmers searched for relevant usage contexts early. They repeatedly evaluated the contextualized information to develop solution plans, and they borrowed and adapted it when the sample context suited their immediate reuse goals. The process of code development was highly dynamic and incremental; analysis and implementation were tightly interleaved, frequently driven by testing and debugging. These results are considered in terms of the tradeoffs that inhere in the reuse of uses and the teaching and tool support that might improve the efficiency and accuracy of this approach to reuse.
- AUSUBEL, D. P. 1960. The use of advance organizers in the learning and retention of meaningful verbal material. J. Educ. Psychol. 51, 267-272.Google Scholar
- BELLAMY,R.K.E.AND CARROLL, J. M. 1990. Redesign by design. In Proceedings of Human-Computer Interaction: Interact '90 (Cambridge, U.K., Aug. 27-31). North-Holland, Amsterdam, 199-205. Google Scholar
- BIGGERSTAFF,T.J.AND PERLIS, A. J. 1989. Software Reusability: Concepts and Models. ACM, New York, New York. Google Scholar
- BIGGERSTAFF,T.J.AND RICHTER, C. 1987. Reusability framework, assessment, and direc-tions. IEEE Softw. 4, 2 (Mar.), 41-49.Google Scholar
- CARROLL,J.M.AND ROSSON, M. B. 1987. The paradox of the active user. In Interfacing Thought: Cognitive Aspects of Human-Computer Interaction. MIT Press, Cambridge, Mass., 80-111. Google Scholar
- CARROLL,J.M.AND ROSSON, M. B. 1991. Deliberated evolution: Stalking the View Matcher in design space. Hum. Comput. Interact. 6, 3-4, 281-318.Google Scholar
- CARROLL,J.M.,KELLOGG,W.A.,AND ROSSON, M. B. 1991. The task-artifact cycle. In Designing Interaction: Psychology at the Human-Computer Interface. Cambridge University Press, New York, 74-102. Google Scholar
- CARROLL,J.M.,SINGER,J.A.,BELLAMY,R.K.E.,AND ALPERT, S. R. 1990. A View Matcher for learning Smalltalk. In Proceedings of Human Factors in Computing Systems (CHI '90). ACM, New York, 431-438. Google Scholar
- CARROLL,J.M.,THOMAS,J.C.,AND MALHOTRA, A. 1979. A clinical-experimental analysis of design problem solving. Des. Stud. 1, 2, 84-92.Google Scholar
- COX, B. J. 1986. Object Oriented Programming: An Evolutionary Approach. Addison-Wes-ley, Reading, Mass. Google Scholar
- COX, B. J. 1987. Building malleable systems from software "chips." Computerworld (Mar.), 59-86.Google Scholar
- DE~ TIENNE, F. 1991. Reasoning from a schema and from an analog in software code reuse. In Proceedings of Workshop on Empirical Studies of Programmers (ESP IV). Ablex, Norwood, N.J., 5-22.Google Scholar
- DEUTSCH, L. P. 1989. Design reuse and frameworks in the Smalltalk-80 system. In Software Reusability. Addison-Wesley, Reading, Mass., 57-72. Google Scholar
- DIGITALK, I. 1989. Smalltalk/V PM: Object-Oriented Programming System. Digitalk Inc., Los Angeles, Calif.Google Scholar
- ERICSSON,K.A.AND SIMON, H. A. 1980. Verbal reports as data. Psychol. Rev. 87, 215-251.Google Scholar
- FISCHER, G. 1987. Cognitive view of reuse and redesign. IEEE Softw. 4, 3, 60-72.Google Scholar
- FLANAGAN, J. C. 1954. The critical incident technique. Psychol. Bull. 51, 28, 28-35.Google Scholar
- GUINDON, R. 1990. Designing the design process: Exploiting opportunistic thoughts. Hum. Comput. Interact. 5, 1, 305-344.Google Scholar
- HELM,R.AND MAAREK, Y. S. 1991. Integrating information retrieval and domain specific approaches for browsing and retrieval in object-oriented class libraries. In Proceedings of Object-Oriented Programming, Systems and Applications. ACM, New York, 47-61. Google Scholar
- JOHNSON,R.E.AND FOOTE, B. 1988. Designing reusable classes. J. Object-Oriented Pro-gram. 1, 2 (June/July), 22-35.Google Scholar
- LANGE,B.M.AND MOHER, T. G. 1989. Some strategies of reuse in an object-oriented programming environment. In Proceedings of Human Factors in Computing Systems, CHI '89 Conference. ACM, New York, 69-74. Google Scholar
- LEWIS,J.A.,HENRY,S.M.,KAFURA,D.G.,AND SCHULMAN, R. S. 1991. An empirical study of the object-oriented paradigm and software reuse. In Proceedings of Object-Oriented Pro-gramming, Systems and Applications. ACM, New York, 184-196. Google Scholar
- LINTON,M.A.,VLISSIDES,J.M.,AND CALDER, P. R. 1989. Composing user interfaces with InterViews. Computer 22, 2, 8-22. Google Scholar
- MEYER, B. 1987. Reusability: The case for object-oriented design. IEEE Softw. 4, 2 (Mar.), 50-64.Google Scholar
- MEYER, B. 1988. Object-Oriented Software Construction. Prentice-Hall, New York. Google Scholar
- PRIETO-D~~AZ, R. 1991. Implementing a faceted classification for software reuse. Commun. ACM 34, 5 (May), 88-97. Google Scholar
- RAJ,R.K.AND LEVY, H. M. 1989. A compositional model of software reuse. In Proceedings of European Conference on Object-Oriented Programming (ECOOP '89). British Computer Society, London, U.K., 3-24.Google Scholar
- REDMILES, D. F. 1993. Reducing the variability of programmers' performance through explained examples. In Proceedings of Conference on Human Factors in Computing Systems: INTERCHI '93. ACM, New York, 67-73. Google Scholar
- ROSSON,M.B.AND CARROLL, J. M. 1993. Active programming strategies in reuse. In Proceedings of ECOOP '93:Object-Oriented Programming. Springer-Verlag, Berlin, 4-18. Google Scholar
- ROSSON,M.B.,CARROLL,J.M.,AND BELLAMY, R. K. E. 1990. Smalltalk scaffolding: A case study in minimalist instruction. In Proceedings of Human Factors in Computing Systems, CHI '90 Conference. ACM, New York, 423-429. Google Scholar
- ROSSON,M.B.,CARROLL,J.M.,AND SWEENEY, C. 1991. A View Matcher for reusing Smalltalk classes. In Proceedings of Human Factors in Computing Systems (CHI '91). ACM, New York, 277-284. Google Scholar
- SINGLEY,M.K.AND CARROLL, J. M. 1990. Minimalist planning tools in an instructional system for Smalltalk. In Proceedings of INTERACT '90. North-Holland, Amsterdam, 932- 944. Google Scholar
- TAENZER, D., GANTI, M., AND PODAR, S. 1989. Problems in object-oriented software reuse. In Proceedings of European Conference on Object-Oriented Programming (ECOOP '89). British Computer Society, Cambridge, U.K., 25-38.Google Scholar
- VISSER, W. 1990. More or less following a plan during design: Opportunistic deviations in specification. Int. J. Man Mach. Stud. 33, 3, 247-278. Google Scholar
Index Terms
- The reuse of uses in Smalltalk programming
Recommendations
Literate Smalltalk Programming Using Hypertext
The problem examined in this paper is: How and to what extent can hypertext support literate programming in Smalltalk? In order to examine this question we have created a hypertext system which allows us to write Smalltalk code and documentation, and to ...
Some remarks on teaching of programming
CompSysTech '04: Proceedings of the 5th international conference on Computer systems and technologiesIn this paper we give some remarks on the problem of teaching programming for the first year students at the undergraduate level. The remarks are based on the experience gained by the author through several years of teaching programming at the Warsaw ...
A different kind of programming languages course
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applicationsThe complexity of the well-explored regions of the programming language design space has increased substantially in the last twenty-five years with the addition of a large number of object-oriented programming languages (OOPLs). This design domain was ...
Comments