ABSTRACT
Software developers must modify their programs to keepup with changing requirements and designs. Often, aconceptually simple change can require numerous editsthat are similar but not identical, leading to errors andomissions. Researchers have designed programming environmentsto address this problem, but most of thesesystems are counter-intuitive and difficult to use.By applying a task-centered design process, we developeda visual tool that allows programmers to makecomplex code transformations in an intuitive manner.This approach uses a representation that aligns wellwith programmers' mental models of programming structures.The visual language combines textual and graphicalelements and is expressive enough to support a broadrange of code-changing tasks. To simplify learning thesystem, its user interface scaffolds construction and executionof transformations. An evaluation with Java programmerssuggests that the interface is intuitive, easyto learn, and effective on a representative editing task.
- XSL transformations (XSLT), version 1.0. World Wide Web Consortium, Recommendation, Nov. 1999.Google Scholar
- G. J. Badros. JavaML: a markup language for Java source code. Computer Networks, 33(1--6):159--177, June 2000. Google ScholarDigital Library
- I. D. Baxter, C. Pidgeon, and M. Mehlich. DMS: Program transformations for practical scalable software evolution. In Proc. of ICSE '04, pages 625--634, 2004. Google ScholarDigital Library
- A. F. Blackwell. SWYN: A visual representation for regular expressions. In H. Lieberman, editor, Your Wish Is My Command. Morgan Kauffman, 2001. Google ScholarDigital Library
- A. F. Blackwell and T. R. G. Green. A cognitive dimensions questionnaire optimised for users. In A. Blackwell and E. Bilotta, editors, Proc. of PPIG 13, May 2000.Google Scholar
- M. Boshernitsan. Program Manipulation via Interactive Transformations. PhD thesis, EECS Department, University of California, Berkeley, July 25 2006. Technical Report UCB/EECS-2006-100. Google ScholarDigital Library
- M. Boshernitsan and S. L. Graham. Designing an XML-based exchange format for harmonia. In Proc. of WCRE '00, pages 287--289, 2000. Google ScholarDigital Library
- S. Burson, G. B. Kotik, and L. Z. Markosian. A program transformation approach to automating software reengineering. In Proc. of ICSAC '90, pages 314--322, 1990.Google Scholar
- M. L. Collard, J. I. Maletic, and A. Marcus. Supporting document and data views of source code. In Proc. of DocEng '02, pages 34--41, 2002. Google ScholarDigital Library
- J. R. Cordy, T. R. Dean, A. J. Malton, and K. A. Schneider. Software engineering by source transformation-experience with TXL. In Proc. of SCAM '01, pages 170--180, 2001.Google ScholarCross Ref
- J. R. Cordy, C. D. Halpern-Hamu, and E. Promislow. TXL: A rapid prototyping system for programming language dialects. Comput. Lang, 16(1):97--107, 1991. Google ScholarDigital Library
- F. Detienne. Software Design -- Cognitive Aspects. Springer Verlag, 2001. Google ScholarDigital Library
- A. A. diSessa and H. Abelson. Boxer: a reconstructible computational medium. CACM, 29(9):859--868, 1986. Google ScholarDigital Library
- D. Dougherty. sed & awk. O'Reilly & Associates, Inc., 1991.Google Scholar
- M. Erwig. A visual language for XML. In Proc. of VL '00, page 47, 2000. Google ScholarDigital Library
- T. R. G. Green. Cognitive dimensions of notations. In Proc. of HCI'89, Cognitive Ergonomics, pages 443--460, 1989. Google ScholarDigital Library
- W. G. Griswold, D. C. Atkinson, and C. McCurdy. Fast, flexible syntactic pattern matching and processing. In Proc. of WPC '96, 1996. Google ScholarDigital Library
- H. Hosoya and B. C. Pierce. XDuce: A statically typed XML processing language. ACM Transactions on Internet Technology, 3(2):117--148, May 2003. Google ScholarDigital Library
- D. E. Knuth. The errors of TEX. Software- Practice and Experience, 19(7):607--681, July 1989. Google ScholarDigital Library
- D. A. Ladd and J. C. Ramming. A*: A language for implementing language processors. IEEE Transactions on Software Engineering, 21(11):894--901, Nov. 1995. Google ScholarDigital Library
- J. Landauer and M. Hirakawa. Visual AWK: a model for text processing by demonstration. In Proc. of VL '95, 1995. Google ScholarDigital Library
- R. C. Martin and R. S. Koss. Engineer notebook: An extreme programming episode. In R. C. Martin, editor, Advanced Principles, Patterns and Process of Software Development. Prentice Hall, 2001.Google Scholar
- R. C. Miller and B. A. Myers. Interactive simultaneous editing of multiple text regions. In Proc. of USENIX ATC'01, pages 161--174, 2001. Google ScholarDigital Library
- R. P. Nix. Editing by example. ACM Trans. Program. Lang. Syst., 7(4):600--621, 1985. Google ScholarDigital Library
- E. Pietriga, J.-Y. Vion-Dury, and V. Quint. VXT: A visual approach to XML transformations. In Proc. of DocEng '01, pages 1--10, 2001. Google ScholarDigital Library
- D. Roberts and J. Brant. Tools for making impossible changes. IEE Proceedings Software, 151(2):49--56, 2004.Google ScholarCross Ref
- D. Roberts, J. Brant, and R. E. Johnson. A refactoring tool for Smalltalk. Theory and Practice of Object Systems, 3(4):253--263, 1997. Google ScholarDigital Library
- E. B. Swanson. The dimensions of maintenance. In Proc. of ICSE '76, pages 492--497, 1976. Google ScholarDigital Library
- E. Visser. Program transformation with Stratego/XT. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of Lecture Notes in Computer Science, pages 216--238. Spinger-Verlag, June 2004.Google ScholarCross Ref
- R. C. Waters. Program translation via abstraction and reimplementation. IEEE Transactions on Software Engineering, 14(8):1207--1228, Aug. 1988. Google ScholarDigital Library
- I. H. Witten and D. Mo. TELS: learning text editing tasks from examples. pages 183--203, 1993. Google ScholarDigital Library
Index Terms
- Aligning development tools with the way programmers think about code changes
Recommendations
Object-oriented dataflow
VL '95: Proceedings of the 11th International IEEE Symposium on Visual LanguagesIn our efforts to develop an object-oriented visual programming language, the dataflow model of computation is extended from its traditional functional model to an object-oriented model. It is argued that the concept of subroutine in the object-oriented ...
Easing IoT development for novice programmers through code recipes
ICSE-SEET '18: Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and TrainingThe co-existence of various kinds of devices, protocols, architectures, and programming languages make Internet of Things (IoT) systems complex to develop, even for experienced programmers. Perforce, Software Engineering challenges are even more ...
From object-oriented to knowledge-based programming (NUT system development experience)
KBSE '95: Proceedings of The 10th Knowledge-Based Software Engineering ConferenceA long-term effort is described which has resulted in a knowledge-based software tool, NUT, that combines object-oriented programming with automatic program synthesis. The concept of classes has been considerably extended so that they have evolved into ...
Comments