As a starting point to building such frameworks, the 3C model provides
us with a way to think about the various aspects of a single
component. As such, it forms the basis for constructing
``normalized'' components within a framework. We take the term
normalization from the relational database world, since:
- intuitively
we would like to think of a normalized component in the same sense
that we think of a normalized relation. That is, just as a normalized
relation captures the essence of a single entity with no embedded
subentities, so does a normalized component capture the essence of a
single concept and implementation concern, with context factored out and
either imported or provided through parameterization.
- formally
we would like to be able to provide rules for discovering and factoring
out context in the same way in which we have formulated rules for
normalizing relations, i.e., by looking for various forms of
structural replication and factoring them out. An interesting
avenue of exploration, and one in which we have just begun to
think about, is the formalization of such rules.