This Article 
 Bibliographic References 
 Add to: 
A Component- and Message-Based Architectural Style for GUI Software
June 1996 (vol. 22 no. 6)
pp. 390-406

Abstract—While a large fraction of application code is devoted to graphical user interface (GUI) functions, support for reuse in this domain has largely been confined to the creation of GUI toolkits ("widgets"). We present a novel architectural style directed at supporting larger grain reuse and flexible system composition. Moreover, the style supports design of distributed, concurrent applications. Asynchronous notification messages and asynchronous request messages are the sole basis for intercomponent communication. A key aspect of the style is that components are not built with any dependencies on what typically would be considered lower-level components, such as user interface toolkits. Indeed, all components are oblivious to the existence of any components to which notification messages are sent. While our focus has been on applications involving graphical user interfaces, the style has the potential for broader applicability. Several trial applications using the style are described.

[1] D. Batory and S. O'Malley, "The Design and Implementation of Hierarchical Software Systems with Reusable Components," ACM TOSEM, pp. 355-398, Oct. 1992.
[2] K. Brockschmidt, Inside OLE 2. Microsoft Press, 1994.
[3] M.R. Cagan, "The HP SoftBench Environment: An Architecture for a New Generation of Software Tools." Hewlett-Packard J., vol. 41, no. 3, pp. 36-47, June 1990.
[4] J. Coutaz, "Architectural Design for User Interfaces." Proc. third European Software Engineering Conf., ESEC '91, pp. 7-22,Milan, Italy, Oct. 1991.
[5] G. Fischer, A. Girgensohn, K. Nakakoji, and D. Redmiles, "Supporting Software Designers with Integrated Domain-Oriented Design Environments," IEEE Trans. Software Eng., pp. 511-522, vol. 18, June 1992.
[6] G. Fischer, A.C. Lemke, T. Mastaglio, and A.I. Morch, "Critics: An Emerging Approach to Knowledge-Based Human-Computer Interaction," Int'l. J. Man-Machine Studies, vol. 35, no. 5, pp. 695-721, Nov. 1991.
[7] D. Garlan et al., "Exploiting Style in Architectural Design Environments," ACM SIGSOFT, pp. 175-188, 1994.
[8] D. Garlan and M. Shaw, An Introduction to Software Architecture: Advances in Software Engineering and Knowledge Engineering, vol. 1, World Scientific Publishing, 1993.
[9] J.A. Goguen, "Reusing and Interconnecting Software Components," Computer, Feb. 1986.
[10] M.M. Gorlick and R.R. Razouk, "Using Weaves for Software Construction and Analysis," Proc. 13th Int'l. Conf. Software Engineering, pp. 23-34,Austin, TX, May 1991.
[11] ParcPlace Systems Inc., VisualWorks 2.0 User's Guide.Sunnyvale, Calif., 1994.
[12] A. Julienne and B. Holtz, Tooltalk and Open Protocols: Inter-Application Communication. SunSoft Press/Prentice Hall, Apr. 1993.
[13] R. Kadia, "Issues Encountered in Building a Flexible Software Development Environment: Lessons Learned From the Arcadia Project," Proc. ACM SIGSOFT '92: Fifth Symp. Software Development Environments, Tyson's Corner, VA, pp. 169-180, Dec. 1992.
[14] R. Kazman et al., "SAAM: A Method for Analyzing the Properties of Software Architectures," Proc. Int'l Conf. Software Eng., IEEE CS Press, Los Alamitos, Calif., 1984, pp. 81-90.
[15] 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.
[16] A. Lemke and G. Fischer, "A Cooperative Problem Solving System for User Interface Design," Eighth Nat'l Conf. Artificial Intelligence, pp. 479-484, AAAI, Boston, Mass., July 1990.
[17] M.J. Maybee, D.H. Heimbigner, and L.J. Osterweil, "Multilanguage Interoperability in Distributed Systems: Experience Report," Proc. Eighteenth Int'l Conf. Software Engineering,Berlin, Germany, Mar. 1996. Also issued as CU Technical Report CU-CS-782-95.
[18] N. Medvidovic, "Formal Definition of the Chiron-2 Software Architectural Style," UCI-ICS Technical Report UCI-ICS-95-24, Dept. of Information and Computer Science, Univ. of Calif., Irvine, July 1995.
[19] B.A. Myers, "Encapsulating Interactive Behaviors," Proc. Conf. Human Factors in Computing Systems, pp. 319-324,Austin, May 1989. Assoc. Computing Machinery.
[20] R. Orfali, D. Harkey, and J. Edwards, The Essential Distributed Objects Survival Guide. John Wiley&Sons, 1996.
[21] J. Palsberg and M.I. Schwartzbach, "Type Substitution for Object-Oriented Programming," Proc. ACM Conf. Object-Oriented Programming: Systems, Languages, and Applications/European Conf. Object-Oriented Programming, pp. 151-160,Ottawa, Canada, Oct. 1990.
[22] J. Palsberg and M. Schwartzbach, “Object-Oriented Type Inference,” Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, pp. 146–161, Oct. 1991.
[23] J. Palsberg and M.I. Schwartzbach, "Three Discussions on Object-Oriented Typing," ACM SIGPLAN OOPS Messenger, vol. 3, no. 2, pp. 31-38, 1992.
[24] D. E. Perry and A. L. Wolf,“Foundations for the study of software architecture,”inACM SIGSOFT Software Eng. Notes, Oct. 1992, vol. 17, no. 4, pp. 40–52.
[25] G.E. Pfaff, ed., User Interface Management Systems. Seeheim, FRG: Eurographics, Springer-Verlag, Nov. 1983.
[26] S.P. Reiss, "Connecting Tools Using Message Passing in the Field Environment," IEEE Software, vol. 7, no. 4, pp. 57-66, July 1990.
[27] J.E. Robbins and D.F. Redmiles, "Software Architecture Design from the Perspective of Human Cognitive Needs," Proc. Calif. Software Symp.,Los Angeles, CA, Apr. 1996.
[28] J.E. Robbins, E.J. Whitehead Jr., N. Medvidovic, and R.N. Taylor, "A Software Architecture Design Environment for Chiron-2 Style Architectures." Arcadia Technical Report UCI-95-01, Univ. of Calif., Irvine, Jan. 1995.
[29] 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.
[30] R.W. Scheifler and J. Gettys, "The X Window System." ACM Graphics, vol. 5, no. 2, Apr. 1986. Actually appeared June 1987.
[31] J. M. Spivey,The Z Notation: A Reference Manual. Englewood Cliffs, NJ: Prentice-Hall, 1989.
[32] K.J. Sullivan, "Mediators: Easing the Design and Evolution of Integrated Systems," PhD dissertation, Dept. of Computer Science, Univ. of Washington, Aug. 1994.
[33] K.J. Sullivan and D. Notkin, "Reconciling Environment Integration and Evolution," ACM Trans. Software Eng. and Methodology vol. 1, no. 3, July 1992.
[34] R.N. Taylor, K.A. Nies, G.A. Bolcer, C.A. MacFarlane, K.M. Anderson, and G.F. Johnson, "Chiron-1: A Software Architecture for User Interface Development, Maintenance, and Run-Time Support," ACM. Trans. Computer-Human Interaction, vol. 2, no. 2, pp. 105-144, June 1995.
[35] W. Tracz, "DSSA (Domain-Specific Software Architecture) Pedagogical Example," Software Engineering Notes, vol. 20, no. 4, July 1995.
[36] D. Ungar and R. Smith, "SELF: The Power of Simplicity." LISP and Symbolic Computation, vol. 4, no. 3, pp. 187-205, July 1991.
[37] E.J. Whitehead Jr., J.E. Robbins, N. Medvidovic, and R.N. Taylor, "Software Architectures: Foundation of a Software Component Marketplace." D. Garlan, ed., Proc. First Int'l Workshop on Architectures for Software Systems, pp. 276-282, Apr. 1995.
[38] The UIMS Tool Developers Workshop, "A Metamodel for the Runtime Architecture of an Interactive System," SIGCHI Bulletin, vol. 24, no. 1, pp. 32-37, Jan. 1992.

Index Terms:
Architectural styles, message-based architectures, graphical user interfaces (GUIs), heterogeneity, concurrency.
Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E. James Whitehead Jr., Jason E. Robbins, Kari A. Nies, Peyman Oreizy, Deborah L. Dubrow, "A Component- and Message-Based Architectural Style for GUI Software," IEEE Transactions on Software Engineering, vol. 22, no. 6, pp. 390-406, June 1996, doi:10.1109/32.508313
Usage of this product signifies your acceptance of the Terms of Use.