Decision Blocks
Reference for the 4 decision category blocks: Assumption, Constraint, Principle, and NFR (Non-Functional Requirement).
The Decisions category includes 4 blocks for capturing the reasoning behind architecture decisions. These blocks help document assumptions, constraints, principles, and non-functional requirements in a structured format.
Assumption Block
Documents project assumptions that may need validation.
| Property | Type | Description |
|---|---|---|
| statement | string | The assumption statement (required) |
| description | string | Detailed assumption description |
| type | enum | Category: technical, operational, organisational, business, environmental |
| confidence | enum | Confidence level: high, medium, low |
| validationMethod | string | How to validate this assumption |
| status | enum | Current status: unverified, validated, invalidated, obsolete |
| reviewDate | date | Date for assumption review |
| impactIfFalse | string | Consequences if the assumption is wrong |
Constraint Block
Documents project constraints that limit design choices.
| Property | Type | Description |
|---|---|---|
| statement | string | The constraint statement (required) |
| description | string | Detailed constraint description |
| type | enum | Category: technical, organisational, regulatory, legal, legacy, commercial |
| rigidity | enum | Flexibility: hard (non-negotiable), soft (flexible) |
| source | string | Where this constraint originates |
| authority | string | Who imposed this constraint |
| impactOnDesign | string | How this affects architecture choices |
| workarounds | string | Possible workarounds if any |
| status | enum | Current status: active, pending, expired |
Principle Block
Documents architecture principles that guide decision-making.
| Property | Type | Description |
|---|---|---|
| statement | string | The principle statement (required) |
| description | string | Detailed principle description |
| scope | enum | Scope: organisation-wide, platform, system, component |
| appliesTo | string | What this principle applies to |
| rationale | string | Why this principle exists |
| implications | string | What following this principle means |
| exceptions | string | When this principle does not apply |
| status | enum | Current status: proposed, adopted, deprecated |
| examples | string | Examples of applying this principle |
NFR Block
Documents non-functional requirements with measurable targets.
| Property | Type | Description |
|---|---|---|
| title | string | NFR title (required) |
| description | string | Detailed description (required) |
| category | enum | Category (required): performance, scalability, availability, reliability, security, compliance, maintainability, operability |
| priority | enum | MoSCoW priority: must, should, could, wont |
| statement | string | Formal requirement statement (required) |
| scope | string | What this NFR applies to |
| rationale | string | Why this NFR exists |
| measurementMethod | string | How to measure compliance |
| target | string | The target value or threshold |
| tolerance | string | Acceptable variance from target |
| status | enum | Status: proposed, agreed, implemented, verified, retired |