-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrules.json
More file actions
373 lines (373 loc) · 12.9 KB
/
Copy pathrules.json
File metadata and controls
373 lines (373 loc) · 12.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
{
"standard": "ARP4754A",
"purpose": "System Requirements Validation",
"version": "1.1",
"rulesets": [
{
"category": "completeness",
"arp4754a_section": "5.3",
"description": "Requirements Completeness",
"rules": [
{
"rule_id": "REQ-C01",
"title": "Unique requirement identifier",
"objective": "Ensure each requirement is uniquely identifiable",
"checks": [
"Verify the requirement has an identifier",
"Verify the identifier is unique across the requirement set",
"Verify the identifier adheres to the project's specified formatting or naming convention"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-C02",
"title": "Unambiguous requirement wording",
"objective": "Eliminate ambiguity in requirement text",
"checks": [
"Detect ambiguous or subjective terms (e.g., fast, reliable, adequate)",
"Verify all terms are defined or measurable"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-C03",
"title": "Operational modes specified",
"objective": "Ensure applicability conditions are stated",
"checks": [
"Verify operational modes or conditions are explicitly stated",
"Flag missing or implicit operational assumptions",
"Verify behavior during mode transitions is explicitly defined"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-C04",
"title": "Acceptance criteria defined",
"objective": "Ensure requirement can be accepted objectively",
"checks": [
"Detect measurable criteria or referenced verification method",
"Flag requirements without acceptance criteria"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-C05",
"title": "Safety requirements reference DAL",
"objective": "Ensure safety requirements reference failure conditions and DAL",
"checks": [
"Identify safety-related requirements",
"Verify associated failure condition and DAL are specified"
],
"failure_severity": "BLOCKING"
},
{
"rule_id": "REQ-C06",
"title": "Requirement source identified",
"objective": "Ensure traceability to origin",
"checks": [
"Verify presence of source or rationale",
"Classify source (regulatory, customer, derived)"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-C07",
"title": "Derived requirements justified",
"objective": "Ensure derived requirements are documented",
"checks": [
"Identify derived requirements",
"Verify justification or derivation rationale exists",
"Verify derived requirements are routed to the safety process (FHA/PSSA) for hazard evaluation"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-C08",
"title": "Coverage of system functions",
"objective": "Ensure all FHA functions are covered",
"checks": [
"Compare requirement coverage against FHA functions",
"Identify missing functional coverage"
],
"failure_severity": "BLOCKING"
},
{
"rule_id": "REQ-C09",
"title": "Interface requirements completeness",
"objective": "Ensure interfaces are fully specified",
"checks": [
"Verify protocols, data formats, and timing are defined",
"Flag partially specified interfaces",
"Verify system response to invalid inputs, out-of-range data, or missing signals is defined (Robustness)"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-C10",
"title": "Environmental requirements specified",
"objective": "Ensure environmental constraints are stated where applicable",
"checks": [
"Detect environmental constraints applicability",
"Verify explicit limits are defined"
],
"failure_severity": "MEDIUM"
}
]
},
{
"category": "consistency",
"arp4754a_section": "5.4",
"description": "Requirements Consistency",
"rules": [
{
"rule_id": "REQ-K01",
"title": "No contradictory requirements",
"objective": "Eliminate logical contradictions",
"checks": [
"Perform pairwise semantic contradiction analysis",
"Flag conflicting constraints or behaviors",
"Flag semantic equivalence",
"Flag subsuming"
],
"failure_severity": "BLOCKING"
},
{
"rule_id": "REQ-K02",
"title": "Consistent terminology",
"objective": "Ensure uniform use of terms",
"checks": [
"Extract key terms",
"Detect inconsistent usage or definitions",
"Verify terms against the approved project Data Dictionary or Glossary"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-K03",
"title": "Consistent units and tolerances",
"objective": "Prevent unit or tolerance mismatches",
"checks": [
"Detect physical quantities",
"Verify unit and tolerance consistency"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-K04",
"title": "Consistent DAL allocation",
"objective": "Ensure DAL consistency with safety assessments",
"checks": [
"Compare DAL assignments with FHA/PSSA",
"Flag mismatches"
],
"failure_severity": "BLOCKING"
},
{
"rule_id": "REQ-K05",
"title": "Performance feasibility",
"objective": "Ensure performance is consistent with constraints",
"checks": [
"Compare performance requirements with HW/SW constraints",
"Flag infeasible requirements"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-K06",
"title": "Timing consistency",
"objective": "Ensure timing constraints do not conflict",
"checks": [
"Extract timing constraints",
"Detect conflicting latency or period requirements"
],
"failure_severity": "HIGH"
}
]
},
{
"category": "verifiability",
"arp4754a_section": "5.5",
"description": "Requirements Verifiability",
"rules": [
{
"rule_id": "REQ-V01",
"title": "Requirement is verifiable",
"objective": "Ensure objective verification is possible",
"checks": [
"Verify a verification approach exists",
"Reject unverifiable statements"
],
"failure_severity": "BLOCKING"
},
{
"rule_id": "REQ-V02",
"title": "Quantified performance thresholds",
"objective": "Ensure performance is measurable",
"checks": [
"Detect numeric thresholds and tolerances",
"Flag vague performance statements"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-V03",
"title": "Subjective terms supported",
"objective": "Eliminate purely subjective requirements",
"checks": [
"Detect subjective wording",
"Verify presence of measurable criteria"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-V04",
"title": "Verification method mapped",
"objective": "Ensure verification method is identified",
"checks": [
"Verify mapping to test, analysis, inspection, or demonstration",
"Verify the specific phase or level of verification is identified (e.g., equipment level, system level, flight test)"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-V05",
"title": "Verification feasibility",
"objective": "Ensure verification can realistically be performed",
"checks": [
"Assess feasibility against project test capabilities and constraints"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-V06",
"title": "No impossible verification conditions",
"objective": "Avoid undefined or impossible conditions",
"checks": [
"Detect impossible states or undefined references"
],
"failure_severity": "BLOCKING"
}
]
},
{
"category": "traceability",
"arp4754a_section": "5.6",
"description": "Requirements Traceability",
"rules": [
{
"rule_id": "REQ-T01",
"title": "Traceability to higher-level requirements",
"objective": "Ensure upward traceability",
"checks": [
"Verify link to aircraft, regulatory, or customer requirement",
"Identify orphaned requirements (requirements with no parent trace)"
],
"failure_severity": "BLOCKING"
},
{
"rule_id": "REQ-T02",
"title": "Derived requirement traceability",
"objective": "Ensure derived requirements are traceable",
"checks": [
"Verify link to safety assessment or design decision"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-T03",
"title": "Downward traceability",
"objective": "Ensure link to implementation artifacts",
"checks": [
"Verify trace to design or code elements",
"Ensure 100% downward coverage (no requirements lacking downstream allocation)"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-T04",
"title": "Allocation documented",
"objective": "Ensure HW/SW allocation is specified",
"checks": [
"Verify allocation documentation exists"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-T05",
"title": "FHA to safety requirement traceability",
"objective": "Ensure safety coverage",
"checks": [
"Verify each FHA failure condition maps to safety requirements"
],
"failure_severity": "BLOCKING"
}
]
},
{
"category": "correctness",
"arp4754a_section": "5.2",
"description": "Requirements Correctness",
"rules": [
{
"rule_id": "REQ-R01",
"title": "Correct system behavior",
"objective": "Ensure requirement reflects intended behavior",
"checks": [
"Compare requirement intent with system definition",
"Verify adherence to known physical or mathematical boundaries"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-R02",
"title": "No unnecessary design constraints",
"objective": "Avoid premature design decisions",
"checks": [
"Detect implementation-specific wording",
"Verify the requirement states 'what' the system must do, not 'how' it should be implemented"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-R03",
"title": "Correct modal verbs usage",
"objective": "Ensure correct use of shall/should",
"checks": [
"Verify 'shall' used for mandatory statements",
"Detect improper use of 'will', 'must', or 'may' for binding requirements"
],
"failure_severity": "LOW"
},
{
"rule_id": "REQ-R04",
"title": "Single requirement per statement",
"objective": "Avoid compound requirements",
"checks": [
"Detect multiple obligations in one statement",
"Identify conjunctions (and, or, but) that improperly combine multiple verifiable actions"
],
"failure_severity": "HIGH"
},
{
"rule_id": "REQ-R05",
"title": "Appropriate abstraction level",
"objective": "Ensure correct hierarchy level",
"checks": [
"Assess abstraction relative to requirement level"
],
"failure_severity": "MEDIUM"
},
{
"rule_id": "REQ-R06",
"title": "Explicit assumptions",
"objective": "Ensure assumptions are documented",
"checks": [
"Detect implicit assumptions",
"Verify explicit documentation"
],
"failure_severity": "MEDIUM"
}
]
}
]
}