ma-agents 2.17.0 → 2.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/agents.js +5 -5
- package/lib/bmad-workflows/mil498/ocd/instructions.md +81 -31
- package/lib/bmad-workflows/mil498/sdd/instructions.md +124 -39
- package/lib/bmad-workflows/mil498/sdp/instructions.md +179 -27
- package/lib/bmad-workflows/mil498/srs/instructions.md +108 -31
- package/lib/bmad-workflows/mil498/ssdd/instructions.md +123 -36
- package/lib/bmad-workflows/mil498/sss/instructions.md +102 -24
- package/lib/bmad-workflows/mil498/std/instructions.md +120 -24
- package/lib/bmad.js +39 -17
- package/lib/mil498-templates/SDD.md +163 -0
- package/package.json +1 -1
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
Generate a compliant SSDD document by extracting and organizing system architectural design decisions from existing project artifacts into the MIL-STD-498 SSDD template structure. The SSDD describes the system-level design — how the system is organized into components (HWCIs, CSCIs, and manual operations) and how they interact.
|
|
8
8
|
|
|
9
|
+
**Critical principle**: The SSDD describes design decisions from the user's point of view, ignoring internal implementation details. Design decisions must be framed as responses to specific requirements — not as technology selections.
|
|
10
|
+
|
|
9
11
|
## Step 1 — Discover Project Artifacts
|
|
10
12
|
|
|
11
13
|
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
@@ -22,6 +24,19 @@ Search the project for the following artifacts. Communicate in {communication_la
|
|
|
22
24
|
|
|
23
25
|
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
24
26
|
|
|
27
|
+
### Document Dependencies
|
|
28
|
+
|
|
29
|
+
The SSDD is best generated after the following MIL-STD-498 predecessor documents:
|
|
30
|
+
|
|
31
|
+
| Predecessor | Relationship | Search Pattern |
|
|
32
|
+
|-------------|-------------|----------------|
|
|
33
|
+
| SSS (System/Subsystem Specification) | Recommended — provides the system requirements the SSDD designs against | `**/SSS.md` |
|
|
34
|
+
| OCD (Operational Concept Description) | Optional — provides operational context | `**/OCD.md` |
|
|
35
|
+
|
|
36
|
+
If predecessor documents exist, they MUST be loaded and used as primary inputs. The SSDD should reference them in Section 2 and trace design decisions to their requirements.
|
|
37
|
+
|
|
38
|
+
If recommended predecessors have NOT been generated yet, **alert {user_name}**: "The SSS has not been generated yet. The SSDD is typically produced after the SSS, since it designs against system requirements defined there. Would you like to proceed without it, or generate the SSS first?"
|
|
39
|
+
|
|
25
40
|
## Step 2 — Load Template
|
|
26
41
|
|
|
27
42
|
Read the SSDD template from:
|
|
@@ -29,9 +44,49 @@ Read the SSDD template from:
|
|
|
29
44
|
|
|
30
45
|
This defines the required DID sections and content expectations for each paragraph.
|
|
31
46
|
|
|
47
|
+
## Step 2.5 — CSCI Discovery Interview
|
|
48
|
+
|
|
49
|
+
Before generating the document, you must establish the correct CSCI decomposition through an interactive interview with {user_name}. **Do NOT map repositories, microservices, or deployment units 1:1 to CSCIs.** A CSCI is a configuration item — a logically cohesive unit that is independently specified, designed, tested, and managed.
|
|
50
|
+
|
|
51
|
+
### Phase A: Initial Analysis
|
|
52
|
+
|
|
53
|
+
Analyze the Architecture document and identify:
|
|
54
|
+
- All services, modules, repositories, and deployment units mentioned
|
|
55
|
+
- Functional domains they belong to (e.g., detection, alerting, user management, frontend)
|
|
56
|
+
- Shared release cycles, shared teams, shared test suites
|
|
57
|
+
- Data coupling between components (which services share databases or communicate frequently?)
|
|
58
|
+
|
|
59
|
+
### Phase B: Propose CSCI Hypothesis
|
|
60
|
+
|
|
61
|
+
Present {user_name} with a proposed CSCI decomposition that groups related services/modules into logically cohesive CSCIs. For each proposed CSCI:
|
|
62
|
+
- Give it a descriptive name and project-unique identifier
|
|
63
|
+
- List the services/modules/components it contains (these become CSCs — Computer Software Components — within the CSCI)
|
|
64
|
+
- State the functional rationale for the grouping
|
|
65
|
+
- Identify the system requirements allocated to it
|
|
66
|
+
|
|
67
|
+
### Phase C: Guided Questions
|
|
68
|
+
|
|
69
|
+
Ask {user_name} the following questions to validate and refine the decomposition:
|
|
70
|
+
|
|
71
|
+
1. **Release boundaries**: "Which of these services/modules share a release cycle and are always deployed together?"
|
|
72
|
+
2. **Team boundaries**: "Which components are developed and maintained by the same team?"
|
|
73
|
+
3. **Test boundaries**: "Which components are always tested together as a unit?"
|
|
74
|
+
4. **Delivery boundaries**: "What are your contractual or organizational delivery boundaries — what does the customer/stakeholder receive as distinct deliverables?"
|
|
75
|
+
5. **Configuration management**: "Which components are independently baselined and version-controlled as a unit?"
|
|
76
|
+
|
|
77
|
+
### Phase D: Refine and Confirm
|
|
78
|
+
|
|
79
|
+
Based on {user_name}'s answers:
|
|
80
|
+
- Merge or split CSCIs as needed
|
|
81
|
+
- Ensure each CSCI has clear functional cohesion
|
|
82
|
+
- Assign final project-unique identifiers (e.g., CSCI-SA for Situational Awareness, CSCI-FE for Frontend)
|
|
83
|
+
- Get explicit approval from {user_name} before proceeding to document generation
|
|
84
|
+
|
|
85
|
+
**Do NOT proceed to Step 3 until {user_name} approves the CSCI decomposition.**
|
|
86
|
+
|
|
32
87
|
## Step 3 — Generate Document
|
|
33
88
|
|
|
34
|
-
Write the document in {document_output_language}, populating each template section
|
|
89
|
+
Write the document in {document_output_language}, populating each template section.
|
|
35
90
|
|
|
36
91
|
### Section 1: Scope
|
|
37
92
|
- **1.1 Identification**: Extract system name, version, and project-unique identifiers from PRD/Product Brief
|
|
@@ -39,60 +94,88 @@ Write the document in {document_output_language}, populating each template secti
|
|
|
39
94
|
- **1.3 Document overview**: Describe this SSDD document's purpose, contents, and any security/privacy considerations
|
|
40
95
|
|
|
41
96
|
### Section 2: Referenced documents
|
|
42
|
-
- List all project artifacts, standards, and external references used as inputs
|
|
97
|
+
- List all project artifacts, standards, and external references used as inputs. Include number, title, revision, and date for each
|
|
43
98
|
|
|
44
99
|
### Section 3: System-wide design decisions
|
|
45
100
|
|
|
46
|
-
|
|
101
|
+
**CRITICAL BEHAVIORAL GUIDANCE**: This section describes the system's behavioral design — how it will behave from a user's point of view in meeting its requirements, ignoring internal implementation. Follow these rules strictly:
|
|
47
102
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
103
|
+
1. **Requirements-driven**: Every design decision MUST cite the specific requirement(s) it satisfies (e.g., "To satisfy NFR-P2 (< 1s detection latency)...")
|
|
104
|
+
2. **Behavioral, not implementation**: Describe patterns and approaches, NOT specific tools or products. Write "An asynchronous message distribution pattern is selected..." NOT "RabbitMQ serves as the message broker..."
|
|
105
|
+
3. **Technology names belong in the Architecture document**, not here. If a technology choice is essential context, mention it parenthetically after the behavioral description
|
|
106
|
+
4. **State-dependent decisions**: If a design decision depends on system states or modes, indicate this dependency explicitly
|
|
107
|
+
|
|
108
|
+
For each of the following subsections, document the design decisions and reference their driving requirements:
|
|
109
|
+
|
|
110
|
+
- **a. Input/output design**: What the system accepts and produces. Describe system inputs, outputs, and user/external interfaces from the user's perspective. If Interface Design Descriptions (IDDs) exist, they may be referenced
|
|
111
|
+
- **b. Behavioral design**: How the system behaves in response to inputs and conditions — actions, response times, performance characteristics, selected algorithms/rules, and handling of invalid inputs or error conditions. Describe behavioral patterns (event-driven processing, request-response cycles, etc.) without naming specific tools
|
|
112
|
+
- **c. Database/data design**: How databases and data files appear to users and external systems. Describe data models, storage approaches, and data lifecycle from the user's perspective. If Database Design Descriptions (DBDDs) exist, they may be referenced
|
|
113
|
+
- **d. Safety, security, privacy**: Selected approaches to meeting safety, security, and privacy requirements. Place these in **separate subparagraphs** as the DID requires special treatment for critical requirements
|
|
114
|
+
- **e. Hardware/physical design choices**: Physical characteristics if applicable (for hardware-software systems) — size, color, shape, weight, materials, markings
|
|
115
|
+
- **f. Other system-wide decisions**: Flexibility, availability, maintainability approaches. Describe the rationale for architectural patterns selected (e.g., "A service-isolation pattern is selected to satisfy NFR-A1 availability requirement, enabling independent failure recovery")
|
|
54
116
|
|
|
55
117
|
### Section 4: System architectural design
|
|
56
118
|
|
|
57
|
-
- **4.1 System components
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
119
|
+
- **4.1 System components** (items a through f — all are required):
|
|
120
|
+
|
|
121
|
+
**a.** Identify all system components using the approved CSCI decomposition from Step 2.5. Each CSCI shall have a project-unique identifier. For each CSCI, list the CSCs (services, modules) it contains. Also identify HWCIs and manual operations as applicable. Note: a database may be treated as a CSCI or as part of a CSCI.
|
|
122
|
+
|
|
123
|
+
**b.** Show the static ("consists of") relationships using component/block diagrams. Multiple relationship views may be presented (structural, deployment, data ownership).
|
|
124
|
+
|
|
125
|
+
**c.** State each component's purpose and the system requirements allocated to it. (Alternatively, allocation may be provided in Section 5.a.)
|
|
126
|
+
|
|
127
|
+
**d.** Identify each component's development status: new development, existing reuse as-is, existing design reuse, reengineering, planned for a specific build, etc. For existing components, provide identifying information (name, version, documentation references, location).
|
|
128
|
+
|
|
129
|
+
**e.** For each computer system or hardware aggregate, describe computer hardware resources: processors, memory, I/O devices, auxiliary storage, communications/network equipment. Include:
|
|
130
|
+
- Manufacturer, model, speed/capacity for processors
|
|
131
|
+
- Type, size, speed, configuration for memory
|
|
132
|
+
- Type, speed/capacity for I/O devices
|
|
133
|
+
- Type, amount, speed for auxiliary storage
|
|
134
|
+
- Data transfer rates, topologies, protocols for network equipment
|
|
135
|
+
- Growth capabilities and diagnostic capabilities
|
|
136
|
+
- Resource utilization allocation per CSCI (e.g., "20% of resource capacity allocated to CSCI-SA")
|
|
137
|
+
|
|
138
|
+
**f.** Present a **specification tree** — a diagram that identifies and shows the relationships among the planned specifications for the system components. This is a tree showing which specification documents (SSS, SRS, SDD, IRS, etc.) apply to which components.
|
|
64
139
|
|
|
65
140
|
- **4.2 Concept of execution**:
|
|
66
|
-
- Describe dynamic relationships between components
|
|
67
|
-
- Include: execution flow, data flow, state transitions, timing/sequencing, priorities, interrupt handling,
|
|
68
|
-
- Use sequence diagrams or
|
|
141
|
+
- Describe dynamic relationships between components — how they interact during system operation
|
|
142
|
+
- Include: execution flow, data flow, dynamically controlled sequencing, state transitions, timing/sequencing, priorities, interrupt handling, concurrent execution, dynamic allocation/deallocation, exception handling
|
|
143
|
+
- Use sequence diagrams, timing diagrams, or state transition diagrams where helpful
|
|
69
144
|
|
|
70
145
|
- **4.3 Interface design**:
|
|
71
|
-
- **4.3.1 Interface identification and diagrams**: List all interfaces with unique identifiers,
|
|
72
|
-
- **4.3.x (per interface)**: For each interface, document:
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
- Data
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
146
|
+
- **4.3.1 Interface identification and diagrams**: List all interfaces with project-unique identifiers. Identify interfacing entities by name, number, version. State which entities have fixed interface characteristics vs. developing ones. Provide interface diagrams.
|
|
147
|
+
- **4.3.x (per interface)**: For each interface, document the following as applicable:
|
|
148
|
+
- **a.** Priority assigned to the interface
|
|
149
|
+
- **b.** Type of interface (real-time data transfer, storage-and-retrieval, etc.)
|
|
150
|
+
- **c.** Data elements: names/identifiers (project-unique, natural-language, technical), data types, sizes/formats, units, ranges, accuracy/precision, timing/frequency/volume constraints, security/privacy constraints, sources and recipients
|
|
151
|
+
- **d.** Data element assemblies: records, messages, files, displays — their names, structure, medium, visual/auditory characteristics, relationships, constraints, sources and recipients
|
|
152
|
+
- **e.** Communication methods: links/media, message formatting, flow control, data transfer rates, routing/addressing, transmission services, safety/security considerations
|
|
153
|
+
- **f.** Protocols: priority/layer, packeting/fragmentation, error control/recovery, synchronization, status/reporting
|
|
154
|
+
- **g.** Physical compatibility considerations (dimensions, tolerances, loads, voltages, plug compatibility)
|
|
79
155
|
|
|
80
156
|
### Section 5: Requirements traceability
|
|
81
157
|
- **5.a**: Map each system component to the system requirements it satisfies
|
|
82
158
|
- **5.b**: Map each system requirement to the components that address it
|
|
159
|
+
- Ensure every system requirement is accounted for in both directions
|
|
83
160
|
|
|
84
161
|
### Section 6: Notes
|
|
85
|
-
-
|
|
162
|
+
- Alphabetical listing of all acronyms, abbreviations, and their meanings
|
|
163
|
+
- Glossary of terms and definitions needed to understand this document
|
|
86
164
|
- Background information to aid understanding
|
|
87
165
|
|
|
166
|
+
### Appendix A
|
|
167
|
+
- Include any supplementary material (charts, detailed data, classified information) that supports the main body
|
|
168
|
+
- Reference each appendix from the main body where the data would normally appear
|
|
169
|
+
|
|
88
170
|
## Step 4 — Validate
|
|
89
171
|
|
|
90
172
|
Before presenting to the user, verify:
|
|
91
|
-
- All template sections are populated or marked "Not applicable" with justification
|
|
92
|
-
- Every
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
173
|
+
- All template sections (1-6 and Appendix A) are populated or marked "Not applicable" with justification
|
|
174
|
+
- Every CSCI has a project-unique identifier and represents a logically cohesive grouping (not a 1:1 service mapping)
|
|
175
|
+
- The specification tree (4.1.f) is present and shows relationships among planned specifications
|
|
176
|
+
- System-wide design decisions (Section 3) are framed as behavioral responses to requirements — **no tool/product names appear as primary descriptions**
|
|
177
|
+
- Interface descriptions (4.3.x) cover all seven aspects (a through g) where applicable
|
|
178
|
+
- Requirements traceability (Section 5) covers all system requirements in both directions
|
|
96
179
|
- Document is written in {document_output_language}
|
|
97
180
|
|
|
98
181
|
## Step 5 — Review
|
|
@@ -100,9 +183,11 @@ Before presenting to the user, verify:
|
|
|
100
183
|
Present the complete document to {user_name} for review.
|
|
101
184
|
Highlight any sections where information was inferred or assumptions were made.
|
|
102
185
|
Specifically ask about:
|
|
103
|
-
- Are
|
|
104
|
-
- Are the interface descriptions accurate?
|
|
186
|
+
- Is the CSCI decomposition correct? Are there components that should be merged or split?
|
|
187
|
+
- Are the interface descriptions accurate and complete?
|
|
105
188
|
- Are there additional design decisions not captured in the Architecture?
|
|
189
|
+
- Does Section 3 correctly describe behavioral design without leaking implementation details?
|
|
190
|
+
- Is the specification tree in 4.1.f accurate?
|
|
106
191
|
|
|
107
192
|
Offer to refine any section based on feedback.
|
|
108
193
|
|
|
@@ -112,7 +197,9 @@ Write the final document to:
|
|
|
112
197
|
`{output_folder}/planning-artifacts/SSDD.md`
|
|
113
198
|
|
|
114
199
|
Confirm the file was saved and display a summary of:
|
|
115
|
-
- Number of
|
|
200
|
+
- Number of CSCIs identified (with their identifiers)
|
|
201
|
+
- Number of CSCs per CSCI
|
|
116
202
|
- Number of interfaces documented
|
|
117
203
|
- Number of system-wide design decisions captured
|
|
204
|
+
- Specification tree completeness
|
|
118
205
|
- Any sections marked "Not applicable"
|
|
@@ -20,6 +20,20 @@ Search the project for the following artifacts. Communicate in {communication_la
|
|
|
20
20
|
|
|
21
21
|
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
22
22
|
|
|
23
|
+
### Document Dependencies
|
|
24
|
+
|
|
25
|
+
The SSS is typically one of the earliest MIL-STD-498 documents generated, after the OCD. It defines system-level requirements that downstream documents (SSDD, SRS) will design against and trace to.
|
|
26
|
+
|
|
27
|
+
| Predecessor | Relationship | Search Pattern |
|
|
28
|
+
|-------------|-------------|----------------|
|
|
29
|
+
| OCD (Operational Concept Description) | Recommended — provides operational context and user needs | `**/OCD.md` |
|
|
30
|
+
|
|
31
|
+
If the OCD has been generated, it MUST be loaded and used as an input — particularly for deriving capability requirements (3.2) and understanding operational scenarios.
|
|
32
|
+
|
|
33
|
+
If the OCD has NOT been generated yet, **inform {user_name}**: "The OCD has not been generated yet. The SSS benefits from the operational context in the OCD. Would you like to proceed without it, or generate the OCD first?"
|
|
34
|
+
|
|
35
|
+
**Note**: The SSS feeds into the SSDD, SRS, and STD. Ensure requirements are written to be traceable — each requirement needs a unique identifier that downstream documents can reference.
|
|
36
|
+
|
|
23
37
|
## Step 2 — Load Template
|
|
24
38
|
|
|
25
39
|
Read the SSS template from:
|
|
@@ -29,59 +43,122 @@ This defines the required DID sections and content expectations for each paragra
|
|
|
29
43
|
|
|
30
44
|
## Step 3 — Generate Document
|
|
31
45
|
|
|
32
|
-
Write the document in {document_output_language}, populating each template section. Keep requirements at the **system/subsystem level** — avoid low-level software implementation details.
|
|
46
|
+
Write the document in {document_output_language}, populating each template section. Keep requirements at the **system/subsystem level** — avoid low-level software implementation details. Each requirement shall be assigned a project-unique identifier, be stated so that an objective test can be defined for it, and be annotated with qualification method(s).
|
|
33
47
|
|
|
34
48
|
### Section 1: Scope
|
|
35
49
|
- **1.1 Identification**: Extract system name, version, identifiers from PRD/Product Brief
|
|
36
50
|
- **1.2 System overview**: Summarize system purpose, nature, and stakeholders
|
|
37
|
-
- **1.3 Document overview**: Describe this SSS document's purpose and
|
|
51
|
+
- **1.3 Document overview**: Describe this SSS document's purpose, contents, and any security/privacy considerations
|
|
38
52
|
|
|
39
53
|
### Section 2: Referenced documents
|
|
40
|
-
- List all project artifacts and external standards used
|
|
54
|
+
- List all project artifacts and external standards used, with number, title, revision, and date
|
|
41
55
|
|
|
42
56
|
### Section 3: Requirements
|
|
43
57
|
|
|
44
|
-
- **3.1 Required states and modes**: Identify system-level operational states from Architecture/PRD (e.g., operational, maintenance, degraded, emergency). If none, state so explicitly
|
|
45
|
-
|
|
58
|
+
- **3.1 Required states and modes**: Identify system-level operational states from Architecture/PRD (e.g., operational, maintenance, degraded, emergency). If none, state so explicitly. If states/modes exist, correlate each requirement to the applicable states/modes.
|
|
59
|
+
|
|
60
|
+
- **3.2 System capability requirements**: Map high-level PRD features and Product Brief goals to system capabilities (3.2.1, 3.2.2, etc.). Each requirement must have:
|
|
46
61
|
- A unique identifier (SSS-CAP-001 format)
|
|
47
62
|
- Clear, testable statement
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
- **3.
|
|
53
|
-
- **3.
|
|
54
|
-
- **3.
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
- **
|
|
63
|
+
- Parameters: response times, throughput, accuracy, capacity, priorities as applicable
|
|
64
|
+
- Error handling: behavior under unexpected, unallowed, or out-of-bounds conditions
|
|
65
|
+
- Provisions for continuity of operations in emergencies
|
|
66
|
+
|
|
67
|
+
- **3.3 System external interface requirements**:
|
|
68
|
+
- **3.3.1 Interface identification and diagrams**: Identify all required external interfaces with project-unique identifiers. Designate interfacing entities by name, number, version. State which have fixed vs. developing characteristics. Provide interface diagrams.
|
|
69
|
+
- **3.3.x (per interface)**: For each external interface, specify requirements imposed on the system. Cover:
|
|
70
|
+
- **a.** Priority the system must assign the interface
|
|
71
|
+
- **b.** Type of interface (real-time data transfer, storage-and-retrieval, etc.)
|
|
72
|
+
- **c.** Data elements: names/identifiers, data types, sizes/formats, units, ranges, accuracy/precision, timing/frequency constraints, security constraints, sources and recipients
|
|
73
|
+
- **d.** Data element assemblies: records, messages, files, displays — names, structure, medium, characteristics, relationships, constraints
|
|
74
|
+
- **e.** Communication methods: links/media, message formatting, flow control, data transfer rates, routing, transmission services, security considerations
|
|
75
|
+
- **f.** Protocols: priority/layer, packeting, error control/recovery, synchronization, status/reporting
|
|
76
|
+
- **g.** Physical compatibility (dimensions, tolerances, loads, plug compatibility, voltages)
|
|
77
|
+
|
|
78
|
+
- **3.4 System internal interface requirements**: Interfaces between major subsystems. If left to design or component specs, state so. If requirements exist, follow 3.3 topics.
|
|
79
|
+
|
|
80
|
+
- **3.5 System internal data requirements**: System-level data stores, data flows between subsystems. If left to design or component specs, state so.
|
|
81
|
+
|
|
82
|
+
- **3.6 Adaptation requirements**: Installation and site-specific configuration needs, operational parameters that may vary
|
|
83
|
+
|
|
84
|
+
- **3.7 Safety requirements**: Requirements for preventing/minimizing unintended hazards to personnel, property, and environment. Include nuclear component requirements if applicable.
|
|
85
|
+
|
|
86
|
+
- **3.8 Security and privacy requirements**: Security/privacy environment, type/degree of protection, risks, safeguards, policy, accountability, certification criteria
|
|
87
|
+
|
|
88
|
+
- **3.9 System environment requirements**: Physical, regulatory, and operational environment constraints. For hardware-software systems: transportation, storage, operation conditions (wind, rain, temperature, shock, noise, electromagnetic radiation, explosions)
|
|
89
|
+
|
|
90
|
+
- **3.10 Computer resource requirements**:
|
|
91
|
+
- **3.10.1 Computer hardware requirements**: Required hardware — processors, memory, I/O devices, auxiliary storage, communications/network equipment (number, type, size, capacity)
|
|
92
|
+
- **3.10.2 Computer hardware resource utilization requirements**: Maximum allowable utilization (% of processor, memory, I/O, storage, network capacity) with conditions for measurement
|
|
93
|
+
- **3.10.3 Computer software requirements**: Required software (OS, DBMS, network software, utilities) with nomenclature, version, and documentation references
|
|
94
|
+
- **3.10.4 Computer communications requirements**: Geographic locations, network topology, transmission techniques, data transfer rates, gateways, use times, data volume, time boundaries, peak volumes, diagnostics
|
|
95
|
+
|
|
96
|
+
- **3.11 System quality factors**: Quantitative requirements for: functionality, reliability (e.g., MTBF for equipment), maintainability, availability, flexibility, portability, reusability, testability, usability
|
|
97
|
+
|
|
98
|
+
- **3.12 Design and construction constraints**: Requirements constraining system design and construction. For hardware-software systems, include physical requirements:
|
|
99
|
+
- **a.** Architecture constraints: required subsystems, standard/military/existing components, Government-furnished property
|
|
100
|
+
- **b.** Design/construction standards, data standards, programming languages, workmanship requirements
|
|
101
|
+
- **c.** Physical characteristics: weight limits, dimensional limits, color, protective coatings, interchangeability, transportability, setup requirements
|
|
102
|
+
- **d.** Materials: allowed/prohibited materials, toxic material handling, electromagnetic radiation limits
|
|
103
|
+
- **e.** Nameplates, part marking, serial/lot number marking, other identifying markings
|
|
104
|
+
- **f.** Flexibility and expandability for anticipated growth, technology changes, threat changes, mission changes
|
|
105
|
+
|
|
106
|
+
- **3.13 Personnel-related requirements**: Number of users, skill levels, duty cycles, training needs, human factors engineering (capabilities/limitations, foreseeable errors, critical indicator placement, adjustable workstations, error message color/duration, auditory signals)
|
|
107
|
+
|
|
108
|
+
- **3.14 Training-related requirements**: Training devices and training materials to be included in the system
|
|
109
|
+
|
|
110
|
+
- **3.15 Logistics-related requirements**: System maintenance, software support, transportation modes, supply-system requirements, facility impacts, equipment impacts
|
|
111
|
+
|
|
112
|
+
- **3.16 Other requirements**: Additional requirements not covered above. Examples: system documentation requirements (specifications, drawings, manuals, test plans)
|
|
113
|
+
|
|
114
|
+
- **3.17 Packaging requirements**: Requirements for packaging, labeling, and handling for delivery
|
|
115
|
+
|
|
116
|
+
- **3.18 Precedence and criticality of requirements**: Order of precedence, criticality, or assigned weights. Identify requirements critical to safety, security, or privacy
|
|
61
117
|
|
|
62
118
|
### Section 4: Qualification provisions
|
|
63
|
-
|
|
119
|
+
For each requirement in Section 3, specify the qualification method(s). A table may be used:
|
|
120
|
+
- **a.** Demonstration: Observable functional operation without instrumentation
|
|
121
|
+
- **b.** Test: Operation using instrumentation or special test equipment
|
|
122
|
+
- **c.** Analysis: Processing of accumulated data (reduction, interpolation, extrapolation)
|
|
123
|
+
- **d.** Inspection: Visual examination of system components, documentation
|
|
124
|
+
- **e.** Special qualification methods: Special tools, techniques, procedures, facilities, acceptance limits, standard samples, preproduction samples, pilot models/lots
|
|
64
125
|
|
|
65
126
|
### Section 5: Requirements traceability
|
|
66
|
-
-
|
|
67
|
-
- **
|
|
127
|
+
- For **system-level specifications**: This paragraph does not apply (state so).
|
|
128
|
+
- For **subsystem-level specifications**:
|
|
129
|
+
- **5.a**: Map each subsystem requirement to the system requirements it addresses. Note: some requirements may trace to "system implementation" or system design decisions.
|
|
130
|
+
- **5.b**: Map each system requirement allocated to this subsystem to the subsystem requirements that address it. All allocated requirements shall be accounted for.
|
|
68
131
|
|
|
69
132
|
### Section 6: Notes
|
|
70
|
-
-
|
|
133
|
+
- Alphabetical listing of all acronyms, abbreviations, and their meanings
|
|
134
|
+
- Glossary of terms and definitions
|
|
135
|
+
|
|
136
|
+
### Appendix A
|
|
137
|
+
- Include any supplementary material (requirement matrices, charts, classified data) that supports the main body
|
|
71
138
|
|
|
72
139
|
## Step 4 — Validate
|
|
73
140
|
|
|
74
141
|
Before presenting to the user, verify:
|
|
75
|
-
- All template sections are populated or marked "Not applicable" with justification
|
|
142
|
+
- All template sections (1-6 and Appendix A) are populated or marked "Not applicable" with justification
|
|
76
143
|
- Requirements are at the system level (not CSCI/software level)
|
|
77
144
|
- Every requirement has a unique identifier and is testable
|
|
78
|
-
-
|
|
145
|
+
- External interfaces (3.3.x) cover all seven categories (a through g) where applicable
|
|
146
|
+
- Computer resource requirements (3.10) has all four subsections (3.10.1-3.10.4)
|
|
147
|
+
- Design constraints (3.12) cover items a through f including physical requirements where applicable
|
|
148
|
+
- Qualification methods are specified for all requirements including special methods (4.e)
|
|
149
|
+
- Section 5 correctly handles system vs. subsystem distinction
|
|
79
150
|
- Document is written in {document_output_language}
|
|
80
151
|
|
|
81
152
|
## Step 5 — Review
|
|
82
153
|
|
|
83
154
|
Present the complete document to {user_name} for review.
|
|
84
155
|
Highlight any sections where information was inferred or assumptions were made.
|
|
156
|
+
Specifically ask about:
|
|
157
|
+
- Are all system capabilities captured?
|
|
158
|
+
- Are the interface requirements (3.3) accurate and complete?
|
|
159
|
+
- Are there physical or environmental constraints not captured in 3.9 and 3.12?
|
|
160
|
+
- Is the precedence/criticality ranking (3.18) correct?
|
|
161
|
+
|
|
85
162
|
Offer to refine any section based on feedback.
|
|
86
163
|
|
|
87
164
|
## Step 6 — Save
|
|
@@ -92,5 +169,6 @@ Write the final document to:
|
|
|
92
169
|
Confirm the file was saved and display a summary of:
|
|
93
170
|
- Total system requirements identified
|
|
94
171
|
- Number of capabilities documented
|
|
172
|
+
- Number of interfaces specified
|
|
95
173
|
- Qualification methods assigned
|
|
96
174
|
- Any sections marked "Not applicable"
|
|
@@ -20,6 +20,31 @@ Search the project for the following artifacts. Communicate in {communication_la
|
|
|
20
20
|
|
|
21
21
|
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
22
22
|
|
|
23
|
+
### Document Dependencies
|
|
24
|
+
|
|
25
|
+
The STD defines test descriptions that verify requirements specified in the SRS. It should be generated after both the SSDD and the SRS for the CSCI being tested.
|
|
26
|
+
|
|
27
|
+
| Predecessor | Relationship | Search Pattern |
|
|
28
|
+
|-------------|-------------|----------------|
|
|
29
|
+
| SRS (Software Requirements Specification) | **Required** — provides the requirements that tests must verify | `**/SRS.md`, `**/SRS-*.md` |
|
|
30
|
+
| SSDD (System/Subsystem Design Description) | **Required** — provides system context and CSCI decomposition | `**/SSDD.md` |
|
|
31
|
+
| SDD (Software Design Description) | Recommended — provides design details useful for test planning | `**/SDD.md`, `**/SDD-*.md` |
|
|
32
|
+
|
|
33
|
+
If the SRS has NOT been generated yet, **alert {user_name}**: "The SRS has not been generated yet. The STD needs the SRS to know which requirements must be verified by tests. Would you like to proceed without the SRS, or generate the SRS first?"
|
|
34
|
+
|
|
35
|
+
If the SSDD has NOT been generated yet, **alert {user_name}**: "The SSDD has not been generated yet. The STD benefits from the system design context in the SSDD. Would you like to proceed without it, or generate the SSDD first?"
|
|
36
|
+
|
|
37
|
+
If predecessor documents exist, they MUST be loaded and used as primary inputs. Test cases MUST trace back to specific SRS requirements.
|
|
38
|
+
|
|
39
|
+
### CSCI/System Scoping
|
|
40
|
+
|
|
41
|
+
Ask {user_name}: **"Is this STD for CSCI-level testing or system-level testing? If CSCI-level, which CSCI?"**
|
|
42
|
+
|
|
43
|
+
- For CSCI-level testing: requirements come from the CSCI's SRS
|
|
44
|
+
- For system-level testing: requirements come from the SSS
|
|
45
|
+
|
|
46
|
+
If the SSDD exists, present the list of CSCIs and ask the user to select scope.
|
|
47
|
+
|
|
23
48
|
## Step 2 — Load Template
|
|
24
49
|
|
|
25
50
|
Read the STD template from:
|
|
@@ -29,7 +54,7 @@ This defines the required DID sections and content expectations for each paragra
|
|
|
29
54
|
|
|
30
55
|
## Step 3 — Generate Document
|
|
31
56
|
|
|
32
|
-
Write the document in {document_output_language}, populating each template section
|
|
57
|
+
Write the document in {document_output_language}, populating each template section. **Important**: Safety precautions (marked by WARNING or CAUTION) and security/privacy considerations shall be included as applicable throughout Sections 3 and 4.
|
|
33
58
|
|
|
34
59
|
### Section 1: Scope
|
|
35
60
|
- **1.1 Identification**: Extract system and software identifiers from PRD/Architecture
|
|
@@ -37,52 +62,122 @@ Write the document in {document_output_language}, populating each template secti
|
|
|
37
62
|
- **1.3 Document overview**: Describe this STD document's purpose and contents
|
|
38
63
|
|
|
39
64
|
### Section 2: Referenced documents
|
|
40
|
-
- List all project artifacts, test standards, and other references
|
|
65
|
+
- List all project artifacts, test standards, and other references with number, title, revision, and date
|
|
41
66
|
|
|
42
67
|
### Section 3: Test preparations
|
|
43
68
|
|
|
44
|
-
For each test
|
|
69
|
+
Organize as 3.x subsections, one per test. For each test (3.x), provide a brief description and the following:
|
|
45
70
|
|
|
46
|
-
- **3.x.1 Hardware preparation**:
|
|
47
|
-
- **
|
|
48
|
-
- **
|
|
49
|
-
|
|
50
|
-
|
|
71
|
+
- **3.x.1 Hardware preparation**: Procedures to prepare hardware for the test:
|
|
72
|
+
- **a.** Specific hardware to be used, identified by name and number
|
|
73
|
+
- **b.** Switch settings and cabling necessary to connect the hardware
|
|
74
|
+
- **c.** Diagrams showing hardware, interconnecting control, and data paths
|
|
75
|
+
- **d.** Step-by-step instructions for placing hardware in a state of readiness
|
|
76
|
+
- **3.x.2 Software preparation**: Procedures to prepare software for the test:
|
|
77
|
+
- **a.** Specific software to be used in the test
|
|
78
|
+
- **b.** Storage medium of the item(s) under test
|
|
79
|
+
- **c.** Storage medium of related software (simulators, test drivers, databases)
|
|
80
|
+
- **d.** Instructions for loading software, including required sequence
|
|
81
|
+
- **e.** Instructions for software initialization common to more than one test case
|
|
82
|
+
- **3.x.3 Other pre-test preparations**: Any other personnel actions, preparations, or procedures necessary (test data setup, user accounts, external service mocks, environment variables)
|
|
51
83
|
|
|
52
|
-
|
|
84
|
+
When information duplicates another test's preparation, reference it rather than repeating it.
|
|
53
85
|
|
|
54
|
-
|
|
55
|
-
- **4.x.2 Test objective**: What requirement(s) this test verifies. Reference SRS requirement IDs if available
|
|
56
|
-
- **4.x.3 Input data**: Specific test inputs, preconditions, and initial state
|
|
57
|
-
- **4.x.4 Expected results**: Precise expected outputs, state changes, and behaviors
|
|
58
|
-
- **4.x.5 Criteria for evaluating results**: Pass/fail criteria
|
|
59
|
-
- **4.x.6 Test procedure**: Step-by-step procedure to execute the test
|
|
60
|
-
- **4.x.7 Assumptions and constraints**: Any assumptions about the test environment
|
|
86
|
+
### Section 4: Test descriptions
|
|
61
87
|
|
|
62
|
-
Group test cases by capability/feature (mapping to Epics) for clarity.
|
|
88
|
+
Organize as a **two-level hierarchy**: 4.x per test, then 4.x.y per test case within each test. Group test cases by capability/feature (mapping to Epics) for clarity.
|
|
89
|
+
|
|
90
|
+
For each test (4.x), identify the test by project-unique identifier. Then for each test case (4.x.y), provide:
|
|
91
|
+
|
|
92
|
+
- **4.x.y.1 Requirements addressed**: Identify the CSCI or system requirements addressed by this test case. Reference specific SRS requirement IDs (e.g., SRS-CAP-001). (Alternatively, this traceability may be provided in Section 5.a.)
|
|
93
|
+
|
|
94
|
+
- **4.x.y.2 Prerequisite conditions**: Conditions that must be established prior to the test case:
|
|
95
|
+
- **a.** Hardware and software configuration
|
|
96
|
+
- **b.** Flags, initial breakpoints, pointers, control parameters, or initial data to be set/reset
|
|
97
|
+
- **c.** Preset hardware conditions or electrical states
|
|
98
|
+
- **d.** Initial conditions for timing measurements
|
|
99
|
+
- **e.** Conditioning of the simulated environment
|
|
100
|
+
- **f.** Other special conditions peculiar to the test case
|
|
101
|
+
|
|
102
|
+
- **4.x.y.3 Test inputs**: Test inputs necessary for the test case:
|
|
103
|
+
- **a.** Name, purpose, and description (range of values, accuracy) of each test input
|
|
104
|
+
- **b.** Source of the test input and method for selecting it
|
|
105
|
+
- **c.** Whether the test input is real or simulated
|
|
106
|
+
- **d.** Time or event sequence of test input
|
|
107
|
+
- **e.** How input data will be controlled to:
|
|
108
|
+
1. Test with minimum/reasonable number of data types and values
|
|
109
|
+
2. Exercise with a range of valid data (overload, saturation, worst-case)
|
|
110
|
+
3. Exercise with invalid data types and values (error handling)
|
|
111
|
+
4. Permit retesting if necessary
|
|
112
|
+
|
|
113
|
+
- **4.x.y.4 Expected test results**: All expected results — both intermediate and final results
|
|
114
|
+
|
|
115
|
+
- **4.x.y.5 Criteria for evaluating results**: Criteria for intermediate and final results:
|
|
116
|
+
- **a.** Range or accuracy over which output can vary and still be acceptable
|
|
117
|
+
- **b.** Minimum number of input/output combinations that constitute acceptable results
|
|
118
|
+
- **c.** Maximum/minimum allowable test duration (time or number of events)
|
|
119
|
+
- **d.** Maximum number of interrupts, halts, or system breaks that may occur
|
|
120
|
+
- **e.** Allowable severity of processing errors
|
|
121
|
+
- **f.** Conditions under which the result is inconclusive and retesting is needed
|
|
122
|
+
- **g.** Conditions indicating irregularities in input data, test database, or procedures
|
|
123
|
+
- **h.** Allowable indications of control, status, and results readiness for next test case
|
|
124
|
+
- **i.** Additional criteria not covered above
|
|
125
|
+
|
|
126
|
+
- **4.x.y.6 Test procedure**: Defined as individually numbered steps in sequential order:
|
|
127
|
+
- **a.** Test operator actions and equipment operation for each step, including commands to:
|
|
128
|
+
1. Initiate the test case and apply test inputs
|
|
129
|
+
2. Inspect test conditions
|
|
130
|
+
3. Perform interim evaluations of test results
|
|
131
|
+
4. Record data
|
|
132
|
+
5. Halt or interrupt the test case
|
|
133
|
+
6. Request data dumps or other aids
|
|
134
|
+
7. Modify the database/data files
|
|
135
|
+
8. Repeat the test case if unsuccessful
|
|
136
|
+
9. Apply alternate modes as required
|
|
137
|
+
10. Terminate the test case
|
|
138
|
+
- **b.** Expected result and evaluation criteria for each step
|
|
139
|
+
- **c.** If addressing multiple requirements, which steps address which requirements
|
|
140
|
+
- **d.** Actions to follow in event of program stop or error (recording critical data, halting time-sensitive software, collecting records)
|
|
141
|
+
- **e.** Procedures for reducing and analyzing test results (detect output, identify media/location, evaluate for continuation, evaluate against required output)
|
|
142
|
+
|
|
143
|
+
- **4.x.y.7 Assumptions and constraints**: Assumptions made and constraints imposed (limitations on timing, interfaces, equipment, personnel, database). If waivers/exceptions to limits are approved, address their effects.
|
|
63
144
|
|
|
64
145
|
### Section 5: Requirements traceability
|
|
65
|
-
- Map each test case to the
|
|
66
|
-
-
|
|
67
|
-
- Identify any requirements that cannot be tested and explain why
|
|
146
|
+
- **5.a**: Map each test case to the system or CSCI requirements it addresses. If a test case addresses multiple requirements, indicate which test procedure steps address which requirements.
|
|
147
|
+
- **5.b**: Map each requirement covered by this STD to the test case(s) that address it. For CSCI testing, trace from each SRS requirement. For system testing, trace from each SSS requirement. Indicate specific test procedure steps where applicable.
|
|
148
|
+
- Ensure every requirement has at least one associated test case. Identify any requirements that cannot be tested and explain why.
|
|
68
149
|
|
|
69
150
|
### Section 6: Notes
|
|
70
|
-
-
|
|
151
|
+
- Alphabetical listing of all acronyms, abbreviations, and their meanings
|
|
152
|
+
- Glossary of test terminology
|
|
71
153
|
- References to test automation frameworks or tools used
|
|
72
154
|
|
|
155
|
+
### Appendix A
|
|
156
|
+
- Test procedures may be included as an appendix for convenience in document maintenance
|
|
157
|
+
- Include any supplementary material (test data sets, detailed configurations)
|
|
158
|
+
|
|
73
159
|
## Step 4 — Validate
|
|
74
160
|
|
|
75
161
|
Before presenting to the user, verify:
|
|
76
|
-
- All template sections are populated or marked "Not applicable" with justification
|
|
162
|
+
- All template sections (1-6 and Appendix A) are populated or marked "Not applicable" with justification
|
|
163
|
+
- Test hierarchy is preserved: 4.x (test) → 4.x.y (test case) → 4.x.y.1-7 (details)
|
|
164
|
+
- Every test case has all seven sub-items (4.x.y.1 through 4.x.y.7)
|
|
77
165
|
- Every test case has a unique identifier and clear pass/fail criteria
|
|
78
|
-
- Requirements traceability is complete
|
|
166
|
+
- Requirements traceability is complete — every SRS/SSS requirement has at least one test case
|
|
79
167
|
- Test procedures are detailed enough to be repeatable
|
|
168
|
+
- Safety precautions and security considerations are included where applicable
|
|
80
169
|
- Document is written in {document_output_language}
|
|
81
170
|
|
|
82
171
|
## Step 5 — Review
|
|
83
172
|
|
|
84
173
|
Present the complete document to {user_name} for review.
|
|
85
174
|
Highlight any requirements without test coverage.
|
|
175
|
+
Specifically ask about:
|
|
176
|
+
- Are the test preparations complete for the target environment?
|
|
177
|
+
- Are the evaluation criteria (4.x.y.5) realistic and measurable?
|
|
178
|
+
- Are there additional test cases needed for edge cases or error scenarios?
|
|
179
|
+
- Are the test procedures detailed enough to be executed by someone unfamiliar with the system?
|
|
180
|
+
|
|
86
181
|
Offer to refine any section based on feedback.
|
|
87
182
|
|
|
88
183
|
## Step 6 — Save
|
|
@@ -91,7 +186,8 @@ Write the final document to:
|
|
|
91
186
|
`{output_folder}/planning-artifacts/STD.md`
|
|
92
187
|
|
|
93
188
|
Confirm the file was saved and display a summary of:
|
|
94
|
-
- Total number of
|
|
189
|
+
- Total number of tests (4.x level)
|
|
190
|
+
- Total number of test cases (4.x.y level)
|
|
95
191
|
- Requirements coverage percentage
|
|
96
192
|
- Any untestable requirements identified
|
|
97
193
|
- Any sections marked "Not applicable"
|