From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
The structure of an application with PAC.

Presentation–abstraction–control (PAC) is a software architectural pattern. It is an interaction-oriented software architecture, and is somewhat similar to model–view–controller (MVC) in that it separates an interactive system into three types of components responsible for specific aspects of the application's functionality. The abstraction component retrieves and processes the data, the presentation component formats the visual and audio presentation of data, and the control component handles things such as the flow of control and communication between the other two components.[1]

In contrast to MVC, PAC is used as a hierarchical structure of agents, each consisting of a triad of presentation, abstraction and control parts. The agents (or triads) communicate with each other only through the control part of each triad. It also differs from MVC in that within each triad, it completely insulates the presentation (view in MVC) and the abstraction (model in MVC). This provides the option to separately multithread the model and view which can give the user experience of very short program start times, as the user interface (presentation) can be shown before the abstraction has fully initialized.

See also


  1. ^ Kai, Qian (2009). "Interaction-oriented Software Architectures". Software Architecture and Design Illuminated. Jones and Bartlett Illuminated. p. 200. ISBN 978-0-7637-5420-4.
  2. ^ Nigay, Laurence; Coutaz, Joëlle (1991). "Building User Interfaces: Organizing Software Agents". ESPRIT '91 Conference. Brussels, Belgium: November 1991.
  3. ^ Nigay, Laurence (January 1994). Conception et modélisation logicielles des systèmes interactifs : application aux interfaces multimodales (PDF) (in French and English). PhD dissertation, 315 pages, University of Grenoble, France. pp. 131–268.
  4. ^ Nigay, Laurence; Coutaz, Joëlle (1997). "Software Architecture Modelling: Bridging Two Worlds Using Ergonomics and Software Properties" (PDF). Formal Methods in Human-Computer Interaction. Springer-Verlag. chapter 3, pp. 49–73. ISBN 3-540-76158-6.


  • Coutaz, Joëlle (1987). "PAC: an Implementation Model for Dialog Design". In Bullinger, H.-J.; Shackel, B. Proceedings of the Interact'87 conference, September 1–4, 1987, Stuttgart, DE. North-Holland. pp. 431–436.
  • Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael (1996). Pattern-Oriented Software Architecture Vol 1: A System of Patterns. John Wiley and Sons. pp. 145–168. ISBN 0-471-95869-7.
  • Calvary, Gaëlle; Coutaz, Joëlle; Nigay, Laurence (1997). "From Single-User Architectural Design to PAC*: a Generic Software Architecture Model for CSCW". In Pemberton, Steven. Proceedings of the ACM CHI 97 Human Factors in Computing Systems Conference, March 22–27, 1997, Atlanta, GA. pp. 242–249.
  • Coutaz, Joëlle (1997). "PAC-ing the Architecture of Your User Interface" (PDF). DSV-IS’97, 4th Eurographics Workshop on Design, Specification and Verification of Interactive Systems. Springer Verlag. pp. 15–32.
  • Markopoulos, Panagiotis (1997). A compositional model for the formal specification of user interface software (pdf). PhD thesis, Queen Mary and Westfield College, University of London. p. 26. Retrieved 2006-05-25.
  • Avgeriou, Paris; Zdun, Uwe (2005). "Architectural patterns revisited – a pattern language" (PDF). Proceedings of 10th European Conference on Pattern Languages of Programs (EuroPlop 2005), Irsee, Germany, July 2005. pp. 1–39.

External links

  • Architectural outline for the game Warcraft as it might be implemented using the PAC Architectural Pattern: Programming of the application PACcraft:Architecture (in French)
  • Pattern:Presentation-Abstraction-Control (pattern description)
  • PAC description in the Portland Pattern Repository
  • WengoPhone is a free software VoIP application that is written using the PAC design pattern.
    • description of PAC and motivation for use in WengoPhone.
    • demonstration code, courtesy of the OpenWengo community.
  • HMVC: The layered pattern for developing strong client tiers
Retrieved from "–abstraction–control&oldid=778404012"
This content was retrieved from Wikipedia :
This page is based on the copyrighted Wikipedia article "Presentation–abstraction–control"; it is used under the Creative Commons Attribution-ShareAlike 3.0 Unported License (CC-BY-SA). You may redistribute it, verbatim or modified, providing that you comply with the terms of the CC-BY-SA