SWS Questionnaires
  • Introduction
  • Data and Layout
    • Data
    • Layout
  • Processes
    • Specification Lifecycle Management
    • Campaign Lifecycle Management
    • Questionnaire Lifecycle Management
    • User and Rights Management
    • At a Glance
  • Software
    • Architecture
      • From Module to Application
      • sws-questionnaires
      • sws-forms
    • Design
      • Model
        • Common Objects
        • Questionnaires
        • Parameters
        • Selections
        • Layout
          • Theme
          • Common Properties
          • Components
        • Collections
        • Campaigns
      • Processes
        • Generation
        • Loading
        • Rendering
        • Export
Powered by GitBook
On this page
  1. Software
  2. Design

Model

In this Section, we outline an object model of questionnaires that embodies all the notions we have discussed so far.

the discussion mirrors an actual implementation, though we don't describe APIs or other code-level detais.

We can divide objects along three axes. The first axis separates objects that model the data inside questionnaires (data objects) and objects that model aspects of their presentation (layout objects).

  • selections, dimensions, flags, and points are examples of data objects. Themes, components and properties are examples of layout objects.

The second axis separates questionnaires and their parts (instance objects) from the specifications that generate them (specification objects).

  • we have specifications for selections, for layout components, for questionnaire parameters, and so on.

  • specifications are authored by administrative users during questionnaire design, so we have the onus to validate them. Instance objects are rendered for and edited by end users, but edits cannot alter their structure hence require little or no validation.

The third axis separates objects that model domain concepts (domain objects), from general-purpose objects that help us building domain objects consistently (common objects).

  • questionnaires, selections, and components are examples of domain objects. Identifiers, labels, descriptors, and life cycles are examples of common objects.

PreviousDesignNextCommon Objects

Last updated 6 years ago