118 lines
4.3 KiB
Markdown
118 lines
4.3 KiB
Markdown
# 요구조건 문서 작성 가이드
|
|
|
|
이 디렉터리는 Requirement Agent가 작성하거나 제안한 새로운 솔버 기능 요구조건 분석 문서를 보관하는 위치다.
|
|
|
|
기본 파일명은 `docs/requirements/<feature-id>.md` 형식을 사용한다. 각 문서는 구현 전에 작성되며, Formulation Agent, I/O Definition Agent, Reference Model Agent, Implementation Planning Agent가 이어받을 수 있는 검증 가능한 요구조건 분석 baseline이어야 한다.
|
|
|
|
## Requirement Agent 역할
|
|
|
|
Requirement Agent는 새로운 솔버 기능 요청을 검증 가능한 요구조건 분석 산출물로 바꾼다.
|
|
|
|
수행한다:
|
|
- 기능 범위, 제외 범위, 입력, 출력, 제약조건을 정의한다.
|
|
- 해석 타입, 대상 요소, 자유도, 재료 모델, 경계조건, 하중 조건을 명확히 한다.
|
|
- 절점 변위, 반력, 요소 내력, 응력 등 검증 물리량을 정한다.
|
|
- tolerance와 reference artifact 요구사항을 기록한다.
|
|
- Requirement Verification Matrix를 작성한다.
|
|
|
|
수행하지 않는다:
|
|
- C++ 코드를 구현하지 않는다.
|
|
- 유한요소 정식화를 확정하지 않는다.
|
|
- C++ API나 파일 구조를 설계하지 않는다.
|
|
- Abaqus, Nastran 또는 레퍼런스 솔버를 직접 실행하지 않는다.
|
|
- reference HDF5 artifact 또는 reference CSV 결과를 생성하지 않는다.
|
|
- 기능 완료 여부를 승인하지 않는다.
|
|
|
|
## 문서 템플릿
|
|
|
|
```markdown
|
|
# <feature title> Requirements
|
|
|
|
## Metadata
|
|
- feature_id: <feature-id>
|
|
- title: <title>
|
|
- status: draft | needs-user-decision | approved
|
|
- owner_agent: requirement-agent
|
|
- date: <YYYY-MM-DD>
|
|
|
|
## Purpose
|
|
<기능 목적과 사용자/개발자 관점의 기대 동작>
|
|
|
|
## In Scope
|
|
- <포함 범위>
|
|
|
|
## Out Of Scope
|
|
- <제외 범위>
|
|
|
|
## Analysis Definition
|
|
- analysis_type: linear static | nonlinear static | modal | other
|
|
- elements: <대상 요소>
|
|
- dofs: <자유도>
|
|
- material_model: <재료 모델>
|
|
- boundary_conditions: <경계조건>
|
|
- loads: <하중 조건>
|
|
- coordinate_system: <좌표계>
|
|
- units: <단위계>
|
|
|
|
## Input Requirements
|
|
- <입력 요구조건>
|
|
|
|
## Output Requirements
|
|
- <출력 요구조건>
|
|
|
|
## Verification Quantities
|
|
- nodal_displacement: required | not-applicable
|
|
- reaction: required | not-applicable
|
|
- element_internal_force: required | not-applicable
|
|
- stress: required | not-applicable
|
|
- strain: required | not-applicable
|
|
- energy_or_residual: required | not-applicable
|
|
|
|
## Tolerance Policy
|
|
- absolute_tolerance: <value or TBD>
|
|
- relative_tolerance: <value or TBD>
|
|
- norm_based_tolerance: <value or TBD>
|
|
|
|
## Reference Artifact Requirements
|
|
Expected location: `references/<feature-id>/`
|
|
|
|
- `model.inp`: required | not-applicable
|
|
- `metadata.json`: required
|
|
- `results.h5`: required | not-applicable
|
|
- optional_csv_exports: required | not-applicable
|
|
|
|
## Requirement Verification Matrix
|
|
|
|
| id | statement | category | rationale | source | priority | verification_method | acceptance_criteria | tolerance | downstream_agents | status |
|
|
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
| FESA-REQ-<FEATURE>-001 | The FESA solver shall ... | functional | ... | user | must | reference-comparison | ... | ... | Reference Model Agent; Implementation Planning Agent | draft |
|
|
|
|
## Open Questions
|
|
- <미확정 값 또는 사용자 결정 필요 사항>
|
|
|
|
## Downstream Handoff
|
|
|
|
### Research Agent
|
|
- <조사할 이론, 논문, benchmark, 표준>
|
|
|
|
### Formulation Agent
|
|
- <정식화 단계에 넘길 해석 타입, 요소, 재료, 자유도, 출력 물리량 계약>
|
|
|
|
### I/O Definition Agent
|
|
- <입력/출력 schema 요구조건>
|
|
|
|
### Reference Model Agent
|
|
- <필요한 references/<feature-id>/ artifact 목록>
|
|
|
|
### Implementation Planning Agent
|
|
- <먼저 작성할 테스트와 acceptance criteria>
|
|
```
|
|
|
|
## 품질 기준
|
|
|
|
- 모든 `must` 요구조건은 검증 방법과 acceptance criteria를 가져야 한다.
|
|
- 모든 수치 요구조건은 단위, 좌표계, tolerance 또는 `TBD with owner`를 가져야 한다.
|
|
- reference 비교가 필요한 요구조건은 필요한 HDF5 artifact와 dataset path를 명시해야 한다. CSV artifact는 명시적으로 요구된 export일 때만 포함한다.
|
|
- "빠르게", "정확하게", "Abaqus처럼" 같은 문장은 검증 가능한 기준으로 바꾸거나 open question으로 남겨야 한다.
|
|
- 구현 방법, 정식화 세부식, C++ API는 이 문서에서 확정하지 않는다.
|