ma-agents 2.17.1 → 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 +1 -1
- 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/mil498-templates/SDD.md +163 -0
- package/package.json +1 -1
package/lib/agents.js
CHANGED
|
@@ -233,7 +233,7 @@ const agents = [
|
|
|
233
233
|
{
|
|
234
234
|
id: 'bmm-mil498',
|
|
235
235
|
name: 'MIL-STD-498 Expert',
|
|
236
|
-
version: '
|
|
236
|
+
version: '2.0.0',
|
|
237
237
|
category: 'bmad',
|
|
238
238
|
description: 'MIL-STD-498 Documentation Expert',
|
|
239
239
|
getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills', 'mil498'),
|
|
@@ -20,6 +20,15 @@ Search the project for the following artifacts. Communicate in {communication_la
|
|
|
20
20
|
|
|
21
21
|
If the **PRD** is missing, warn the user and ask whether to proceed with available data or stop.
|
|
22
22
|
|
|
23
|
+
### Document Dependencies
|
|
24
|
+
|
|
25
|
+
The OCD is the **first document** in the MIL-STD-498 generation chain. It has no MIL-STD-498 predecessor documents — it draws from project artifacts (PRD, Product Brief, UX Designs) only.
|
|
26
|
+
|
|
27
|
+
**Note**: The OCD feeds into the SSS and other downstream documents. Ensure the operational scenarios and user descriptions are thorough, as they will be referenced by:
|
|
28
|
+
- **SSS** — for deriving system requirements from operational needs
|
|
29
|
+
- **SSDD** — for understanding operational context behind design decisions
|
|
30
|
+
- **SDP** — for understanding the operational environment
|
|
31
|
+
|
|
23
32
|
## Step 2 — Load Template
|
|
24
33
|
|
|
25
34
|
Read the OCD template from:
|
|
@@ -37,48 +46,81 @@ Write the document in {document_output_language}, populating each template secti
|
|
|
37
46
|
- **1.3 Document overview**: Describe this OCD document's purpose and contents
|
|
38
47
|
|
|
39
48
|
### Section 2: Referenced documents
|
|
40
|
-
- List all project artifacts used as input sources
|
|
49
|
+
- List all project artifacts used as input sources, with number, title, revision, and date
|
|
41
50
|
|
|
42
51
|
### Section 3: Current system or situation
|
|
43
|
-
- **3.1 Background, objectives, and scope**: Describe the problem domain and
|
|
44
|
-
- **3.2 Operational policies and constraints**: Current business rules and constraints
|
|
45
|
-
- **3.3 Description of current system or situation**: How things work today
|
|
46
|
-
-
|
|
47
|
-
- Major components and interconnections
|
|
48
|
-
- Interfaces to external systems
|
|
49
|
-
-
|
|
50
|
-
- **
|
|
51
|
-
- **
|
|
52
|
+
- **3.1 Background, objectives, and scope**: Describe the problem domain, mission/objectives, and scope from the PRD
|
|
53
|
+
- **3.2 Operational policies and constraints**: Current business rules, operational policies, and constraints
|
|
54
|
+
- **3.3 Description of current system or situation**: How things work today. Describe differences associated with different states or modes of operation. Include all of the following (items a through h per the DID):
|
|
55
|
+
- **a.** The operational environment and its characteristics
|
|
56
|
+
- **b.** Major system components and the interconnections among them
|
|
57
|
+
- **c.** Interfaces to external systems or procedures
|
|
58
|
+
- **d.** Capabilities/functions of the current system
|
|
59
|
+
- **e.** Charts and descriptions depicting inputs, outputs, data flow, and manual/automated processes sufficient to understand the current system from the user's point of view
|
|
60
|
+
- **f.** Performance characteristics: speed, throughput, volume, frequency
|
|
61
|
+
- **g.** Quality attributes: reliability, maintainability, availability, flexibility, portability, usability, efficiency
|
|
62
|
+
- **h.** Provisions for safety, security, privacy, and continuity of operations in emergencies
|
|
63
|
+
- **3.4 Users or involved personnel**: Identify all user types and stakeholders. Include organizational structures, training/skills, responsibilities, activities, and interactions
|
|
64
|
+
- **3.5 Support concept**: Current support and maintenance approach — support agencies, facilities, equipment, support software, repair/replacement criteria, maintenance levels and cycles
|
|
52
65
|
|
|
53
66
|
### Section 4: Justification for and nature of changes
|
|
54
|
-
- **4.1 Justification for
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- **
|
|
60
|
-
- **5
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
- **
|
|
67
|
-
- **
|
|
67
|
+
- **4.1 Justification for change**:
|
|
68
|
+
- **a.** New or modified aspects of user needs, threats, missions, objectives, environments, interfaces, personnel, or other factors requiring a new/modified system
|
|
69
|
+
- **b.** Deficiencies or limitations in the current system that make it unable to respond to these factors
|
|
70
|
+
- **4.2 Description of needed changes**: New or modified capabilities, functions, processes, interfaces, or other changes needed
|
|
71
|
+
- **4.3 Priorities among the changes**: Identify each change as essential, desirable, or optional. Prioritize the desirable and optional changes
|
|
72
|
+
- **4.4 Changes considered but not included**: Identify changes that were considered but excluded, with rationale for not including them
|
|
73
|
+
- **4.5 Assumptions and constraints**: Any assumptions and constraints applicable to the changes identified
|
|
74
|
+
|
|
75
|
+
### Section 5: Concept for the new or modified system
|
|
76
|
+
- **5.1 Background, objectives, and scope**: Vision, mission/objectives, and scope for the new system from Product Brief/PRD
|
|
77
|
+
- **5.2 Operational policies and constraints**: New or changed operational policies and constraints
|
|
78
|
+
- **5.3 Description of the new or modified system**: How the new system will work. Describe differences associated with different states or modes. Include all of the following (items a through h, mirroring Section 3.3):
|
|
79
|
+
- **a.** The operational environment and its characteristics
|
|
80
|
+
- **b.** Major system components and the interconnections among them
|
|
81
|
+
- **c.** Interfaces to external systems or procedures
|
|
82
|
+
- **d.** Capabilities/functions of the new or modified system
|
|
83
|
+
- **e.** Charts and descriptions depicting inputs, outputs, data flow, and manual/automated processes from the user's point of view
|
|
84
|
+
- **f.** Performance characteristics: speed, throughput, volume, frequency
|
|
85
|
+
- **g.** Quality attributes: reliability, maintainability, availability, flexibility, portability, usability, efficiency
|
|
86
|
+
- **h.** Provisions for safety, security, privacy, and continuity of operations in emergencies
|
|
87
|
+
- **5.4 Users/affected personnel**: How user roles change with the new system — organizational structures, training/skills, responsibilities, and interactions
|
|
88
|
+
- **5.5 Support concept**: Planned support approach — support agencies, facilities, equipment, support software, repair/replacement criteria, maintenance levels and cycles
|
|
68
89
|
|
|
69
90
|
### Section 6: Operational scenarios
|
|
70
|
-
- Document
|
|
71
|
-
- Each scenario should
|
|
72
|
-
- Include
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
91
|
+
- Document one or more operational scenarios that illustrate the role of the new/modified system
|
|
92
|
+
- Each scenario should include: the system's interaction with users, interfaces with other systems, and all states/modes identified
|
|
93
|
+
- Include: events, actions, stimuli, information, interactions
|
|
94
|
+
- Cover both normal operation and exception/error scenarios
|
|
95
|
+
- Reference may be made to other media (e.g., videos, mockups) to provide part of this information
|
|
96
|
+
|
|
97
|
+
### Section 7: Summary of impacts
|
|
98
|
+
- **7.1 Operational impacts**: Anticipated operational impacts on user, acquirer, developer, and support agencies. Include: changes in interfaces with operating centers, procedure changes, use of new data sources, changes in data input quantity/type/timing, changes in data retention, new modes of operation
|
|
99
|
+
- **7.2 Organizational impacts**: Anticipated organizational impacts. Include: modification of responsibilities, addition/elimination of positions, training/retraining needs, changes in number/skill levels/locations of personnel
|
|
100
|
+
- **7.3 Impacts during development**: Anticipated impacts during the development effort. Include: meetings/discussions, database development/modification, training, parallel operation of new and existing systems, testing impacts, monitoring activities
|
|
101
|
+
|
|
102
|
+
### Section 8: Analysis of the proposed system
|
|
103
|
+
- **8.1 Summary of advantages**: Qualitative and quantitative summary of advantages — new capabilities, enhanced capabilities, improved performance, and their relationship to deficiencies identified in 4.1
|
|
104
|
+
- **8.2 Summary of disadvantages/limitations**: Qualitative and quantitative summary of disadvantages — degraded/missing capabilities, less-than-desired performance, excessive resource use, undesirable operational impacts, conflicts with user assumptions
|
|
105
|
+
- **8.3 Alternatives and trade-offs considered**: Major alternatives considered, trade-offs among them, and rationale for the decisions reached
|
|
106
|
+
|
|
107
|
+
### Section 9: Notes
|
|
108
|
+
- Alphabetical listing of all acronyms, abbreviations, and their meanings
|
|
109
|
+
- Glossary of terms and definitions
|
|
110
|
+
- Background information to aid understanding
|
|
111
|
+
|
|
112
|
+
### Appendix A
|
|
113
|
+
- Include any supplementary material (charts, detailed data, classified information) that supports the main body
|
|
114
|
+
- Reference each appendix from the main body where the data would normally appear
|
|
76
115
|
|
|
77
116
|
## Step 4 — Validate
|
|
78
117
|
|
|
79
118
|
Before presenting to the user, verify:
|
|
80
|
-
- All template sections are populated or marked "Not applicable" with justification
|
|
119
|
+
- All template sections (1-9 and Appendix A) are populated or marked "Not applicable" with justification
|
|
81
120
|
- Document is written from the user/stakeholder perspective, not the developer perspective
|
|
121
|
+
- Sections 3.3 and 5.3 cover all eight items (a through h)
|
|
122
|
+
- Section 4 includes all five subsections (4.1-4.5)
|
|
123
|
+
- Section 7 (impacts) and Section 8 (analysis) are present and substantive
|
|
82
124
|
- Operational scenarios are complete and realistic
|
|
83
125
|
- Document is written in {document_output_language}
|
|
84
126
|
|
|
@@ -86,6 +128,12 @@ Before presenting to the user, verify:
|
|
|
86
128
|
|
|
87
129
|
Present the complete document to {user_name} for review.
|
|
88
130
|
Highlight any sections where information was inferred or assumptions were made.
|
|
131
|
+
Specifically ask about:
|
|
132
|
+
- Are the current system descriptions (Section 3) accurate?
|
|
133
|
+
- Are the operational scenarios (Section 6) complete?
|
|
134
|
+
- Are there additional impacts (Section 7) not captured?
|
|
135
|
+
- Does the analysis (Section 8) accurately represent advantages and disadvantages?
|
|
136
|
+
|
|
89
137
|
Offer to refine any section based on feedback.
|
|
90
138
|
|
|
91
139
|
## Step 6 — Save
|
|
@@ -96,4 +144,6 @@ Write the final document to:
|
|
|
96
144
|
Confirm the file was saved and display a summary of:
|
|
97
145
|
- Number of user roles identified
|
|
98
146
|
- Number of operational scenarios documented
|
|
147
|
+
- Number of changes justified (Section 4)
|
|
148
|
+
- Number of impacts identified (Section 7)
|
|
99
149
|
- Any sections marked "Not applicable"
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## Objective
|
|
6
6
|
|
|
7
|
-
Generate a compliant SDD document by mapping the
|
|
7
|
+
Generate a compliant SDD document by mapping the CSCI's software design to the MIL-STD-498 Software Design Description template structure. The SDD describes the design of a single CSCI (Computer Software Configuration Item) — its internal architecture, components (CSCs), interfaces, and detailed unit design.
|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Critical principle**: The SDD is a **per-CSCI document**. It designs the internal structure of ONE CSCI as defined in the SSDD. The primary inputs are the SRS (what this CSCI must do), the Architecture document (how it's built), and the Epics/Stories (detailed behavioral specifications and acceptance criteria).
|
|
10
10
|
|
|
11
11
|
## Step 1 — Discover Project Artifacts
|
|
12
12
|
|
|
@@ -15,82 +15,161 @@ Search the project for the following artifacts. Communicate in {communication_la
|
|
|
15
15
|
| Priority | Artifact | Search Pattern |
|
|
16
16
|
|----------|----------|----------------|
|
|
17
17
|
| Required | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
18
|
-
| Required |
|
|
19
|
-
|
|
|
20
|
-
| Recommended |
|
|
18
|
+
| Required | Epics | `**/epics*.md`, `**/epic-*.md` |
|
|
19
|
+
| Required | User Stories | `**/stories/*.md`, `**/story-*.md`, `**/user-stories*.md` |
|
|
20
|
+
| Recommended | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
21
21
|
| Optional | UX Designs | `**/ux-design*.md`, `**/ux-*.md` |
|
|
22
22
|
| Optional | Product Brief | `**/product-brief*.md` |
|
|
23
23
|
|
|
24
24
|
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
25
25
|
|
|
26
|
+
### Document Dependencies
|
|
27
|
+
|
|
28
|
+
The SDD is a **per-CSCI document** that designs the internal structure of a CSCI against its requirements. It MUST be generated after the SRS (which defines what the CSCI must do) and the SSDD (which defines the CSCI boundaries).
|
|
29
|
+
|
|
30
|
+
| Predecessor | Relationship | Search Pattern |
|
|
31
|
+
|-------------|-------------|----------------|
|
|
32
|
+
| SRS (Software Requirements Specification) | **Required** — provides the CSCI requirements this SDD designs against | `**/SRS.md`, `**/SRS-*.md` |
|
|
33
|
+
| SSDD (System/Subsystem Design Description) | **Required** — defines CSCI boundaries, system-wide design decisions, and allocated requirements | `**/SSDD.md` |
|
|
34
|
+
| SSS (System/Subsystem Specification) | Optional — provides system-level requirements context | `**/SSS.md` |
|
|
35
|
+
|
|
36
|
+
If the SRS has NOT been generated yet, **alert {user_name}**: "The SRS has not been generated yet. The SDD designs the internal structure of a CSCI against the requirements defined in its SRS. Would you like to proceed without the SRS, or generate the SRS first?"
|
|
37
|
+
|
|
38
|
+
If the SSDD has NOT been generated yet, **alert {user_name}**: "The SSDD has not been generated yet. The SDD needs the SSDD to understand CSCI boundaries and system-wide design decisions. Would you like to proceed without the SSDD, or generate the SSDD first?"
|
|
39
|
+
|
|
40
|
+
If predecessor documents exist, they MUST be loaded and used as primary inputs. The SDD should reference them in Section 2 and trace design decisions to SRS requirements.
|
|
41
|
+
|
|
42
|
+
### CSCI Scoping
|
|
43
|
+
|
|
44
|
+
Ask {user_name}: **"Which CSCI is this SDD for?"**
|
|
45
|
+
|
|
46
|
+
If the SSDD exists, present the list of CSCIs defined in it and ask the user to select one. The SDD will describe the design of ONLY the selected CSCI — its internal CSCs (Computer Software Components) and software units.
|
|
47
|
+
|
|
48
|
+
If generating SDD documents for multiple CSCIs, generate them one at a time, each as a separate document.
|
|
49
|
+
|
|
50
|
+
### Source Mapping
|
|
51
|
+
|
|
52
|
+
For the selected CSCI, the agent must:
|
|
53
|
+
1. From the **SSDD**: Extract the CSCI's allocated system requirements, its CSCs, and the system-wide design decisions that constrain it
|
|
54
|
+
2. From the **SRS**: Extract all CSCI requirements (capabilities, interfaces, quality factors, constraints) — these are what the SDD must design against
|
|
55
|
+
3. From the **Architecture**: Extract the internal structure, technology stack, patterns, and integration approach for this CSCI's components
|
|
56
|
+
4. From **Epics/Stories**: Extract detailed behavioral specifications, acceptance criteria, algorithms, business rules, and processing logic that inform the detailed design (Section 5)
|
|
57
|
+
|
|
26
58
|
## Step 2 — Load Template
|
|
27
59
|
|
|
28
|
-
Read the
|
|
60
|
+
Read the SDD template from:
|
|
29
61
|
`{template}`
|
|
30
62
|
|
|
31
|
-
This defines the required DID sections
|
|
63
|
+
This defines the required DID sections and content expectations for each paragraph.
|
|
32
64
|
|
|
33
65
|
## Step 3 — Generate Document
|
|
34
66
|
|
|
35
|
-
Write the document in {document_output_language}, populating each template section
|
|
67
|
+
Write the document in {document_output_language}, populating each template section.
|
|
36
68
|
|
|
37
69
|
### Section 1: Scope
|
|
38
|
-
- **1.1 Identification**: Identify the CSCI by name, version, and project-unique identifier
|
|
39
|
-
- **1.2 System overview**: Summarize the system and this CSCI's role within it
|
|
70
|
+
- **1.1 Identification**: Identify the CSCI by name, version, and project-unique identifier (as assigned in the SSDD)
|
|
71
|
+
- **1.2 System overview**: Summarize the system and this CSCI's role within it, referencing the SSDD
|
|
40
72
|
- **1.3 Document overview**: Describe this SDD document's purpose and contents
|
|
41
73
|
|
|
42
74
|
### Section 2: Referenced documents
|
|
43
|
-
- List all project artifacts
|
|
75
|
+
- List all predecessor MIL-STD-498 documents (SSDD, SRS, SSS) and project artifacts used. Include number, title, revision, and date
|
|
44
76
|
|
|
45
77
|
### Section 3: CSCI-wide design decisions
|
|
46
78
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
-
|
|
79
|
+
**CRITICAL BEHAVIORAL GUIDANCE**: Like the SSDD, this section describes the CSCI's behavioral design — how it will behave from a user's point of view, ignoring internal implementation. Follow these rules:
|
|
80
|
+
|
|
81
|
+
1. **Requirements-driven**: Every design decision MUST cite the specific SRS requirement(s) it satisfies
|
|
82
|
+
2. **Behavioral, not implementation**: Describe patterns and approaches first, then technology choices parenthetically if essential
|
|
83
|
+
3. **State-dependent decisions**: If a design decision depends on CSCI states or modes, indicate this dependency
|
|
84
|
+
|
|
85
|
+
Document the following CSCI-wide design decisions (items a through e per the DID):
|
|
54
86
|
|
|
55
|
-
|
|
87
|
+
- **a. CSCI behavioral design**: How the CSCI behaves in response to inputs and conditions — actions, response times, algorithms/rules, error handling. Describe from the user's perspective. Reference SRS capability requirements (3.2.x)
|
|
88
|
+
- **b. Database/data file design**: How databases and data files within this CSCI appear to users and external systems. Reference SRS internal data requirements (3.5). If Database Design Descriptions (DBDDs) exist, they may be referenced
|
|
89
|
+
- **c. Safety, security, privacy**: Selected approaches to meeting safety, security, and privacy requirements for this CSCI. Place in **separate subparagraphs** for critical requirements. Reference SRS sections 3.7, 3.8
|
|
90
|
+
- **d. Other CSCI-wide design decisions**: Flexibility, availability, maintainability approaches. Rationale for architectural patterns selected. Reference SRS quality factors (3.11) and design constraints (3.12)
|
|
91
|
+
- **e. Design and implementation standards**: Standards to be followed for design, coding, testing (reference SDP if available)
|
|
56
92
|
|
|
57
93
|
### Section 4: CSCI architectural design
|
|
58
94
|
|
|
59
|
-
- **4.1 CSCI components
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
95
|
+
- **4.1 CSCI components** (items a through f — all are required):
|
|
96
|
+
|
|
97
|
+
**a.** Identify all CSCs (Computer Software Components) within this CSCI — modules, packages, services, libraries. Each CSC shall have a project-unique identifier. Also identify software units within CSCs where applicable.
|
|
98
|
+
|
|
99
|
+
**b.** Show static ("consists of") relationships using component/class/package diagrams. Multiple relationship views may be presented.
|
|
100
|
+
|
|
101
|
+
**c.** State each CSC's purpose and the SRS requirements allocated to it. (Alternatively, allocation may be provided in Section 6.a.)
|
|
102
|
+
|
|
103
|
+
**d.** Identify each CSC's development status: new development, existing reuse as-is, existing design reuse, reengineering, etc. For existing components, provide identifying information.
|
|
104
|
+
|
|
105
|
+
**e.** Describe **resource utilization** — allocation of computer hardware resources (processor capacity, memory, I/O, storage) to each CSC. State conditions under which utilization will be measured. (This differs from SSDD 4.1.e which describes hardware; here it's about utilization allocation.)
|
|
106
|
+
|
|
107
|
+
**f.** Describe the CSCI's **program library** — contents including computer files, data files, program files, and their relationships.
|
|
108
|
+
|
|
109
|
+
- **4.2 Concept of execution**:
|
|
110
|
+
- Describe dynamic relationships between CSCs — how they interact during operation
|
|
111
|
+
- Include: execution flow, data flow, state transitions, timing/sequencing, priorities, interrupt handling, concurrent execution, dynamic allocation/deallocation, exception handling
|
|
112
|
+
- Use sequence diagrams, state transition diagrams, or timing diagrams where helpful
|
|
113
|
+
|
|
114
|
+
- **4.3 Interface design**:
|
|
115
|
+
- **4.3.1 Interface identification and diagrams**: List all interfaces (between CSCs and with external entities) with project-unique identifiers. Identify fixed vs. developing interfaces. Provide interface diagrams.
|
|
116
|
+
- **4.3.x (per interface)**: For each interface, document as applicable:
|
|
117
|
+
- **a.** Priority assigned to the interface
|
|
118
|
+
- **b.** Type of interface (real-time data transfer, storage-and-retrieval, etc.)
|
|
119
|
+
- **c.** Data elements: names/identifiers, data types, sizes/formats, units, ranges, accuracy/precision, timing/frequency constraints, security constraints, sources and recipients
|
|
120
|
+
- **d.** Data element assemblies: records, messages, data structures — names, structure, medium, relationships, constraints
|
|
121
|
+
- **e.** Communication methods: links/media, message formatting, flow control, data transfer rates, routing
|
|
122
|
+
- **f.** Protocols: priority/layer, packeting, error control/recovery, synchronization
|
|
123
|
+
- **g.** Physical compatibility considerations
|
|
65
124
|
|
|
66
125
|
### Section 5: CSCI detailed design
|
|
67
126
|
|
|
68
|
-
For each
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
127
|
+
**This is the most important section of the SDD.** For each software unit identified in Section 4.1, provide a detailed design description. Organize as subsections (5.x per CSC, or 5.x per software unit):
|
|
128
|
+
|
|
129
|
+
For each software unit (5.x), document the following items (a through f per the DID):
|
|
130
|
+
|
|
131
|
+
- **a. Unit design decisions**: Design decisions specific to this unit, including algorithms, processing logic, data transformations, and business rules. **Extract from Epics and User Stories** — map Story acceptance criteria to specific processing logic. Reference the SRS requirements this unit satisfies.
|
|
132
|
+
- **b. Design constraints**: Any constraints on the unit's design imposed by the CSCI-wide decisions, standards, or external interfaces
|
|
133
|
+
- **c. Programming language**: If different from the CSCI-wide language specified in Section 3.e
|
|
134
|
+
- **d. Control flow / logic description**: Describe the unit's control logic — how it processes inputs, makes decisions, handles conditions. Use flowcharts, pseudocode, or decision tables where helpful. Map from Story acceptance criteria and business rules.
|
|
135
|
+
- **e. Data elements and structures**: Internal data elements, record layouts, data structures, file formats used by the unit
|
|
136
|
+
- **f. Restrictions and limitations**: Any restrictions on the unit's use, dependencies, known limitations, or assumptions
|
|
73
137
|
|
|
74
138
|
### Section 6: Requirements traceability
|
|
75
|
-
- **6.a**: Map each
|
|
76
|
-
- **6.b**: Map each requirement to the
|
|
139
|
+
- **6.a**: Map each CSC/software unit to the SRS requirements it addresses
|
|
140
|
+
- **6.b**: Map each SRS requirement to the CSCs/units that implement it
|
|
141
|
+
- Ensure every SRS requirement allocated to this CSCI is accounted for in both directions
|
|
77
142
|
|
|
78
143
|
### Section 7: Notes
|
|
79
|
-
-
|
|
144
|
+
- Alphabetical listing of all acronyms, abbreviations, and their meanings
|
|
145
|
+
- Glossary of design terms and definitions
|
|
146
|
+
|
|
147
|
+
### Appendix A
|
|
148
|
+
- Include any supplementary material (detailed algorithms, data dictionaries, message format specifications) that supports the main body
|
|
80
149
|
|
|
81
150
|
## Step 4 — Validate
|
|
82
151
|
|
|
83
152
|
Before presenting to the user, verify:
|
|
84
|
-
- All template sections are populated or marked "Not applicable" with justification
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
153
|
+
- All template sections (1-7 and Appendix A) are populated or marked "Not applicable" with justification
|
|
154
|
+
- This SDD covers exactly ONE CSCI as defined in the SSDD
|
|
155
|
+
- Every CSC has a project-unique identifier
|
|
156
|
+
- CSCI-wide design decisions (Section 3) are framed as behavioral responses to SRS requirements
|
|
157
|
+
- Section 5 (detailed design) has entries for every software unit, with algorithms and logic extracted from Epics/Stories
|
|
158
|
+
- Resource utilization (4.1.e) and program library (4.1.f) are documented
|
|
159
|
+
- Interface descriptions (4.3.x) cover all seven aspects (a through g) where applicable
|
|
160
|
+
- Requirements traceability (Section 6) covers all SRS requirements in both directions
|
|
88
161
|
- Document is written in {document_output_language}
|
|
89
162
|
|
|
90
163
|
## Step 5 — Review
|
|
91
164
|
|
|
92
165
|
Present the complete document to {user_name} for review.
|
|
93
|
-
Highlight any
|
|
166
|
+
Highlight any sections where information was inferred or assumptions were made.
|
|
167
|
+
Specifically ask about:
|
|
168
|
+
- Is the CSC decomposition correct for this CSCI?
|
|
169
|
+
- Are the algorithms and processing logic in Section 5 accurately extracted from the Stories?
|
|
170
|
+
- Are there design decisions not captured in the Architecture or Epics?
|
|
171
|
+
- Is the resource utilization allocation realistic?
|
|
172
|
+
|
|
94
173
|
Offer to refine any section based on feedback.
|
|
95
174
|
|
|
96
175
|
## Step 6 — Save
|
|
@@ -98,7 +177,13 @@ Offer to refine any section based on feedback.
|
|
|
98
177
|
Write the final document to:
|
|
99
178
|
`{output_folder}/planning-artifacts/SDD.md`
|
|
100
179
|
|
|
180
|
+
(If this is not the first CSCI's SDD, save as `SDD-{CSCI-identifier}.md`)
|
|
181
|
+
|
|
101
182
|
Confirm the file was saved and display a summary of:
|
|
102
|
-
-
|
|
183
|
+
- CSCI identifier and name
|
|
184
|
+
- Number of CSCs identified
|
|
185
|
+
- Number of software units with detailed design
|
|
103
186
|
- Number of interfaces documented
|
|
187
|
+
- Number of SRS requirements traced
|
|
188
|
+
- Requirements coverage percentage
|
|
104
189
|
- Any sections marked "Not applicable"
|