[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Free access

The reuse of uses in Smalltalk programming

Published: 01 September 1996 Publication History

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.

References

[1]
AUSUBEL, D. P. 1960. The use of advance organizers in the learning and retention of meaningful verbal material. J. Educ. Psychol. 51, 267-272.
[2]
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.
[3]
BIGGERSTAFF,T.J.AND PERLIS, A. J. 1989. Software Reusability: Concepts and Models. ACM, New York, New York.
[4]
BIGGERSTAFF,T.J.AND RICHTER, C. 1987. Reusability framework, assessment, and direc-tions. IEEE Softw. 4, 2 (Mar.), 41-49.
[5]
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.
[6]
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.
[7]
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.
[8]
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.
[9]
CARROLL,J.M.,THOMAS,J.C.,AND MALHOTRA, A. 1979. A clinical-experimental analysis of design problem solving. Des. Stud. 1, 2, 84-92.
[10]
COX, B. J. 1986. Object Oriented Programming: An Evolutionary Approach. Addison-Wes-ley, Reading, Mass.
[11]
COX, B. J. 1987. Building malleable systems from software "chips." Computerworld (Mar.), 59-86.
[12]
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.
[13]
DEUTSCH, L. P. 1989. Design reuse and frameworks in the Smalltalk-80 system. In Software Reusability. Addison-Wesley, Reading, Mass., 57-72.
[14]
DIGITALK, I. 1989. Smalltalk/V PM: Object-Oriented Programming System. Digitalk Inc., Los Angeles, Calif.
[15]
ERICSSON,K.A.AND SIMON, H. A. 1980. Verbal reports as data. Psychol. Rev. 87, 215-251.
[16]
FISCHER, G. 1987. Cognitive view of reuse and redesign. IEEE Softw. 4, 3, 60-72.
[17]
FLANAGAN, J. C. 1954. The critical incident technique. Psychol. Bull. 51, 28, 28-35.
[18]
GUINDON, R. 1990. Designing the design process: Exploiting opportunistic thoughts. Hum. Comput. Interact. 5, 1, 305-344.
[19]
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.
[20]
JOHNSON,R.E.AND FOOTE, B. 1988. Designing reusable classes. J. Object-Oriented Pro-gram. 1, 2 (June/July), 22-35.
[21]
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.
[22]
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.
[23]
LINTON,M.A.,VLISSIDES,J.M.,AND CALDER, P. R. 1989. Composing user interfaces with InterViews. Computer 22, 2, 8-22.
[24]
MEYER, B. 1987. Reusability: The case for object-oriented design. IEEE Softw. 4, 2 (Mar.), 50-64.
[25]
MEYER, B. 1988. Object-Oriented Software Construction. Prentice-Hall, New York.
[26]
PRIETO-D~~AZ, R. 1991. Implementing a faceted classification for software reuse. Commun. ACM 34, 5 (May), 88-97.
[27]
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.
[28]
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.
[29]
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.
[30]
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.
[31]
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.
[32]
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.
[33]
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.
[34]
VISSER, W. 1990. More or less following a plan during design: Opportunistic deviations in specification. Int. J. Man Mach. Stud. 33, 3, 247-278.

Cited By

View all
  • (2023)Investigating the Impact of On-Demand Code Examples on Novices' Open-Ended Programming ExperienceProceedings of the 2023 ACM Conference on International Computing Education Research - Volume 110.1145/3568813.3600141(464-475)Online publication date: 7-Aug-2023
  • (2023)React example viability for efficient API learning (REVEAL): A tool to help programmers utilize incompatible code examples in React.jsJournal of Computer Languages10.1016/j.cola.2023.10120175(101201)Online publication date: Jun-2023
  • (2021)TweakIt: Supporting End-User Programmers Who Transmogrify CodeProceedings of the 2021 CHI Conference on Human Factors in Computing Systems10.1145/3411764.3445265(1-12)Online publication date: 6-May-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Computer-Human Interaction
ACM Transactions on Computer-Human Interaction  Volume 3, Issue 3
Sept. 1996
97 pages
ISSN:1073-0516
EISSN:1557-7325
DOI:10.1145/234526
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1996
Published in TOCHI Volume 3, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Smalltalk
  2. debugging into existence
  3. example-based learning
  4. reuse of uses
  5. usage context

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)93
  • Downloads (Last 6 weeks)15
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Investigating the Impact of On-Demand Code Examples on Novices' Open-Ended Programming ExperienceProceedings of the 2023 ACM Conference on International Computing Education Research - Volume 110.1145/3568813.3600141(464-475)Online publication date: 7-Aug-2023
  • (2023)React example viability for efficient API learning (REVEAL): A tool to help programmers utilize incompatible code examples in React.jsJournal of Computer Languages10.1016/j.cola.2023.10120175(101201)Online publication date: Jun-2023
  • (2021)TweakIt: Supporting End-User Programmers Who Transmogrify CodeProceedings of the 2021 CHI Conference on Human Factors in Computing Systems10.1145/3411764.3445265(1-12)Online publication date: 6-May-2021
  • (2020)Optimizing API DocumentationProceedings of the 38th ACM International Conference on Design of Communication10.1145/3380851.3416759(1-11)Online publication date: 3-Oct-2020
  • (2020)Find Unique Usages: Helping Developers Understand Common Usages2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC50065.2020.9127285(1-8)Online publication date: Aug-2020
  • (2019)How End-User Programmers Debug Visual Web-Based Programs: An Information Foraging Theory PerspectiveJournal of Computer Languages10.1016/j.cola.2019.04.003Online publication date: Apr-2019
  • (2019)Investigating whether and how software developers understand open source software licensingEmpirical Software Engineering10.1007/s10664-018-9614-924:1(211-239)Online publication date: 1-Feb-2019
  • (2018)What happened to my application? Helping end users comprehend evolution through variation managementInformation and Software Technology10.1016/j.infsof.2018.06.008103(55-74)Online publication date: Nov-2018
  • (2018)Debugging and maintaining pragmatically reused test suitesInformation and Software Technology10.1016/j.infsof.2018.05.001102(6-29)Online publication date: Oct-2018
  • (2017)Do software developers understand open source licenses?Proceedings of the 25th International Conference on Program Comprehension10.1109/ICPC.2017.7(1-11)Online publication date: 20-May-2017
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media