Chapter 5. Making an Information Design Model

For designing an information architecture for an IS, we make an information design model on the basis of a conceptual model of the underlying business domain. While a conceptual information model is a (solution-independent) description of a business domain, an information design model is a technology-independent specification of the logical information items of an IS containing all computational details needed for implementing its data structures.

A conceptual information model is supposed to be conceptually explicit, whereas an information design model is supposed to specify a computationally efficient design. The primary audience of a design model are IS engineers (software architects and developers), while the primary audience of a conceptual model are subject matter experts.

Deriving an information design model from a conceptual information model involves both simplification and elaboration. The conceptual model is simplified by

  1. removing (abstracting away from) elements that only have business meaning, but about which the IS to be built does not need to maintain any information,
  2. refactoring those parts of the conceptual model that allow a computationally more efficient design, possibly using design patterns such as the Class Hierarchy Merge design pattern.
We can elaborate an information design model on the basis of a conceptual information model in seven steps:
  1. Change the names of classes and attributes by following the OOP naming convention of using mixed case names. Thus, the plain English noun phrases used in the conceptual model for the names of entity types and attributes (like "season number") are converted to mixed case names (like "seasonNumber").
  2. Define the ranges of all attributes using platform-independent datatypes.
  3. Identify and declare optional attributes (by default, all other attributes are mandatory).
  4. Identify and declare ID attributes. Make sure that all classes representing entity types have a standard ID attribute (combination).
  5. Identify enumeration attributes and add the required enumeration datatypes.
  6. Identify derived attributes and define their mode (on-demand or on-update) and derivation rules.
  7. Add further integrity constraints, such as frozen value constraints, interval constraints or pattern constraints.

These elaboration steps are further discussed in the following sections.