Models

Nik Boyd - Under Construction!


Models are convenient. Models help us


This page explores several dimensions and facets of models, including the following:

  • Quantitative Models v. Qualitative Models
  • Cognitive Models v. Software Models
  • Domain Models v. Usage Models
  • The Action Cycle
  • Related Models
  • System Design

Architectural Styles

  • Pipe and Filter Systems
  • Event-Driven Systems
  • Blackboard Systems

Structural Models

  • Object Models
  • CRC Models
  • Visibility Models
  • Packaging Models
  • System Models

Behavioral Models

  • Interface Models
  • Operation Schemas
  • Lifecycle Models
  • State Models
  • Interaction Models

Quantitative Models vs. Qualitative Models

Qualitative models

  • explore shape and structure
  • characterize or approximate results

Quantitative models

  • explore dimension and number
  • predict results

Underlying every quantitative model is a qualitative model, a foundation that gives the quantitative model its semantics or meaning. For a more thorough discussion of qualitative models, consider the works of René Thom.


Cognitive Models vs. Software Models


Domain Models vs. Usage Models

object vs process orientation - noun vs verb

domain elements - interface elements

usage - every element of the user interface

domain - every element of the problem domain

presentation - semantic split


The Action Cycle

In his introduction to system design, Norman indicates that human action has seven stages that form a cycle or feedback loop:

  • Form the goal
  • Form the intention
  • Plan the actions
  • Execute the action plan
  • Perceive the (changed) state of the world
  • Interpret the changes
  • Evaluate the outcome

Models Related to the Action Cycle

The action cycle resembles a model of human behavior used in Neuro-Linguistic Programming (NLP) - Test Operate Test Exit (TOTE). The TOTE model is used to model human sensory-based behavioral strategies, as well as serving as the foundation for the process of reframing.

The action cycle has profound resonance with essential concepts in object-oriented software system design. One of the better known frameworks used to decompose object systems is the model-view-controller (MVC) framework pioneered by Smalltalk in the 1970s.


System Design

Every system, whether hardware or software, has an associated conceptual model. The primary task of a system designer is to reveal how the system may be used to someone. Users construct a conceptual model of how to a system may be used. Designers try to make the intended usage of a system as obvious as possible. However, users only ever experience the system image embodied in the design.


Modeling versus Remodeling


Bibliography

Donald A. Norman. The Design of Everyday Things. Doubleday, New York 1990.


Object models provide convenient maps from problem to solutions - providing a bridge from conceptual models to software objects. Thus, object-oriented software development provides convenient traceability from code back to the originating concepts, especially when object models are used consistently throughout the software development process. However, in order to maximize the semantic leverage and consistency of object-oriented software development, the construction of the object models should be driven by the analysis of domain semantics - models of the web of associations between domain concepts.

  • Archetypal Categories - Policy v. Mechanism - MVC
  • Strategies: Encapsulation, Polymorphism, Inheritance, Contracts, Black v. Grey Box
  • Modeling v. Remodeling
  • Engineering v. Re-engineering