The traditional discipline of architecture has long been a source of inspiration for software and data architects. The principles of form and space establish a vocabulary in the world of traditional architecture used to communicate the similarities and differences of architectural styles. The application of these principles to solving specific architectural challenges can be categorized and organized into common patterns that, again, establish a language for communicating about architecture.
What is architecture? What is the core, guiding principle? A work of architecture, at its essence, is the interrelationship of the basic elements, systems and orders that form an integrated whole having a unifying or coherent structure. Architectural order is created with the organization of the parts makes visible their relationships to each other, their environment and the structure a whole.
In the 1990’s these ideas were applied to the world of software engineering as object-oriented analysis, design and programming emerged. A renaissance in software architecture practices took place. At the core of these software architecture principles was the concept of separation of concerns. Like physical architecture, the interrelationships of software elements to achieve order within a system requires the establishment of boundaries where each part fulfills a meaningful and intuitive role while maximizing its ability to change. Through proper separation of concerns, complexity in software becomes manageable.
It’s time these principles were applied to data architecture. Over the course of our next few posts we’ll introduce some of the major styles of data architecture that every data professional should be familiar with.
Francis D.K. Ching, Architecture: Form Space and Order
Christopher Alexander, A Pattern Language: Towns, Buildings, Construction
Frank Buschmann, et. al., Pattern Oriented Software Architecture: A System of Patterns
Erich Gamma, et. al., Design Patterns: Elements of Reusable Object-Oriented Software
