This commit is contained in:
2026-05-21 15:59:25 +07:00
parent 0301509e21
commit 295e5698ec

View File

@@ -60,8 +60,6 @@ This document defines the documentation framework for a software project. It est
### 2. Solution Design
`solution-design.md`
**Document ID**: Each `solution-design.md` file should have a unique document ID (e.g., `SD-001`, `SD-002`) for cross-referencing. Use the format `SD-XXX` where `XXX` is a 3-digit sequential number.
**Purpose**: Translate requirements into an *viable solution* — how the system solves the user problem. Defines approach, components, and trade-offs before technical details.
**Why It Matters**:
@@ -72,7 +70,6 @@ This document defines the documentation framework for a software project. It est
- Provides a reference for evaluating specification choices against intended solution
**Content Guidelines**:
- Document ID: Include the solution design document ID at the top (e.g., `SD-001`)
- Problem decomposition: Break down the user problem into smaller, solvable pieces
- Solution approach: Describe the high-level approach (e.g., "Use event sourcing for audit trail", "Implement caching layer for performance")
- Alternatives considered: Document at least 2-3 alternative approaches with rationale for why they were rejected
@@ -80,7 +77,7 @@ This document defines the documentation framework for a software project. It est
- Decision rationale: Explain why each major decision was made (e.g., "Chose NATS over Kafka for simpler ops", "Used server-side rendering for SEO")
- Risk assessment: Identify potential risks and how they will be mitigated
- Traceability: Link each solution component to specific requirement ID(s) (e.g., FR-001, NFR-201) that it addresses
- Decision IDs: Assign unique IDs to major decisions (e.g., `SD-001-D1` for "Use NATS for async messaging") to enable specification traceability
- Decision IDs: Assign unique IDs to major decisions using the format `SD-XXX` (e.g., `SD-001` for "Use NATS for async messaging") to enable specification traceability
**Best Practices**:
- Write solution design from the user's perspective first, then justify technical choices
@@ -507,8 +504,6 @@ Break down the user problem into smaller, solvable pieces.
|---------|-------------|-------------|
| [Problem ID] | Brief description of the problem | How this affects the user |
**Solution Design ID**: SD-001
**Example**:
- **P-001**: Users cannot compare multiple wines side-by-side → They must navigate between wine pages, losing context and making comparisons difficult
@@ -574,11 +569,11 @@ Link each solution component to specific requirements and assign Solution Design
| Solution Component | Requirement ID | Decision ID | Description |
|-------------------|----------------|-------------|-------------|
| Comparison table UI | FR-101 | SD-001-D1 | Display wines in table format |
| Filtering | FR-102 | SD-001-D2 | Filter wines by criteria |
| Sorting | FR-103 | SD-001-D3 | Sort wines by any column |
| Real-time updates | NFR-201 | SD-001-D4 | Updates appear within 100ms |
| Export comparison | FR-201 | SD-001-D5 | Export comparison to PDF/CSV |
| Comparison table UI | FR-101 | SD-001 | Display wines in table format |
| Filtering | FR-102 | SD-002 | Filter wines by criteria |
| Sorting | FR-103 | SD-003 | Sort wines by any column |
| Real-time updates | NFR-201 | SD-004 | Updates appear within 100ms |
| Export comparison | FR-201 | SD-005 | Export comparison to PDF/CSV |
### Specification Template