This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
The Amulet Environment: New Models for Effective User Interface Software Development
June 1997 (vol. 23 no. 6)
pp. 347-365

Abstract—The Amulet user interface development environment makes it easier for programmers to create highly-interactive, graphical user interface software for Unix, Windows and the Macintosh. Amulet uses new models for objects, constraints, animation, input, output, commands, and undo. The object system is a prototype-instance model in which there is no distinction between classes and instances or between methods and data. The constraint system allows any value of any object to be computed by arbitrary code and supports multiple constraint solvers. Animations can be attached to existing objects with a single line of code. Input from the user is handled by "interactor" objects which support reuse of behavior objects. The output model provides a declarative definition of the graphics and supports automatic refresh. Command objects encapsulate all of the information needed about operations, including support for various ways to undo them. A key feature of the Amulet design is that all graphical objects and behaviors of those objects are explicitly represented at run-time, so the system can provide a number of high-level built-in functions, including automatic display and editing of objects, and external analysis and control of interfaces. Amulet integrates these capabilities in a flexible and effective manner.

[1] C. Ahlberg, C. Williamson, and B. Shneiderman, “Dynamic Queries for Information Exploration: An Implementation and Evaluation,” Proc. ACM CHI Int'l Conf. Human Factors in Computing, pp. 619-626, 1992.
[2] G. Avrahami, K.P. Brooks, and M.H. Brown, "A Two-View Approach to Constructing User Interfaces," Proc. SIGGRAPH'89, pp. 137-146, Computer Graphics, Boston, Mass., July 1989.
[3] T. Berlage, "A Selective Undo Mechanism for Graphical User Interfaces Based on Command Objects," ACM Trans. Computer Human Interaction, vol. 1, no. 3, pp. 269-29, 1994.
[4] C. Chambers, D. Ungar, and E. Lee, "An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes," Sigplan Notices, ACM Conf. Object-Oriented Programming; Systems Languages and Applications; OOPSLA'89, vol. 24, no. 10, pp. 49-70, 1989.
[5] B. Chang and D. Ungar, "Animation: From Cartoons to the User Interface," ACM SIGGRAPH Symp. User Interface Software and Technology,Atlanta, Ga., Proc. UIST'93, pp. 45-55, Nov. 1993.
[6] M. Gleicher, "A Graphics Toolkit Based on Differential Constraints," ACM SIGGRAPH Symp. User Interface Software and Technology,Atlanta, Ga., Proc. UIST'93, pp. 109-120, Nov. 1993.
[7] R.D. Hill, T. Brinck, S.L. Rohall, J.F. Patterson, and W. Wilner, "The Rendezvous Architecture and Language for Constructing Multiuser Applications," ACM Trans. Computer-Human Interaction, vol. 1, no. 2,. pp. 81-125, 1994.
[8] S.E. Hudson, A System for Efficient and Flexible One-Way Constraint Evaluation in C++, Graphics Visualizaton and Usability Center, College of Computing, Georgia Inst. of Technology, Report 93-15, Apr. 1993.
[9] S.E. Hudson and I. Smith, "Ultra-Lightweight Constraints". ACM SIGGRAPH Symp. User Interface Software and Technology,Seattle, Wash., Proc. UIST'96, pp. 147-155, Nov, 1996. System available from http://www.cc.gatech.edu/gvu/ui/subarctic/.
[10] S.E. Hudson and J.T. Stasko, "Animation Support in a User Interface Toolkit: Flexible, Robust, and Reusable Abstractions," ACM SIGGRAPH Symp. User Interface Software and Technology,Atlanta, Ga., Proc. UIST'93, pp. 57-67, Nov. 1993.
[11] D.S. Kosbie and B.A. Myers, "Extending Programming by Demonstration with Hierarchical Event Histories," Human-Computer Interaction: Fourth Int'l Conf. EWHCI'94, Lecture Notes in Computer Science, vol. 876, pp. 128-139.Berlin: Springer-Verlag, 1994.
[12] G.E. Krasner and S.T. Pope, "A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk," J. Object Oriented Programming, pp. 26-49, Aug./Sept. 1988.
[13] J. Landay and B.A. Myers, "Interactive Sketching for the Early Stages of User Interface Design," Human Factors in Computing Systems, Proc. SIGCHI'95,Denver, Col., pp. 43-50, May 1995.
[14] J.A. Landay and B.A. Myers, "Extending an Existing User Interface Toolkit to Support Gesture Recognition," Human Factors in Computing Systems, Adjunct Proc. INTERCHI'93,Amsterdam, The Netherlands, pp. 91-92, Apr. 1993.
[15] M.A. Linton, J.M. Vlissides, and P.R. Calder, Composing User Interfaces With InterViews IEEE Software, vol. 22, no. 2, pp. 8-22, 1989.
[16] R.G. McDaniel, "Improving Communication in Programming-by-Demonstration," Conf. Companion for CHI'96: Human Factors in Computing Systems,Vancouver, BC, Canada, pp. 55-56, Apr. 1996.
[17] B.A. Myers, "A New Model for Handling Input," ACM Trans. Information Systems. vol. 8, no. 3, pp. 289-320, 1990.
[18] B.A. Myers, "User Interface Software Tools," ACM Trans. Computer Human Interaction, vol. 2, no. 1, pp. 64-103, 1995.
[19] B.A. Myers et al., The Amulet V3.0 Reference Manual. Carnegie Mellon Univ., Computer Science Dept., CMU-CS-95-166-R2, Mar. 1997. System available from http://www.cs.cmu.edu/~amulet.
[20] B.A. Myers, D. Giuse, and B. Vander Zanden, "Declarative Programming in a Prototype-Instance System: Object-Oriented Programming without Writing Methods," ACM Conf. Object-Oriented Programming; Systems Languages and Applications, OOPSLA'92, Sigplan Notices, vol. 27, no. 10, pp. 184-200, 1992.
[21] B.A. Myers et al., "Garnet: Comprehensive Support for Graphical, Highly-Interactive User Interfaces," Computer, vol. 23, no. 11, pp. 71-85, 1990.
[22] B.A Myers and D. Kosbie, "Reusable Hierarchical Command Objects," Proc. CHI'96: Human Factors in Computing Systems,Vancouver, BC, Canada, pp. 260-267, Apr. 1996.
[23] B.A. Myers, R.C. Miller, R. McDaniel, and A. Ferrency, "Easily Adding Animations to Interfaces Using Constraints," ACM Symp. User Interface Software and Technology, Proc. UIST'96, Seattle, Wash., pp. 119-128, Nov. 1996.
[24] B.A. Myers and M.B. Rosson, "Survey on User Interface Programming," Human Factors in Computing Systems, Proc. SIGCHI'92, pp. 195-202, 1992.
[25] A.J. Palay et al. "The Andrew Toolkit—An Overview," Proc. Winter Usenix Technical Conf.,Dallas, Tex., pp. 9-21, Feb. 1988.
[26] R. Pausch, N.R. II Young, and R. DeLine, "SUIT: The Pascal of User Interface Toolkits," ACM Symp. User Interface Software and Technology, Proc. UIST'91, Hilton Head, S.C., pp. 117-125, Nov. 1991.
[27] D. Rubin, “Specifying Gestures by Examples,” Proc. Computer Graphics, vol. 25, no. 4, pp. 329-337, July 1991.
[28] M. Sannella, "SkyBlue: A Multi-Way Local Propagation Constraint Solver for User Interface Construction." Proc. Seventh Ann. ACM Symp. User Interface Software and Technology, pp. 137-146,Marina del Rey, Calif., Nov. 1994.
[29] B. Vander Zanden, "An Incremental Algorithm for Satisfying Hierarchies of Multi-way, Dataflow Constraints," ACM Trans. Program Laanguage and System, vol. 18, no. 1, pp. 30-72, 1996.
[30] B. Vander Zanden, B.A. Myers, D. Giuse, and P. Szekely, "Integrating Pointer Variables into One-Way Constraint Models," ACM Trans. Computer Human Interaction. vol. 1, no. 2, pp. 161-213, 1994.
[31] J.M. Vlissides and M.A. Linton, "Unidraw: A Framework for Building Domain-Specific Graphical Editors," ACM Trans. Information Systems, vol. 8, no. 3, pp. 204-236, 1990.
[32] D. Wilson, Programming with MacApp.Reading, Mass.: Addison-Wesley, 1990.

Index Terms:
Toolkits, user interface tools, user interface development environments, user interface management systems (UIMSs).
Citation:
Brad A. Myers, Richard G. McDaniel, Robert C. Miller, Alan S. Ferrency, Andrew Faulring, Bruce D. Kyle, Andrew Mickish, Alex Klimovitski, Patrick Doane, "The Amulet Environment: New Models for Effective User Interface Software Development," IEEE Transactions on Software Engineering, vol. 23, no. 6, pp. 347-365, June 1997, doi:10.1109/32.601073
Usage of this product signifies your acceptance of the Terms of Use.