2.4. Conclusion
This section has explored the consequences of conceptual
dependence in application and database design. The use of
conceptual dependence is a well-established design practice,
which can be taught readily and is easy for novice developers
to apply. It is deeply ingrained in professional practice and
may seem the only possible design choice. However, it makes
information systems inflexible and leads to high maintenance
costs.
If conceptual dependence is not benign, are there viable
alternatives? Can information systems provide domainspecific
behaviour, as today, without the hardcoded structures
and logic that couple them to particular conceptual
models? Given the potential cost savings, it seems worthwhile
to try to meet this apparently paradoxical requirement.
In the next section we examine possible solutions.
3. Conceptual independence
3.1. Introduction
We define conceptual independence as the absence of
conceptual dependence. An information system is said to
exhibit conceptual independence (or is domain-independent) if
its internal structures and logic are free of dependencies on
the system's underlying conceptual model(s). The practice of
designing an information system with conceptual independence
is referred to as domain-independent design. An information
system which has been designed in this way is not
tied to any particular conceptual model, and must adapt its
behaviour to suit each model it is used with; therefore it is
called an adaptive information system (AIS) [40].
In practice, conceptual independence requires that any
hardcoded software structures and logic be generic rather
than specific to a particular conceptual model. Any structures
or logic that are specific to a particular conceptual model must
be held in data and not hardcoded. For example, database
tables should not be designed around particular entity types.
Instead of creating the domain-specific Products, Customers
and Purchases tables in Fig. 1, we might implement a domainindependent
meta-model, as in Fig. 6.