Skip to content

Commit 409c118

Browse files
committed
Add SE artifact definitions and enhance requirements documentation
- Created machine-parsable SE artifact definitions (SeArtifactDefinitions.json) - Added comprehensive SE_ARTIFACT_DEFINITIONS.md with V-Model phases and INCOSE mappings - Updated requirements matrix to reference SE artifact definitions (FR-10, FR-11) - Enhanced documentation index with Systems Engineering section - Modernized build system with Makefile and cross-platform scripts - Organized auto-generated reports into reports/ folder - Improved requirements styling with table format - Refined C-01, FR-14, FR-15 requirements for clarity and solution separation
1 parent f9e3c06 commit 409c118

67 files changed

Lines changed: 11068 additions & 10 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
# EditorConfig for SysDocs
2+
# https://editorconfig.org
3+
4+
root = true
5+
6+
# All files
7+
[*]
8+
charset = utf-8
9+
insert_final_newline = true
10+
trim_trailing_whitespace = true
11+
12+
# Code files
13+
[*.{cs,csx,vb,vbx}]
14+
indent_size = 4
15+
indent_style = space
16+
17+
# XML project files
18+
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
19+
indent_size = 2
20+
indent_style = space
21+
22+
# XML config files
23+
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
24+
indent_size = 2
25+
indent_style = space
26+
27+
# JSON and YAML files
28+
[*.{json,yml,yaml}]
29+
indent_size = 2
30+
indent_style = space
31+
32+
# Markdown files
33+
[*.md]
34+
trim_trailing_whitespace = false
35+
indent_size = 2
36+
indent_style = space
37+
38+
# Shell scripts
39+
[*.sh]
40+
indent_size = 2
41+
indent_style = space
42+
end_of_line = lf
43+
44+
# Nix files
45+
[*.nix]
46+
indent_size = 2
47+
indent_style = space
48+
49+
# C# coding conventions
50+
[*.cs]
51+
52+
# Organize usings
53+
dotnet_sort_system_directives_first = true
54+
dotnet_separate_import_directive_groups = false
55+
56+
# Language conventions
57+
dotnet_style_qualification_for_field = false:warning
58+
dotnet_style_qualification_for_property = false:warning
59+
dotnet_style_qualification_for_method = false:warning
60+
dotnet_style_qualification_for_event = false:warning
61+
62+
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
63+
dotnet_style_predefined_type_for_member_access = true:warning
64+
65+
dotnet_style_require_accessibility_modifiers = always:warning
66+
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:warning
67+
68+
dotnet_style_readonly_field = true:warning
69+
dotnet_style_prefer_auto_properties = true:suggestion
70+
dotnet_style_prefer_inferred_tuple_names = true:suggestion
71+
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
72+
73+
# Expression-level preferences
74+
dotnet_style_prefer_conditional_expression_over_return = false:silent
75+
dotnet_style_prefer_conditional_expression_over_assignment = false:silent
76+
csharp_prefer_simple_default_expression = true:suggestion
77+
78+
# Null checking
79+
csharp_style_throw_expression = true:suggestion
80+
csharp_style_conditional_delegate_call = true:suggestion
81+
dotnet_style_coalesce_expression = true:suggestion
82+
dotnet_style_null_propagation = true:suggestion
83+
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
84+
85+
# Pattern matching
86+
csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion
87+
csharp_style_pattern_matching_over_as_with_null_check = true:suggestion
88+
csharp_style_prefer_switch_expression = true:suggestion
89+
csharp_style_prefer_pattern_matching = true:suggestion
90+
csharp_style_prefer_not_pattern = true:suggestion
91+
92+
# Code block preferences
93+
csharp_prefer_braces = true:warning
94+
csharp_prefer_simple_using_statement = true:suggestion
95+
96+
# Expression preferences
97+
csharp_style_inlined_variable_declaration = true:suggestion
98+
csharp_prefer_static_local_function = true:suggestion
99+
100+
# 'using' directive preferences
101+
csharp_using_directive_placement = outside_namespace:warning
102+
103+
# Namespace preferences
104+
csharp_style_namespace_declarations = file_scoped:warning
105+
106+
# New line preferences
107+
csharp_new_line_before_open_brace = all
108+
csharp_new_line_before_else = true
109+
csharp_new_line_before_catch = true
110+
csharp_new_line_before_finally = true
111+
csharp_new_line_before_members_in_object_initializers = true
112+
csharp_new_line_before_members_in_anonymous_types = true
113+
csharp_new_line_between_query_expression_clauses = true
114+
115+
# Indentation preferences
116+
csharp_indent_case_contents = true
117+
csharp_indent_switch_labels = true
118+
csharp_indent_labels = no_change
119+
csharp_indent_block_contents = true
120+
csharp_indent_braces = false
121+
csharp_indent_case_contents_when_block = false
122+
123+
# Space preferences
124+
csharp_space_after_cast = false
125+
csharp_space_after_keywords_in_control_flow_statements = true
126+
csharp_space_between_parentheses = false
127+
csharp_space_before_colon_in_inheritance_clause = true
128+
csharp_space_after_colon_in_inheritance_clause = true
129+
csharp_space_around_binary_operators = before_and_after
130+
csharp_space_between_method_declaration_parameter_list_parentheses = false
131+
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
132+
csharp_space_between_method_declaration_name_and_open_parenthesis = false
133+
csharp_space_between_method_call_parameter_list_parentheses = false
134+
csharp_space_between_method_call_empty_parameter_list_parentheses = false
135+
csharp_space_between_method_call_name_and_opening_parenthesis = false
136+
csharp_space_after_comma = true
137+
csharp_space_before_open_square_brackets = false
138+
139+
# Wrapping
140+
csharp_preserve_single_line_statements = false
141+
csharp_preserve_single_line_blocks = true
142+
143+
# Naming conventions
144+
dotnet_naming_rule.interface_should_be_begins_with_i.severity = warning
145+
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
146+
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
147+
148+
dotnet_naming_rule.types_should_be_pascal_case.severity = warning
149+
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
150+
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
151+
152+
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = warning
153+
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
154+
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
155+
156+
# Symbol specifications
157+
dotnet_naming_symbols.interface.applicable_kinds = interface
158+
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
159+
dotnet_naming_symbols.interface.required_modifiers =
160+
161+
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
162+
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
163+
dotnet_naming_symbols.types.required_modifiers =
164+
165+
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
166+
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
167+
dotnet_naming_symbols.non_field_members.required_modifiers =
168+
169+
# Naming styles
170+
dotnet_naming_style.begins_with_i.required_prefix = I
171+
dotnet_naming_style.begins_with_i.required_suffix =
172+
dotnet_naming_style.begins_with_i.word_separator =
173+
dotnet_naming_style.begins_with_i.capitalization = pascal_case
174+
175+
dotnet_naming_style.pascal_case.required_prefix =
176+
dotnet_naming_style.pascal_case.required_suffix =
177+
dotnet_naming_style.pascal_case.word_separator =
178+
dotnet_naming_style.pascal_case.capitalization = pascal_case
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
## Description
2+
3+
<!-- Provide a brief description of the changes -->
4+
5+
**Requirement ID(s)**: <!-- e.g., FR-01, NFR-03 -->
6+
**Issue/Feature**: <!-- Link to issue or describe feature -->
7+
8+
## Type of Change
9+
10+
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
11+
- [ ] ✨ New feature (non-breaking change which adds functionality)
12+
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
13+
- [ ] 📝 Documentation update
14+
- [ ] ♻️ Code refactoring
15+
- [ ] ✅ Test addition/improvement
16+
- [ ] 🔧 Build/CI configuration
17+
18+
## Changes Made
19+
20+
<!-- List the main changes -->
21+
22+
-
23+
-
24+
-
25+
26+
## Affected Requirements
27+
28+
<!-- List requirements affected by this PR - check REQUIREMENTS_MATRIX.md -->
29+
30+
| Requirement | Change Type | Updated Docs |
31+
|-------------|-------------|--------------|
32+
| FR-XX | Implementation/Tests/Docs | ✅ Yes / ❌ No |
33+
34+
## Testing Performed
35+
36+
### Automated Tests
37+
- [ ] All existing tests pass: `dotnet test`
38+
- [ ] New tests added for new functionality
39+
- [ ] Tests properly tagged with `[RequirementTest("XX-YY")]`
40+
- [ ] Cross-platform compatibility considered
41+
42+
### Manual Tests
43+
<!-- Describe manual testing performed -->
44+
45+
-
46+
-
47+
48+
### Test Results
49+
```bash
50+
# Paste test output here
51+
```
52+
53+
## Documentation Updates
54+
55+
- [ ] REQUIREMENTS.md updated (if requirement changed)
56+
- [ ] REQUIREMENTS_MATRIX.md updated (if V&V status changed)
57+
- [ ] TRACEABILITY.md updated (if implementation approach changed)
58+
- [ ] DEVIATIONS.md updated (if deviation needed)
59+
- [ ] Test traceability regenerated: `dotnet run --project tests/SysDocs.Tests -- --traceability`
60+
- [ ] License compliance checked: `dotnet run --project tests/SysDocs.Tests -- --license-compliance`
61+
- [ ] No hardcoded numbers or temporal status in manual docs
62+
63+
## Build Verification
64+
65+
- [ ] Local build succeeds: `dotnet build src/SysDocs.sln`
66+
- [ ] Local tests pass: `dotnet test`
67+
- [ ] Nix build succeeds (if available): `nix build`
68+
- [ ] Docker build succeeds (optional): `docker build -t sysdocs:test .`
69+
70+
## Manual V&V Checklist
71+
72+
### 🔍 Automated Requirements (Verified by Tests)
73+
<!-- For requirements with automated tests, verify tests pass -->
74+
- [ ] All automated tests for affected requirements pass
75+
- [ ] CI/CD pipeline passes all checks
76+
77+
### ✋ Manual Requirements Verification
78+
79+
**Only check if this PR affects these requirements:**
80+
81+
#### FR-08: Change and trace report
82+
- [ ] N/A - Not affected by this PR
83+
- [ ] ✅ Manual review: Change reports are accurate
84+
- [ ] ✅ Manual review: Git integration works correctly
85+
- [ ] ✅ Manual review: Diff generation is correct
86+
87+
#### FR-09: Tool qualification
88+
- [ ] N/A - Not affected by this PR
89+
- [ ] ✅ Manual review: Audit logs are complete
90+
- [ ] ✅ Manual review: Validation steps documented
91+
- [ ] ✅ Manual review: Qualification package updated
92+
93+
#### FR-10: INCOSE alignment
94+
- [ ] N/A - Not affected by this PR
95+
- [ ] ✅ Manual review: Templates align with INCOSE SE Handbook
96+
- [ ] ✅ Manual review: SE artifact structure is correct
97+
- [ ] ✅ Manual review: Content meets INCOSE standards
98+
99+
#### FR-11: V-Model support
100+
- [ ] N/A - Not affected by this PR
101+
- [ ] ✅ Manual review: Templates align with V-Model phases
102+
- [ ] ✅ Manual review: Artifact completeness checked
103+
- [ ] ✅ Manual review: Phase relationships correct
104+
105+
#### NFR-03: Performance (if implementation could affect performance)
106+
- [ ] N/A - Not affected by this PR
107+
- [ ] ✅ Manual review: Performance benchmarks run
108+
- [ ] ✅ Manual review: Large document tests completed (>250 pages)
109+
- [ ] ✅ Manual review: Memory usage acceptable
110+
111+
#### NFR-06: Security (if touching credentials/security)
112+
- [ ] N/A - Not affected by this PR
113+
- [ ] ✅ Manual review: No credentials in code/logs
114+
- [ ] ✅ Manual review: Environment variables properly used
115+
- [ ] ✅ Manual review: Security audit completed
116+
117+
## Breaking Changes
118+
119+
<!-- If breaking changes, describe impact and migration path -->
120+
121+
- [ ] No breaking changes
122+
- [ ] Breaking changes documented below:
123+
124+
**Impact**:
125+
126+
**Migration Path**:
127+
128+
## Checklist for Contributor
129+
130+
- [ ] My code follows the project's code style
131+
- [ ] I have performed a self-review of my code
132+
- [ ] I have commented my code, particularly in hard-to-understand areas
133+
- [ ] I have updated the documentation accordingly
134+
- [ ] My changes generate no new warnings
135+
- [ ] I have added tests that prove my fix is effective or that my feature works
136+
- [ ] New and existing unit tests pass locally with my changes
137+
- [ ] I have checked REQUIREMENTS_MATRIX.md for affected requirements
138+
- [ ] I have completed the manual V&V checklist above
139+
- [ ] I have rebased on latest main and resolved conflicts
140+
141+
## Checklist for Reviewer
142+
143+
**See [BRANCH_STRATEGY.md](../BRANCH_STRATEGY.md#reviewer-guidelines) for detailed review guidance**
144+
145+
### Code Review
146+
- [ ] Code quality is good (follows conventions, no anti-patterns)
147+
- [ ] Error handling is appropriate
148+
- [ ] Tests are comprehensive and properly tagged
149+
- [ ] Documentation is accurate and complete
150+
151+
### V&V Review
152+
- [ ] Contributor's manual V&V checklist is complete
153+
- [ ] Manual requirements verification completed (if applicable)
154+
- [ ] REQUIREMENTS_MATRIX.md checked for affected requirements
155+
- [ ] All cross-references are correct
156+
- [ ] No temporal status or hardcoded numbers in manual docs
157+
158+
### Verification Steps Performed
159+
<!-- Reviewer: Document your verification steps -->
160+
161+
```bash
162+
# Commands run to verify
163+
dotnet test --filter "RequirementId=XX-YY"
164+
# ... add other commands
165+
```
166+
167+
**Manual verification findings**:
168+
-
169+
-
170+
171+
### Final Approval
172+
- [ ] All automated checks pass
173+
- [ ] Manual V&V checklist verified
174+
- [ ] Code quality approved
175+
- [ ] Documentation verified
176+
- [ ] No unresolved conversations
177+
178+
---
179+
180+
## Additional Notes
181+
182+
<!-- Any additional context, concerns, or discussion points -->
183+
184+
---
185+
186+
**Related Documents:**
187+
- [BRANCH_STRATEGY.md](../BRANCH_STRATEGY.md) - Branch strategy and review guidelines
188+
- [REQUIREMENTS_MATRIX.md](../REQUIREMENTS_MATRIX.md) - V&V status per requirement
189+
- [docs/DOCUMENTATION_NAVIGATION.md](../docs/DOCUMENTATION_NAVIGATION.md) - Documentation guide
190+

0 commit comments

Comments
 (0)