Computer Science and software engineering is increasingly focused on the development
of sound architectures. Complex software cannot be build without architecture. A data
warehouse project that is not well designed from the beginning is likely to fail. In computer
science a sound architecture is based upon sound data structures and sound programming
structures. The success of relational databases, for example, is grounded on relational theory
and the value of the table as a fundamental data structure. Likewise, object-oriented
programming is grounded on the value of classes as a means to represent reality in code and
to create code that has high cohesion and loose coupling between the units.