R801 - modelint/shlaer-mellor-metamodel GitHub Wiki

R801 / Generalization

Data Flow is a Non Scalar Flow or Scalar Flow


The terms scalar and non scalar are appropriated from [TTM] and other writings of C.J. Date.

Here we make a fundamental distinction between opaque and transparent data.

Non Scalar, i.e. tabular values, are transparent to the metamodel domain. THe metamodel defines the primitive actions necessary to view and manipulate this kind of data. In fact, that is the whole point of a class model. It exposes data and relationships.

Scalar values, on the other hand, are opaque since their type is defined outside our modeling methodology. We can only manipulate a scalar value or see its components by means of type specific operations. The definition of non scalar types and their operations is relegated to an external type definition domain.

Our metamodel does, however, provide the means to flow scalar values and to invoke type specific operations on them.