┌───────────────────────────┐ │Supplemental Specifications│ ├───────────────────────────┤ └───────────────────────────┘ ┌──────────┐ ┌──────────────────┐ ┌──────────────────────────────┐ ┌───────────────────────────┐ │Principles│ │System Constraints│ │System Functional Requirements│ │Non-Functional Requirements│ ├──────────┤ ├──────────────────┤ ├──────────────────────────────┤ ├───────────────────────────┤ └──────────┘ └──────────────────┘ └──────────────────────────────┘ └───────────────────────────┘ ┌──────────┐ ┌────────┐ ┌───────────────┐ ┌────────────────┐ │Interface │ │Physical│ │Design │ │Implementation │ ├──────────┤ ├────────┤ ├───────────────┤ ├────────────────┤ │Protocol │ │Location│ │Architectural │ │Coding standards│ │Format │ │Shape │ │Infrastructural│ │Language │ │Schedule │ │Size │ └───────────────┘ │Resource limits │ │Throughput│ │Weight │ └────────────────┘ └──────────┘ └────────┘