Software Design Patterns for Information Visualization
|
Despite a diversity of software architectures supporting information visualization, it is often difficult to identify, evaluate, and re-apply the design solutions implemented within such frameworks. One popular and effective approach for addressing such difficulties is to capture successful solutions in design patterns, abstract descriptions of interacting software components that can be customized to solve design problems within a particular context. Based upon a review of existing frameworks and our own experiences building visualization software, we present a series of design patterns for the domain of information visualization. We discuss the structure, context of use, and interrelations of patterns spanning data representation, graphics, and interaction. By representing design knowledge in a reusable form, these patterns can be used to facilitate software design, implementation, and evaluation, and improve developer education and communication.
[1] 853 AhlbergC., C. Williamson, and B. Shneiderman, Dynamic Queries for Information Exploration: An Implementation and Evaluation. ACM Human Factors in Computing Systems (CHI), 1992.
[2] AlexanderC., S. Ishikawa, M. Silverstein, M. Jacobson, I. Fiksdahl-King, S. Angel, A Pattern Language: Towns, Buildings, Construction. Oxford University Press. 1977.
[3] BedersonB. B., J. Grosjean, J. Meyer, Toolkit Design for Interactive Structured Graphics. IEEE Transactions on Software Engineering, 30 (8): 535–546. 2004.
[4] BertinJ., Semiology of Graphics: Diagrams, Networks, Maps. translated by W. J. Berg. University of Wisconsin Press. 1983.
[5] CardS. K., J. D. Mackinlay, G. G. Robertson, The Information Visualizer: An Information Workspace. ACM Human Factors in Computing Systems (CHI), 1991.
[6] Card, S. K., J. D. Mackinlay, B. Schneiderman (eds.). Readings in Information Visualization: Using Vision To Think. Morgan-Kaufman, 1999.
[7] ChenH., Towards Design Patterns for Dynamic Analytical Data Visualization. Proceedings Of SPIE Visualization and Data Analysis, 2004.
[8] ChiE. H., J. T. Riedl, An Operator Interaction Framework for Visualization Systems. IEEE Symposium on Information Visualization (InfoVis), 1998.
[9] ChiE. H., Expressiveness of the Data Flow and Data State Models in Visualization Systems. Advanced Visual Interfaces (AVI), 2002.
[10] ClevelandW. S., R. McGill, Graphical Perception: Theory, Experimentation, and Application to the Development of Graphical Methods. Journal of the American Statistical Association, 79 (387): 531–554. September 1984.
[11] EickS. G., Visual Discovery and Analysis. IEEE Transactions on Visualization and Computer Graphics, 6 (10). January 2000.
[12] FeketeJ.-D., The InfoVis Toolkit. IEEE Symposium on Information Visualization (InfoVis), 2004.
[13] GammaE., R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
[14] HeerJ., S. K. Card, J. A. Landay, prefuse: A Toolkit for Interactive Information Visualization. ACM Human Factors in Computing Systems (CHI), 2005.
[15] HudsonS. E., J. T. Stasko, Animation Support in a User Interface Toolkit: Flexible, Robust, and Reusale Abstractions. ACM Symposium on User Interface and Software Technologies (UIST), 1992.
[16] KrasnerG. E., S. T. Pope, A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80. Journal of Object-Oriented Programming, 1 (3): 26–49, August 1988.
[17] MackinlayJ. D., Automating the Design of Graphical Presentations of Relational Information. ACM Transactions on Graphics, 5 (2): 110–141. 1986.
[18] SchmidtD. C., Using Design Patterns to Develop Re-usable Object-Oriented Communication Software. Communications of the ACM, 38 (10), October 1995.
[19] SchroederW. J., K. M. Martin, W. E. Lorensern, The Visualization Toolkit: An Objecct-Oriented Approach to 3D Graphics. Prentice Hall, 1996.
[20] StolteC., D. Tang, and P. Hanrahan, Polaris: A System for Query, Analysis and Visualization of Multi-dimensional Relational Databases. IEEE Transactions on Visualization and Computer Graphics, 8 (1), January 2002.
[21] StolteC., D. Tang, and P. Hanrahan, Multiscale Visualization Using Data Cubes. IEEE Symposium on Information Visualization (InfoVis), 2002.
[22] TangD., C. Stolte, and P. Hanrahan, Design Choices when Architecting Visualizations. IEEE Symposium on Information Visualization (InfoVis), 2003.
[23] WeaverC., Building Highly-Coordinated Visualizations In Improvise. IEEE Symposium on Information Visualization (InfoVis), 2004.
Index Terms:
Design patterns, information visualization, software engineering, object-oriented programming
Citation:
Jeffrey Heer, Maneesh Agrawala, "Software Design Patterns for Information Visualization," IEEE Transactions on Visualization and Computer Graphics, vol. 12, no. 5, pp. 853-860, Sept. 2006, doi:10.1109/TVCG.2006.178