Skip to content

Commit 683bff2

Browse files
committed
설계 문서 정리
1 parent 69f55ba commit 683bff2

3 files changed

Lines changed: 387 additions & 1 deletion

File tree

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
## 시작점
1414

1515
- [architecture/프로젝트 구조.md](architecture/프로젝트 구조.md)
16+
- [architecture/UI 디자인 대상 창 목록.md](architecture/UI 디자인 대상 창 목록.md)
1617
- [process/GitHub Project.md](process/GitHub Project.md)
1718
- [product/개요서.md](product/개요서.md)
1819
- [product/사용자 시나리오.md](product/사용자 시나리오.md)
Lines changed: 385 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,385 @@
1+
# SafeCrowd UI 디자인 대상 창 목록
2+
3+
이 문서는 다음 UML을 기준으로 실제 UI 디자인이 필요한 창, 화면, 패널, 다이얼로그를 정리한다.
4+
5+
- `uml/application-authoring-workspace.puml`
6+
- `uml/application-analysis-workspace.puml`
7+
- `uml/application-workspace-state-model.puml`
8+
9+
`ProjectRepository`, `ResultRepository`, `ImportOrchestrator`, `ScenarioBatchRunner`, `SimulationSession`, `ResultAggregator`, `AlternativeRecommendationService`, `EngineRuntime`, `IRenderBridge` 같은 항목은 구현 컴포넌트이며 UI 디자인 대상이 아니다.
10+
11+
## 1. 메인 애플리케이션 창
12+
13+
### 1.1 Main Workspace Window
14+
- 앱의 기본 창이다.
15+
- 프로젝트 상태, 작성(authoring), 실행(run), 분석(analysis) 흐름을 한 화면 구조 안에서 전환하거나 배치한다.
16+
- 상태 모델의 `NoProject`, `LayoutNeedsReview`, `LayoutReady`, `ScenarioDraftInvalid`, `ScenarioReady`, `BatchRunning`, `BatchPaused`, `AggregationPending`, `ResultsAvailable`, `ComparisonReady`, `RecommendationReady` 상태에 따라 패널 활성/비활성이 달라져야 한다.
17+
18+
필요한 디자인 요소:
19+
- 상단 메뉴 또는 툴바
20+
- 현재 프로젝트명과 저장 상태
21+
- 현재 workspace 상태 표시
22+
- 주요 작업 영역 전환
23+
- 닫기/저장/열기 같은 프로젝트 명령
24+
- 실행 가능 여부와 blocker 상태 표시
25+
26+
## 2. 프로젝트 시작/관리 창
27+
28+
### 2.1 Project Navigator
29+
- 새 프로젝트, 기존 프로젝트 열기, 저장, 최근 프로젝트 접근의 진입점이다.
30+
- `Project Save/Open`은 별도 창 이름이 아니라 저장/열기 처리를 담당하는 내부 흐름으로 본다.
31+
32+
필요한 디자인 요소:
33+
- 새 프로젝트 생성
34+
- 프로젝트 열기
35+
- 프로젝트 저장
36+
- 다른 이름으로 저장이 필요하다면 저장 위치 선택
37+
- 최근 프로젝트 목록
38+
- 프로젝트 닫기
39+
- 프로젝트 상태 표시
40+
41+
### 2.2 Project Open Dialog
42+
- 앱 전용 프로젝트 선택 창을 만들 경우 디자인 대상이다.
43+
- OS 파일 다이얼로그만 사용할 경우 별도 상세 UI 디자인은 생략 가능하다.
44+
45+
필요한 디자인 요소:
46+
- 프로젝트 파일 선택
47+
- 최근 프로젝트 바로 열기
48+
- 열 수 없는 프로젝트 오류 표시
49+
- pending review 프로젝트와 approved 프로젝트 상태 구분
50+
51+
### 2.3 Project Save Dialog
52+
- 앱 전용 저장 위치 선택 또는 프로젝트 메타데이터 입력이 필요할 경우 디자인 대상이다.
53+
- 단순 파일 저장만 OS 파일 다이얼로그로 처리한다면 별도 화면 디자인은 최소화할 수 있다.
54+
55+
필요한 디자인 요소:
56+
- 저장 위치 선택
57+
- 프로젝트 이름 입력
58+
- 덮어쓰기 확인
59+
- 저장 실패 오류 표시
60+
61+
## 3. Authoring Workspace 창과 패널
62+
63+
### 3.1 Authoring Workspace
64+
- 레이아웃 import, 검토, 보정, 시나리오 작성이 이루어지는 작업 화면이다.
65+
- `LayoutNeedsReview`, `LayoutReady`, `ScenarioDraftInvalid`, `ScenarioReady` 상태를 주로 다룬다.
66+
67+
필요한 디자인 요소:
68+
- 프로젝트 네비게이터 영역
69+
- import 흐름 진입
70+
- layout canvas
71+
- inspector
72+
- issue review
73+
- scenario library
74+
- scenario editor
75+
- readiness 표시
76+
- variation diff 표시
77+
78+
### 3.2 Import Workflow UI
79+
- 외부 레이아웃 파일을 선택하고 import 또는 reimport를 수행하는 화면 또는 다이얼로그다.
80+
81+
필요한 디자인 요소:
82+
- 파일 선택
83+
- import 옵션
84+
- reimport 옵션
85+
- 변환 규칙 선택
86+
- import 실행
87+
- import 진행 상태
88+
- import 실패/성공 결과 표시
89+
90+
### 3.3 Issue Review Panel
91+
- import 오류, 경고, blocker를 검토하는 패널이다.
92+
- blocker가 남아 있으면 실행이 비활성화되어야 한다.
93+
94+
필요한 디자인 요소:
95+
- 오류/경고 목록
96+
- blocker 여부
97+
- 승인/무시/수정 필요 상태
98+
- 문제 위치로 이동
99+
- layout review 승인 상태
100+
- 남은 blocker 수
101+
102+
### 3.4 Layout Canvas
103+
- import된 공간 구조와 topology를 보고 수정하는 주 작업 화면이다.
104+
105+
필요한 디자인 요소:
106+
- 공간/노드/연결/출구/제어구역 표시
107+
- 선택, 확대/축소, 이동
108+
- 오류 위치 하이라이트
109+
- topology 수정
110+
- live/analysis viewport와 구분되는 authoring 전용 표시
111+
112+
### 3.5 Inspector Panel
113+
- Layout Canvas에서 선택한 요소의 속성을 표시하고 편집하는 패널이다.
114+
- 현재 UML에서는 `Layout Canvas + Inspector`로 묶여 있지만 실제 UI 디자인에서는 별도 패널로 다루는 것이 좋다.
115+
116+
필요한 디자인 요소:
117+
- 선택 요소 속성
118+
- 이름/유형/연결/측정 구역 등 편집 필드
119+
- 유효성 오류 표시
120+
- 변경 저장 또는 적용
121+
122+
### 3.6 Scenario Library
123+
- baseline, alternative, recommended draft를 구분해서 보여주는 시나리오 목록이다.
124+
125+
필요한 디자인 요소:
126+
- 시나리오 패밀리 목록
127+
- baseline 표시
128+
- alternative 목록
129+
- recommended draft 목록
130+
- run-ready 상태
131+
- scenario lineage 표시
132+
- 시나리오 열기/복제/삭제
133+
134+
### 3.7 Scenario Template Picker
135+
- 새 시나리오를 빠르게 만들기 위한 템플릿 선택 화면 또는 다이얼로그다.
136+
137+
필요한 디자인 요소:
138+
- 템플릿 카드
139+
- intended use
140+
- risk axis
141+
- 필요한 layout feature
142+
- prerequisite 충족/미충족 표시
143+
- 적용 불가 사유
144+
- 템플릿 적용
145+
146+
### 3.8 Scenario Editor Tabs
147+
- 선택한 시나리오의 입력값을 편집하는 탭형 화면이다.
148+
149+
필요한 디자인 요소:
150+
- Population 탭
151+
- Environment 탭
152+
- Control 탭
153+
- Execution 탭
154+
- 필수 입력 표시
155+
- invalid edit 상태 표시
156+
- draft 저장
157+
158+
### 3.9 Readiness Panel
159+
- 현재 layout과 scenario가 실행 가능한지 보여주는 패널이다.
160+
161+
필요한 디자인 요소:
162+
- 필수 입력 누락
163+
- blocker 목록
164+
- layout 승인 여부
165+
- scenario validation 결과
166+
- Run 버튼 활성 조건 설명
167+
- 누락 항목으로 이동
168+
169+
### 3.10 Variation Diff List
170+
- baseline 대비 alternative 또는 recommended draft의 변경점을 보여주는 패널이다.
171+
172+
필요한 디자인 요소:
173+
- 변경된 입력 목록
174+
- control event 차이
175+
- route cost assumption 차이
176+
- inflow setting 차이
177+
- visibility condition 차이
178+
- template origin metadata
179+
- baseline으로부터의 변경 추적
180+
181+
## 4. Run/Analysis Workspace 창과 패널
182+
183+
### 4.1 Analysis Workspace
184+
- 실행, 재생, 결과 확인, 비교, 추천, 내보내기를 수행하는 작업 화면이다.
185+
- `BatchRunning`, `BatchPaused`, `AggregationPending`, `ResultsAvailable`, `ComparisonReady`, `RecommendationReady` 상태를 주로 다룬다.
186+
187+
필요한 디자인 요소:
188+
- run control
189+
- batch progress
190+
- live viewport
191+
- heatmap selector
192+
- run results
193+
- variation summary
194+
- comparison
195+
- recommendation
196+
- export
197+
198+
### 4.2 Run Control
199+
- batch 실행을 시작, 일시정지, 재개, 정지하는 제어 영역이다.
200+
201+
필요한 디자인 요소:
202+
- Run
203+
- Pause
204+
- Resume
205+
- Stop
206+
- 실행 불가 상태 표시
207+
- 승인된 layout과 valid scenario 조건 표시
208+
- 현재 실행 상태
209+
210+
### 4.3 Batch Progress
211+
- batch 또는 variation 실행 진행률을 보여주는 패널이다.
212+
213+
필요한 디자인 요소:
214+
- 현재 run 번호
215+
- 현재 variation
216+
- 전체 진행률
217+
- 남은 작업량
218+
- 실패한 run 표시
219+
- aggregation pending 상태 표시
220+
221+
### 4.4 Live Viewport
222+
- 실행 중 runtime playback을 보여주는 viewport다.
223+
- 비교, 추천, 집계 계산을 이 화면에서 직접 추론하지 않아야 한다.
224+
225+
필요한 디자인 요소:
226+
- 시뮬레이션 재생 화면
227+
- frame snapshot 표시
228+
- playback 상태
229+
- live overlay 표시
230+
- 확대/축소/이동
231+
- 실행 중 상호작용 제한
232+
233+
### 4.5 Heatmap Selector
234+
- live overlay와 persisted heatmap layer를 선택하는 컨트롤이다.
235+
236+
필요한 디자인 요소:
237+
- live overlay 선택
238+
- persisted layer 선택
239+
- 데이터 출처 표시
240+
- 레이어 표시/숨김
241+
- 색상 범례
242+
- intensity 범위
243+
244+
### 4.6 Run Results Panel
245+
- 단일 실행 결과 요약을 보여주는 패널이다.
246+
- `ResultsAvailable` 이후 열 수 있다.
247+
248+
필요한 디자인 요소:
249+
- run summary
250+
- 주요 위험 지표
251+
- 시간/구간별 결과
252+
- 관련 artifact 상태
253+
- Variation Summary로 이동
254+
255+
### 4.7 Variation Summary
256+
- 반복 실행 aggregate 결과를 보여주는 패널이다.
257+
- `ResultsAvailable` 이후 열 수 있다.
258+
259+
필요한 디자인 요소:
260+
- variation별 집계
261+
- 평균/최악/분포 지표
262+
- 반복 실행 신뢰도
263+
- baseline comparison 열기
264+
- persisted summary 상태
265+
266+
### 4.8 Comparison View
267+
- baseline과 alternatives를 비교하는 화면이다.
268+
- `ComparisonReady` 이후 활성화된다.
269+
270+
필요한 디자인 요소:
271+
- baseline 선택
272+
- alternative 선택
273+
- 비교 지표 표
274+
- 차이 시각화
275+
- cumulative artifact 표시
276+
- recommendation drawer 열기
277+
- export 진입
278+
279+
### 4.9 Recommendation Drawer
280+
- 추천 근거를 검토하고 추천안을 scenarioize하는 drawer 또는 side panel이다.
281+
- `RecommendationReady` 이후 활성화된다.
282+
283+
필요한 디자인 요소:
284+
- 추천 후보 목록
285+
- evidence 표시
286+
- 추천 근거 artifact 연결
287+
- scenarioize 버튼
288+
- 추천 적용/닫기
289+
- 적용 시 draft 생성 흐름
290+
291+
### 4.10 Export Dialog
292+
- canonical artifact bundle을 내보내는 다이얼로그다.
293+
- 필요한 persisted artifact가 준비된 뒤 활성화된다.
294+
295+
필요한 디자인 요소:
296+
- 내보낼 artifact 선택
297+
- canonical bundle 구성 확인
298+
- 저장 위치 선택
299+
- 파일 형식 선택
300+
- export 진행 상태
301+
- export 성공/실패 표시
302+
303+
## 5. 상태별 UI 활성 규칙
304+
305+
### 5.1 NoProject
306+
- 프로젝트가 열려 있지 않은 상태다.
307+
- Project Navigator, Project Open Dialog, 새 프로젝트 생성 흐름이 중심이다.
308+
- authoring, run, analysis 패널은 비활성 또는 빈 상태를 보여준다.
309+
310+
### 5.2 LayoutNeedsReview
311+
- import된 layout에 검토가 필요하거나 blocker가 남아 있는 상태다.
312+
- Issue Review Panel과 Layout Canvas가 중심이다.
313+
- Run Control은 비활성화되어야 한다.
314+
315+
### 5.3 LayoutReady
316+
- layout이 승인되었지만 실행 가능한 scenario가 아직 선택되지 않은 상태다.
317+
- Scenario Library와 Scenario Template Picker 진입이 중심이다.
318+
319+
### 5.4 ScenarioDraftInvalid
320+
- scenario draft가 있으나 필수 입력이 부족하거나 invalid edit가 있는 상태다.
321+
- Scenario Editor Tabs와 Readiness Panel이 중심이다.
322+
- Run Control은 비활성화되어야 한다.
323+
324+
### 5.5 ScenarioReady
325+
- 승인된 layout과 valid scenario가 모두 준비된 상태다.
326+
- Run Control의 Run이 활성화된다.
327+
328+
### 5.6 BatchRunning
329+
- batch 실행 중인 상태다.
330+
- Run Control, Batch Progress, Live Viewport, Heatmap Selector가 중심이다.
331+
- 편집성 authoring 동작은 제한해야 한다.
332+
333+
### 5.7 BatchPaused
334+
- 실행이 일시정지된 상태다.
335+
- Resume과 Stop이 중심 액션이다.
336+
337+
### 5.8 AggregationPending
338+
- live playback은 끝났지만 결과 artifact 집계가 끝나지 않은 상태다.
339+
- Batch Progress 또는 결과 준비 상태 표시가 필요하다.
340+
- Run Results, Variation Summary, Comparison, Recommendation은 준비된 artifact 수준에 따라 제한된다.
341+
342+
### 5.9 ResultsAvailable
343+
- RunResult와 VariationSummary가 저장된 상태다.
344+
- Run Results Panel과 Variation Summary를 열 수 있다.
345+
- Comparison은 baseline과 alternative summary가 모두 있을 때만 활성화된다.
346+
347+
### 5.10 ComparisonReady
348+
- baseline과 alternative 비교가 가능한 상태다.
349+
- Comparison View가 활성화된다.
350+
- Recommendation은 ScenarioComparison과 CumulativeArtifact가 준비된 뒤 활성화된다.
351+
352+
### 5.11 RecommendationReady
353+
- recommendation 검토와 scenarioize가 가능한 상태다.
354+
- Recommendation Drawer와 Export Dialog가 활성화될 수 있다.
355+
356+
## 6. 최종 디자인 대상 요약
357+
358+
우선 디자인해야 하는 UI 창과 화면은 다음과 같다.
359+
360+
1. Main Workspace Window
361+
2. Project Navigator
362+
3. Project Open Dialog
363+
4. Project Save Dialog
364+
5. Authoring Workspace
365+
6. Import Workflow UI
366+
7. Issue Review Panel
367+
8. Layout Canvas
368+
9. Inspector Panel
369+
10. Scenario Library
370+
11. Scenario Template Picker
371+
12. Scenario Editor Tabs
372+
13. Readiness Panel
373+
14. Variation Diff List
374+
15. Analysis Workspace
375+
16. Run Control
376+
17. Batch Progress
377+
18. Live Viewport
378+
19. Heatmap Selector
379+
20. Run Results Panel
380+
21. Variation Summary
381+
22. Comparison View
382+
23. Recommendation Drawer
383+
24. Export Dialog
384+
385+
이 중 `Project Open Dialog``Project Save Dialog`는 OS 파일 다이얼로그만 사용할 경우 독립 UI 디자인 범위를 줄일 수 있다. 반대로 프로젝트 메타데이터, 최근 프로젝트, pending review 상태, 저장 정책을 앱 안에서 보여줘야 한다면 별도 디자인 대상에 포함한다.

0 commit comments

Comments
 (0)