Metadata enables system flexibility, with dynamic capabilities for managing change. Together, horizontal and vertical interfaces, along with metadata, comprise system-level software architecture. Within the system level, patterns are categorized into either structural or behavioral patterns. Structural patterns are those that possess a specific structure or set of related components. Structural design patterns at the system level include Gateways, Repository, Component, and Domain OO Architecture.
Behavioral patterns define how a system behaves under various conditions.