Patterns:Reference Model

From InfoVis:Wiki
Jump to navigation Jump to search

Summary

A structural pattern for dealing with the complexity of visualisation system architectures.

Category

Data Modelling and Management

Context

Problem

Information visualization application development requires balancing issues of data management, visual mappings, computer graphics, and interaction. Determining the right separation of concerns has serious consequences for the complexity, extensibility, and reusability of software architectures. The Reference Model pattern provides a general template for structuring visualization applications that separates data models, visual models, views, and interactive controls.

Forces

Solution

Separate data and visual models to enable multiple visualizations of a data source, separate visual models from displays to enable multiple views of a visualization, and use modular controllers to handle user input in a flexible and reusable fashion.

Examples

The Reference Model pattern has been widely used and advocated. Both Chi et al’s data state model [1] and Card et al’s infovis reference model [2] prescribe the use of this pattern. In their exploration of design choices for architecting visualizations, Tang et al. [3] also discuss the importance of separating data and visual models. Finally, numerous software frameworks adopt this template of application structure, including Advizor [4], Improvise [5], Polaris [6], [7], prefuse [8], and SAS/JMP [9].

Related Patterns

The components are much like those of MVC, and has been characterised as a 'tiered version of MVC, with the model divided into separate abstractions for the data and visual properties.'[10]

This characterisation invites comparisons with like the Hierarchical-Model-View-Controller (HMVC)[11] and, the more general[12], Presentation-Abstraction-Control(PAC)[13] pattern.


References

  1. Chi, E. H., J. T. Riedl. An Operator Interaction Framework for Visualization Systems. IEEE Symposium on Information Visualization (InfoVis), 1998.
  2. Card, S. K., J. D. Mackinlay, B. Schneiderman (eds.). Readings in Information Visualization: Using Vision To Think. Morgan-Kaufman, 1999.
  3. Tang, D., C. Stolte, and P. Hanrahan. Design Choices when Architecting Visualizations. IEEE Symposium on Information Visualization (InfoVis), 2003.
  4. Eick, S. G. Visual Discovery and Analysis. IEEE Transactions on Visualization and Computer Graphics, 6(10). January 2000.
  5. Weaver, C. Building Highly-Coordinated Visualizations In Improvise. IEEE Symposium on Information Visualization (InfoVis), 2004.
  6. Stolte, C., 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.
  7. Stolte, C., D. Tang, and P. Hanrahan. Multiscale Visualization Using Data Cubes. IEEE Symposium on Information Visualization (InfoVis), 2002.
  8. Heer, J., S. K. Card, J. A. Landay. prefuse: A Toolkit for Interactive Information Visualization. ACM Human Factors in Computing Systems (CHI), 2005.
  9. Chen, H. Towards Design Patterns for Dynamic Analytical Data Visualization. Proceedings Of SPIE Visualization and Data Analysis, 2004.
  10. Heer, J. & Agrawala, M., 2006. Software Design Patterns for Information Visualization. IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, 12(5), p.853.
  11. Jason Cai, Ranjit Kapila, and Gaurav Pal (July, 2000). "HMVC: The layered pattern for developing strong client tiers". JavaWorld Magazine.
  12. "TP" (2000). "Is HMVC PAC? (letter to the editor)". JavaWorld Magazine.
  13. Coutaz, J., 1997. PAC-ing the architecture of your user interface. Proc. 4th Eurographics Workshop on Design, Specification and Verification of Interactive Systems, p.15-32.

See also: