@k2works/claude-code-booster 0.1.2 → 0.2.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/README.md +14 -0
- package/bin/claude-code-booster +39 -16
- package/lib/assets/.claude/README.md +44 -40
- package/lib/assets/.claude/commands/analysis.md +230 -0
- package/lib/assets/.claude/commands/kill.md +109 -0
- package/lib/assets/.claude/commands/next.md +136 -0
- package/lib/assets/.claude/commands/plan.md +141 -91
- package/lib/assets/.claude/commands/progress.md +172 -0
- package/lib/assets/docs/reference/UI/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +446 -0
- package/lib/assets/docs/reference//343/202/242/343/203/274/343/202/255/343/203/206/343/202/257/343/203/201/343/203/243/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1428 -0
- package/lib/assets/docs/reference//343/202/244/343/203/263/343/203/225/343/203/251/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +1879 -0
- package/lib/assets/docs/reference//343/203/206/343/202/271/343/203/210/346/210/246/347/225/245/343/202/254/343/202/244/343/203/211.md +1310 -0
- package/lib/assets/docs/reference//343/203/207/343/203/274/343/202/277/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +312 -0
- package/lib/assets/docs/reference//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253/350/250/255/350/250/210/343/202/254/343/202/244/343/203/211.md +600 -0
- package/lib/assets/docs/reference//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +672 -0
- package/lib/assets/docs/reference//343/203/252/343/203/252/343/203/274/343/202/271/343/203/273/343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273/343/202/254/343/202/244/343/203/211.md +524 -0
- package/lib/assets/docs/reference//351/201/213/347/224/250/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +393 -0
- package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +18 -173
- package/lib/assets/docs/reference//351/235/236/346/251/237/350/203/275/350/246/201/344/273/266/345/256/232/347/276/251/343/202/254/343/202/244/343/203/211.md +1231 -0
- package/lib/assets/docs/template//345/256/214/345/205/250/345/275/242/345/274/217/343/201/256/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271.md +64 -0
- package/lib/assets/docs/template//350/246/201/344/273/266/345/256/232/347/276/251.md +467 -443
- package/package.json +1 -1
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
# 運用要件定義ガイド
|
|
2
|
+
|
|
3
|
+
## 運用要件の概要
|
|
4
|
+
|
|
5
|
+
運用要件とは、システムが本番環境で稼働する際に必要となる要件のことです。これには監視、バックアップ、セキュリティ、運用手順などが含まれます。よいソフトウェアを実現するために、開発段階から運用性を考慮した設計・実装が重要です。
|
|
6
|
+
|
|
7
|
+
## 運用要件の種類
|
|
8
|
+
|
|
9
|
+
### 監視要件
|
|
10
|
+
|
|
11
|
+
```plantuml
|
|
12
|
+
@startuml
|
|
13
|
+
!define RECTANGLE class
|
|
14
|
+
|
|
15
|
+
RECTANGLE "システム監視" {
|
|
16
|
+
+ リソース監視
|
|
17
|
+
+ パフォーマンス監視
|
|
18
|
+
+ アプリケーション監視
|
|
19
|
+
+ エラー監視
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
RECTANGLE "ビジネス監視" {
|
|
23
|
+
+ KPI 監視
|
|
24
|
+
+ SLA 監視
|
|
25
|
+
+ ユーザー行動監視
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
RECTANGLE "セキュリティ監視" {
|
|
29
|
+
+ 不正アクセス検知
|
|
30
|
+
+ セキュリティイベント監視
|
|
31
|
+
+ 脆弱性監視
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@enduml
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
#### システム監視
|
|
38
|
+
- **リソース監視**: CPU、メモリ、ディスク、ネットワーク使用率
|
|
39
|
+
- **パフォーマンス監視**: レスポンス時間、スループット
|
|
40
|
+
- **可用性監視**: サービス稼働状況、ヘルスチェック
|
|
41
|
+
- **エラー監視**: アプリケーションエラー、システムエラー
|
|
42
|
+
|
|
43
|
+
#### ビジネス監視
|
|
44
|
+
- **KPI 監視**: ビジネス重要指標の追跡
|
|
45
|
+
- **SLA 監視**: サービスレベル合意の監視
|
|
46
|
+
- **ユーザー行動監視**: アクセスパターン、利用状況
|
|
47
|
+
|
|
48
|
+
#### セキュリティ監視
|
|
49
|
+
- **不正アクセス検知**: 異常なアクセスパターンの検知
|
|
50
|
+
- **セキュリティイベント監視**: セキュリティ関連ログの監視
|
|
51
|
+
- **脆弱性監視**: セキュリティリスクの継続的監視
|
|
52
|
+
|
|
53
|
+
### バックアップ・リカバリ要件
|
|
54
|
+
|
|
55
|
+
```plantuml
|
|
56
|
+
@startuml
|
|
57
|
+
!define RECTANGLE class
|
|
58
|
+
|
|
59
|
+
RECTANGLE "バックアップ戦略" {
|
|
60
|
+
+ データバックアップ
|
|
61
|
+
+ システムバックアップ
|
|
62
|
+
+ 設定バックアップ
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
RECTANGLE "リカバリ戦略" {
|
|
66
|
+
+ 障害対応手順
|
|
67
|
+
+ データ復旧手順
|
|
68
|
+
+ サービス復旧手順
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
RECTANGLE "災害復旧" {
|
|
72
|
+
+ DR サイト運用
|
|
73
|
+
+ BCP 対応
|
|
74
|
+
+ データセンター冗長化
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@enduml
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### バックアップ要件
|
|
81
|
+
- **バックアップ頻度**: 日次、週次、月次バックアップ
|
|
82
|
+
- **保存期間**: データ保持ポリシーに基づく保存期間
|
|
83
|
+
- **バックアップ範囲**: データベース、ファイル、システム設定
|
|
84
|
+
- **バックアップ検証**: 定期的なリストアテスト
|
|
85
|
+
|
|
86
|
+
#### リカバリ要件
|
|
87
|
+
- **RTO (Recovery Time Objective)**: 復旧時間目標
|
|
88
|
+
- **RPO (Recovery Point Objective)**: 復旧ポイント目標
|
|
89
|
+
- **リカバリ手順**: 段階的な復旧プロセス
|
|
90
|
+
- **データ整合性**: リカバリ後のデータ一貫性確保
|
|
91
|
+
|
|
92
|
+
### セキュリティ運用要件
|
|
93
|
+
|
|
94
|
+
```plantuml
|
|
95
|
+
@startuml
|
|
96
|
+
!define RECTANGLE class
|
|
97
|
+
|
|
98
|
+
RECTANGLE "アクセス管理" {
|
|
99
|
+
+ 認証・認可
|
|
100
|
+
+ アカウント管理
|
|
101
|
+
+ 権限管理
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
RECTANGLE "セキュリティ監査" {
|
|
105
|
+
+ ログ監査
|
|
106
|
+
+ アクセス監査
|
|
107
|
+
+ 設定監査
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
RECTANGLE "脅威対応" {
|
|
111
|
+
+ インシデント対応
|
|
112
|
+
+ 脆弱性対応
|
|
113
|
+
+ セキュリティパッチ適用
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@enduml
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### アクセス管理
|
|
120
|
+
- **認証システム**: 多要素認証、SSO 連携
|
|
121
|
+
- **アカウント管理**: ユーザーライフサイクル管理
|
|
122
|
+
- **権限管理**: 最小権限の原則、定期的な権限見直し
|
|
123
|
+
|
|
124
|
+
#### セキュリティ監査
|
|
125
|
+
- **アクセスログ**: すべてのアクセスの記録・監査
|
|
126
|
+
- **操作ログ**: 重要な操作の追跡可能性
|
|
127
|
+
- **設定変更**: システム設定変更の記録・承認
|
|
128
|
+
|
|
129
|
+
#### 脅威対応
|
|
130
|
+
- **インシデント対応**: セキュリティ事故対応手順
|
|
131
|
+
- **脆弱性管理**: 定期的な脆弱性スキャン・対応
|
|
132
|
+
- **パッチ管理**: セキュリティパッチの計画的適用
|
|
133
|
+
|
|
134
|
+
### 運用手順・保守要件
|
|
135
|
+
|
|
136
|
+
```plantuml
|
|
137
|
+
@startuml
|
|
138
|
+
!define RECTANGLE class
|
|
139
|
+
|
|
140
|
+
RECTANGLE "日常運用" {
|
|
141
|
+
+ システム監視
|
|
142
|
+
+ 定期メンテナンス
|
|
143
|
+
+ 障害対応
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
RECTANGLE "変更管理" {
|
|
147
|
+
+ リリース管理
|
|
148
|
+
+ 設定変更管理
|
|
149
|
+
+ 緊急変更対応
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
RECTANGLE "保守管理" {
|
|
153
|
+
+ 予防保守
|
|
154
|
+
+ 計画保守
|
|
155
|
+
+ 緊急保守
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@enduml
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
#### 日常運用
|
|
162
|
+
- **監視体制**: 24時間365日監視体制
|
|
163
|
+
- **アラート対応**: 重要度に応じたエスカレーション
|
|
164
|
+
- **定期点検**: システム稼働状況の定期確認
|
|
165
|
+
|
|
166
|
+
#### 変更管理
|
|
167
|
+
- **リリース手順**: 本番リリースの標準手順
|
|
168
|
+
- **ロールバック手順**: 問題発生時の切り戻し手順
|
|
169
|
+
- **変更承認**: 変更に対する承認プロセス
|
|
170
|
+
|
|
171
|
+
#### 保守管理
|
|
172
|
+
- **メンテナンス計画**: 計画的なシステムメンテナンス
|
|
173
|
+
- **容量管理**: リソース使用量の監視・拡張計画
|
|
174
|
+
- **ライフサイクル管理**: システム更改・廃止計画
|
|
175
|
+
|
|
176
|
+
## 運用要件定義のプロセス
|
|
177
|
+
|
|
178
|
+
### 1. 現状分析
|
|
179
|
+
|
|
180
|
+
```plantuml
|
|
181
|
+
@startuml
|
|
182
|
+
start
|
|
183
|
+
:既存システム調査;
|
|
184
|
+
:運用実態把握;
|
|
185
|
+
:課題抽出;
|
|
186
|
+
:改善点識別;
|
|
187
|
+
stop
|
|
188
|
+
@enduml
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
- **既存運用**: 現在の運用手順・体制の調査
|
|
192
|
+
- **課題識別**: 運用上の問題点・改善点の抽出
|
|
193
|
+
- **ベンチマーク**: 他システム・業界標準との比較
|
|
194
|
+
|
|
195
|
+
### 2. 要件定義
|
|
196
|
+
|
|
197
|
+
```plantuml
|
|
198
|
+
@startuml
|
|
199
|
+
start
|
|
200
|
+
:ビジネス要件確認;
|
|
201
|
+
:運用ポリシー策定;
|
|
202
|
+
:技術要件定義;
|
|
203
|
+
:運用レベル設定;
|
|
204
|
+
stop
|
|
205
|
+
@enduml
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
- **サービスレベル定義**: SLA、SLO、SLI の設定
|
|
209
|
+
- **運用ポリシー**: セキュリティ、バックアップ等のポリシー
|
|
210
|
+
- **技術要件**: 監視ツール、運用ツールの要件
|
|
211
|
+
|
|
212
|
+
### 3. 運用設計
|
|
213
|
+
|
|
214
|
+
```plantuml
|
|
215
|
+
@startuml
|
|
216
|
+
start
|
|
217
|
+
:監視設計;
|
|
218
|
+
:運用手順設計;
|
|
219
|
+
:体制設計;
|
|
220
|
+
:ツール設計;
|
|
221
|
+
stop
|
|
222
|
+
@enduml
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
- **監視設計**: 監視項目・閾値・アラート設計
|
|
226
|
+
- **手順書作成**: 運用手順書・障害対応手順書
|
|
227
|
+
- **体制設計**: 運用体制・役割分担・エスカレーション
|
|
228
|
+
|
|
229
|
+
### 4. 運用準備
|
|
230
|
+
|
|
231
|
+
```plantuml
|
|
232
|
+
@startuml
|
|
233
|
+
start
|
|
234
|
+
:環境構築;
|
|
235
|
+
:ツール導入;
|
|
236
|
+
:手順書整備;
|
|
237
|
+
:運用訓練;
|
|
238
|
+
stop
|
|
239
|
+
@enduml
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
- **環境準備**: 監視環境・運用ツール環境構築
|
|
243
|
+
- **手順書整備**: 運用手順書・マニュアル作成
|
|
244
|
+
- **運用訓練**: 障害対応訓練・手順確認
|
|
245
|
+
|
|
246
|
+
## 運用要件の品質基準
|
|
247
|
+
|
|
248
|
+
### SMART 原則
|
|
249
|
+
|
|
250
|
+
運用要件は SMART 原則に従って定義します:
|
|
251
|
+
|
|
252
|
+
- **Specific (具体的)**: 曖昧さのない明確な要件
|
|
253
|
+
- **Measurable (測定可能)**: 数値で測定可能な要件
|
|
254
|
+
- **Achievable (達成可能)**: 現実的に達成可能な要件
|
|
255
|
+
- **Relevant (関連性)**: ビジネス目標に関連した要件
|
|
256
|
+
- **Time-bound (期限)**: 明確な期限・頻度を持つ要件
|
|
257
|
+
|
|
258
|
+
### サービスレベル定義
|
|
259
|
+
|
|
260
|
+
```plantuml
|
|
261
|
+
@startuml
|
|
262
|
+
!define RECTANGLE class
|
|
263
|
+
|
|
264
|
+
RECTANGLE "SLI" {
|
|
265
|
+
+ 可用性
|
|
266
|
+
+ レスポンス時間
|
|
267
|
+
+ エラー率
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
RECTANGLE "SLO" {
|
|
271
|
+
+ 可用性 99.9%
|
|
272
|
+
+ レスポンス時間 < 200ms
|
|
273
|
+
+ エラー率 < 0.1%
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
RECTANGLE "SLA" {
|
|
277
|
+
+ 顧客との合意事項
|
|
278
|
+
+ ペナルティ条項
|
|
279
|
+
+ 免責事項
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
SLI --> SLO : 測定
|
|
283
|
+
SLO --> SLA : 合意
|
|
284
|
+
@enduml
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
#### SLI (Service Level Indicator)
|
|
288
|
+
- **可用性**: システム稼働率
|
|
289
|
+
- **レスポンス時間**: API・画面応答時間
|
|
290
|
+
- **エラー率**: エラー発生率
|
|
291
|
+
|
|
292
|
+
#### SLO (Service Level Objective)
|
|
293
|
+
- **目標設定**: 具体的な数値目標
|
|
294
|
+
- **測定期間**: 月次・四半期・年次
|
|
295
|
+
- **エラーバジェット**: 許容エラー範囲
|
|
296
|
+
|
|
297
|
+
#### SLA (Service Level Agreement)
|
|
298
|
+
- **顧客合意**: サービス提供の合意事項
|
|
299
|
+
- **補償条項**: SLA 未達成時の対応
|
|
300
|
+
- **免責条項**: 責任範囲の明確化
|
|
301
|
+
|
|
302
|
+
## 運用要件のベストプラクティス
|
|
303
|
+
|
|
304
|
+
### 1. 運用性を考慮した設計
|
|
305
|
+
|
|
306
|
+
- **Observability**: システムの内部状態を外部から観測可能に
|
|
307
|
+
- **Graceful Degradation**: 段階的な機能縮退
|
|
308
|
+
- **Circuit Breaker**: 障害の連鎖防止機能
|
|
309
|
+
- **Health Check**: システム状態確認機能
|
|
310
|
+
|
|
311
|
+
### 2. 自動化の推進
|
|
312
|
+
|
|
313
|
+
```plantuml
|
|
314
|
+
@startuml
|
|
315
|
+
start
|
|
316
|
+
:手作業識別;
|
|
317
|
+
:自動化可能性評価;
|
|
318
|
+
:自動化実装;
|
|
319
|
+
:効果測定;
|
|
320
|
+
:継続改善;
|
|
321
|
+
stop
|
|
322
|
+
@enduml
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
- **デプロイ自動化**: CI/CD パイプライン構築
|
|
326
|
+
- **監視自動化**: 自動アラート・自動復旧
|
|
327
|
+
- **テスト自動化**: 運用テストの自動実行
|
|
328
|
+
|
|
329
|
+
### 3. インシデント管理
|
|
330
|
+
|
|
331
|
+
```plantuml
|
|
332
|
+
@startuml
|
|
333
|
+
start
|
|
334
|
+
:インシデント検知;
|
|
335
|
+
:初期対応;
|
|
336
|
+
:エスカレーション;
|
|
337
|
+
:復旧作業;
|
|
338
|
+
:事後分析;
|
|
339
|
+
:改善実施;
|
|
340
|
+
stop
|
|
341
|
+
@enduml
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
- **早期検知**: 監視による迅速な問題発見
|
|
345
|
+
- **迅速対応**: 明確な対応手順・体制
|
|
346
|
+
- **学習文化**: ポストモーテムによる継続改善
|
|
347
|
+
|
|
348
|
+
### 4. セキュリティファースト
|
|
349
|
+
|
|
350
|
+
- **Zero Trust**: すべてのアクセスを検証
|
|
351
|
+
- **最小権限**: 必要最小限の権限付与
|
|
352
|
+
- **多層防御**: 複数のセキュリティ対策
|
|
353
|
+
- **継続監視**: 24時間体制のセキュリティ監視
|
|
354
|
+
|
|
355
|
+
## 運用要件の管理・改善
|
|
356
|
+
|
|
357
|
+
### 継続的改善
|
|
358
|
+
|
|
359
|
+
```plantuml
|
|
360
|
+
@startuml
|
|
361
|
+
title PDCA サイクル
|
|
362
|
+
|
|
363
|
+
start
|
|
364
|
+
:Plan\n運用計画策定;
|
|
365
|
+
:Do\n運用実行;
|
|
366
|
+
:Check\n運用状況確認;
|
|
367
|
+
:Action\n改善実施;
|
|
368
|
+
|
|
369
|
+
note right
|
|
370
|
+
・KPI 測定
|
|
371
|
+
・課題抽出
|
|
372
|
+
・改善計画
|
|
373
|
+
end note
|
|
374
|
+
|
|
375
|
+
stop
|
|
376
|
+
@enduml
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
- **定期レビュー**: 運用状況・課題の定期確認
|
|
380
|
+
- **KPI 測定**: 運用効率・品質指標の測定
|
|
381
|
+
- **改善計画**: 継続的な運用改善
|
|
382
|
+
|
|
383
|
+
### ドキュメント管理
|
|
384
|
+
|
|
385
|
+
- **手順書更新**: 最新状態の維持・版数管理
|
|
386
|
+
- **知識共有**: 運用ナレッジの組織内共有
|
|
387
|
+
- **教育・訓練**: 運用スキルの継続的向上
|
|
388
|
+
|
|
389
|
+
## まとめ
|
|
390
|
+
|
|
391
|
+
運用要件は、システムの長期的な成功に直結する重要な要件です。開発初期から運用性を考慮し、継続的に改善していくことで、「変更を楽に安全にできて役に立つソフトウェア」の実現が可能になります。
|
|
392
|
+
|
|
393
|
+
よいソフトウェアを作るためには、機能要件と同等に運用要件を重視し、開発・運用が一体となって取り組むことが重要です。
|
package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md
CHANGED
|
@@ -42,8 +42,8 @@ state 配置 #lightblue
|
|
|
42
42
|
|要件定義|
|
|
43
43
|
start
|
|
44
44
|
:要件定義;
|
|
45
|
-
:ユーザーストーリー;
|
|
46
45
|
:ユースケース;
|
|
46
|
+
:ユーザーストーリー;
|
|
47
47
|
|
|
48
48
|
|機能要件|
|
|
49
49
|
:アーキテクチャ設計;
|
|
@@ -113,7 +113,11 @@ ucc --> sm : "状態"
|
|
|
113
113
|
@enduml
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
要件定義の詳細は[要件定義ガイド](
|
|
116
|
+
要件定義の詳細は[要件定義ガイド](要件定義ガイド.md)を参照
|
|
117
|
+
|
|
118
|
+
### ユースケース・ユーザーストーリー
|
|
119
|
+
|
|
120
|
+
ユースケース・ユーザーストーリーの詳細は[ユースケース作成ガイド](ユースケース作成ガイド.md)を参照
|
|
117
121
|
|
|
118
122
|
### リリース計画
|
|
119
123
|
|
|
@@ -144,201 +148,42 @@ state イテレーション {
|
|
|
144
148
|
@enduml
|
|
145
149
|
```
|
|
146
150
|
|
|
147
|
-
計画づくりの詳細は [
|
|
151
|
+
計画づくりの詳細は [リリース・イテレーション計画ガイド](リリース・イテレーション計画ガイド.md) を参照。
|
|
148
152
|
|
|
149
153
|
|
|
150
154
|
### 機能要件
|
|
151
155
|
|
|
152
156
|
#### アーキテクチャ設計
|
|
153
157
|
|
|
154
|
-
|
|
155
|
-
アプリケーションは、バックエンドとフロントエンドの2つの主要コンポーネントで構成されています。
|
|
156
|
-
|
|
157
|
-
##### 全体構成
|
|
158
|
-
|
|
159
|
-
```plantuml
|
|
160
|
-
@startuml
|
|
161
|
-
package "アプリケーション" {
|
|
162
|
-
package "フロントエンド" {
|
|
163
|
-
[Webアプリケーション] as WebApp
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
package "バックエンド" {
|
|
167
|
-
[APIサーバー] as API
|
|
168
|
-
database "データベース" as DB
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
WebApp --> API : HTTP/REST
|
|
172
|
-
API --> DB : SQL/NoSQL
|
|
173
|
-
}
|
|
174
|
-
@endtuml
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
##### パターン
|
|
178
|
-
|
|
179
|
-
```plantuml
|
|
180
|
-
@startuml
|
|
181
|
-
!define DECISION_COLOR #FFE6CC
|
|
182
|
-
!define PROCESS_COLOR #E6F3FF
|
|
183
|
-
!define TERMINAL_COLOR #E6FFE6
|
|
184
|
-
|
|
185
|
-
skinparam roundcorner 10
|
|
186
|
-
skinparam shadowing false
|
|
187
|
-
|
|
188
|
-
start
|
|
189
|
-
|
|
190
|
-
if (業務領域のカテゴリー) then (補完、一般との連携)
|
|
191
|
-
if (データ構造が複雑か?) then (いいえ)
|
|
192
|
-
:トランザクションスクリプト;
|
|
193
|
-
:逆ピラミッド形のテスト;
|
|
194
|
-
if (永続化モデルは複数か?) then (いいえ)
|
|
195
|
-
:レイヤードアーキテクチャ 3層;
|
|
196
|
-
else (はい)
|
|
197
|
-
:レイヤードアーキテクチャ 4層;
|
|
198
|
-
endif
|
|
199
|
-
else (はい)
|
|
200
|
-
:アクティブレコード;
|
|
201
|
-
:ダイヤモンド形のテスト;
|
|
202
|
-
if (永続化モデルは複数か?) then (いいえ)
|
|
203
|
-
:レイヤードアーキテクチャ 3層;
|
|
204
|
-
else (はい)
|
|
205
|
-
:レイヤードアーキテクチャ 4層;
|
|
206
|
-
endif
|
|
207
|
-
endif
|
|
208
|
-
else (中核の業務領域)
|
|
209
|
-
if (金額を扱う/分析/監査記録が必要か?) then (いいえ)
|
|
210
|
-
:ドメインモデル;
|
|
211
|
-
:ピラミッド形のテスト;
|
|
212
|
-
if (永続化モデルは複数か?) then (いいえ)
|
|
213
|
-
:ポートとアダプター;
|
|
214
|
-
else (はい)
|
|
215
|
-
:CQRS;
|
|
216
|
-
endif
|
|
217
|
-
else (はい)
|
|
218
|
-
:イベント履歴式ドメインモデル;
|
|
219
|
-
:ピラミッド形のテスト;
|
|
220
|
-
:CQRS;
|
|
221
|
-
endif
|
|
222
|
-
endif
|
|
223
|
-
|
|
224
|
-
stop
|
|
225
|
-
@enduml
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
##### アーキテクチャパターン
|
|
229
|
-
|
|
230
|
-
###### 1. **トランザクションスクリプトパターン**
|
|
231
|
-
- **適用場面**: 補完・一般との連携業務で、データ構造が複雑でない場合
|
|
232
|
-
- **特徴**:
|
|
233
|
-
- 各機能を独立したスクリプトとして実装
|
|
234
|
-
- 手続き的なプログラミングスタイル
|
|
235
|
-
- シンプルで理解しやすい
|
|
236
|
-
- 小規模なアプリケーションに適している
|
|
237
|
-
|
|
238
|
-
###### 2. **アクティブレコードパターン**
|
|
239
|
-
- **適用場面**: 補完・一般との連携業務で、データ構造が複雑な場合
|
|
240
|
-
- **特徴**:
|
|
241
|
-
- データとビジネスロジックが同じクラスに含まれる
|
|
242
|
-
- オブジェクトが自身の永続化処理を担当
|
|
243
|
-
- ORMパターンの典型例
|
|
244
|
-
- 中規模のアプリケーションに適している
|
|
245
|
-
|
|
246
|
-
###### 3. **ドメインモデルパターン**
|
|
247
|
-
- **適用場面**: 中核の業務領域で、金額を扱わない・分析や監査記録が不要な場合
|
|
248
|
-
- **特徴**:
|
|
249
|
-
- リッチなドメインモデル
|
|
250
|
-
- ビジネスロジックがオブジェクトに分散
|
|
251
|
-
- 依存関係の逆転を活用
|
|
252
|
-
- 複雑なビジネスロジックに適している
|
|
253
|
-
|
|
254
|
-
###### 4. **イベント履歴式ドメインモデルパターン**
|
|
255
|
-
- **適用場面**: 中核の業務領域で、金額を扱う・分析や監査記録が必要な場合
|
|
256
|
-
- **特徴**:
|
|
257
|
-
- すべての状態変更をイベントとして記録
|
|
258
|
-
- 監査証跡の完全性を保証
|
|
259
|
-
- 時系列分析が可能
|
|
260
|
-
- 金融システムなど厳格な要件に適している
|
|
261
|
-
|
|
262
|
-
##### アーキテクチャスタイル
|
|
263
|
-
|
|
264
|
-
###### 1. **レイヤードアーキテクチャ(3層)**
|
|
265
|
-
- **適用場面**: 永続化モデルが単一の場合
|
|
266
|
-
- **特徴**:
|
|
267
|
-
- プレゼンテーション、ビジネスロジック、データアクセスの3層
|
|
268
|
-
- 関心事の分離が明確
|
|
269
|
-
- 保守性と拡張性が高い
|
|
270
|
-
- 標準的なエンタープライズアプリケーションに適している
|
|
271
|
-
|
|
272
|
-
###### 2. **レイヤードアーキテクチャ(4層)**
|
|
273
|
-
- **適用場面**: 永続化モデルが複数の場合
|
|
274
|
-
- **特徴**:
|
|
275
|
-
- アプリケーション層を追加した4層構造
|
|
276
|
-
- より細かい責務の分離
|
|
277
|
-
- 複雑なデータ統合に対応
|
|
278
|
-
- 大規模なエンタープライズアプリケーションに適している
|
|
279
|
-
|
|
280
|
-
###### 3. **ポートとアダプターアーキテクチャ(ヘキサゴナル)**
|
|
281
|
-
- **適用場面**: ドメインモデルで永続化モデルが単一の場合
|
|
282
|
-
- **特徴**:
|
|
283
|
-
- 外部依存からの完全な分離
|
|
284
|
-
- テスト容易性が高い
|
|
285
|
-
- 技術的な詳細から独立
|
|
286
|
-
- マイクロサービスに適している
|
|
287
|
-
|
|
288
|
-
###### 4. **CQRSアーキテクチャ**
|
|
289
|
-
- **適用場面**: 永続化モデルが複数、またはイベント履歴式の場合
|
|
290
|
-
- **特徴**:
|
|
291
|
-
- コマンドとクエリの分離
|
|
292
|
-
- 読み書きのパフォーマンス最適化
|
|
293
|
-
- 複雑なレポート要件に対応
|
|
294
|
-
- 高スケーラビリティを要求されるシステムに適している
|
|
158
|
+
アーキテクチャ設計の詳細は [アーキテクチャ設計ガイド](アーキテクチャ設計ガイド.md) を参照
|
|
295
159
|
|
|
296
160
|
#### データモデル設計
|
|
297
161
|
|
|
298
|
-
[
|
|
162
|
+
データモデル設計の詳細は [データモデル設計ガイド](データモデル設計ガイド.md) を参照
|
|
299
163
|
|
|
300
164
|
#### ドメインモデル設計
|
|
301
165
|
|
|
302
|
-
[
|
|
166
|
+
ドメインモデル設計の詳細は [ドメインモデル設計ガイド](ドメインモデル設計ガイド.md) を参照
|
|
303
167
|
|
|
304
168
|
#### UI設計
|
|
305
169
|
|
|
306
|
-
[
|
|
170
|
+
UI設計の詳細は [UI設計ガイド](UI設計ガイド.md) を参照
|
|
307
171
|
|
|
308
172
|
### 非機能要件
|
|
309
173
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
1. ユニットテスト
|
|
313
|
-
- 個々のコンポーネントのテスト
|
|
314
|
-
- ビジネスロジックの検証
|
|
315
|
-
- 境界値テスト
|
|
174
|
+
非機能要件の詳細は [非機能要件ガイド](非機能要件定義ガイド.md) を参照
|
|
316
175
|
|
|
317
|
-
|
|
318
|
-
- コンポーネント間の連携テスト
|
|
319
|
-
- APIの検証
|
|
320
|
-
- データフローの確認
|
|
176
|
+
#### テスト戦略
|
|
321
177
|
|
|
322
|
-
|
|
323
|
-
- ユーザーシナリオテスト
|
|
324
|
-
- 実環境に近い状態でのテスト
|
|
325
|
-
- 性能テスト
|
|
178
|
+
テスト戦略の詳細は [テスト戦略ガイド](テスト戦略ガイド.md) を参照
|
|
326
179
|
|
|
327
|
-
|
|
328
|
-
- **適用**: ドメインモデル、イベント履歴式
|
|
329
|
-
- **構成**: ユニットテスト多数、統合テスト中程度、E2Eテスト少数
|
|
330
|
-
- **特徴**: 高品質なビジネスロジックの検証に重点
|
|
180
|
+
#### 非機能要件定義
|
|
331
181
|
|
|
332
|
-
|
|
333
|
-
- **適用**: アクティブレコード
|
|
334
|
-
- **構成**: ユニットテストと統合テストを重視
|
|
335
|
-
- **特徴**: データアクセスロジックの検証に重点
|
|
182
|
+
非機能要件定義は [非機能要件定義ガイド](非機能要件定義ガイド.md) を参照
|
|
336
183
|
|
|
337
|
-
|
|
338
|
-
- **適用**: トランザクションスクリプト
|
|
339
|
-
- **構成**: E2Eテスト多数、統合テスト中程度、ユニットテスト少数
|
|
340
|
-
- **特徴**: エンドツーエンドの動作検証に重点
|
|
184
|
+
#### 運用要件定義
|
|
341
185
|
|
|
186
|
+
運用要件定義は [運用要件定義ガイド](運用要件定義ガイド.md) を参照
|
|
342
187
|
|
|
343
188
|
## 開発
|
|
344
189
|
|