システム開発における上流工程がシステムの品質を決める。
システム開発のプロセス
プロセス名 | スタイル |
ウォーターフォール型(V字モデル) | システム全体を、要件定義→設計→製造→テストの工程で作っていく。 |
スパイラル型 | システム全体を適当な機能に分割して、機能ごとにウォーターフォール開発を行なっていく。ある機能が開発できたら、次の機能をウォーターフォールで行なっていく。 |
XP型(アジャイル) | システム全体の機能をストーリーカードに書き起こし。優先度の高いストーリーから開発していく。 |
要求分析と要件定義
ウォーターフォール型の一般的な上流工程は次の通り。
- 要求分析(顧客主導)
- 要求定義(顧客主導)
- 要件分析(顧客主導/開発会社支援)
- 要件定義(顧客主導/開発会社支援)
小規模な案件では、顧客と開発会社が共同で、これら4つをまとめて要件定義とすることも多々ある。
要求分析
システム全体像を捉えて、漏れなのないよう要求をまとめる必要がある。
実際は下記のような手法を使って進める。
ソフトシステム方法論(SSM)
「何を」「どうする」といった形での具体的な行動案の導出を目指す分析手法。
「Zを達成するために、 Yによって、Xを行うシステムである」という基本定義と呼ぶ形式を列挙するようにまとめていく。
そのために、CATWOEという6つの要素を考慮する。
- Customer 顧客
- Actors 行為者
- TransformationProcess 変換過程
- Weltanschauung 世界観
- Owner 所有者
- Environmental Constraints 環境制約
マルチビュー分析
複数の視点からの異なる分析を組み合わせることにより、漏れのない分析を目指す。
- 技術的側面の設計
- ヒューマンインターフェースの設計
- 社会技術的側面の分析と設計
- 情報の分析
- 人間活動の分析
SSMとマルチビュー分析は、複数の分析視点を持つことが共通する。漏れなく分析するためである。SSMは視点が自由に設定できるが、マルチビュー分析は視点が固定されている。
機能要求と非機能要求
機能要求とは、システムに求められる処理機能のこと。
非機能要求とは、機能要求以外の面でシステムに求められる条件のこと。
非機能要求については、非機能要求仕様定義ガイドライン(UVC II)が存在するため、非機能要求を漏らさないための観点として活用できる。
非機能要求の6大項目は下記の通り。
- 可用性
- 性能・拡張性
- 運用・保守性
- 移行性
- セキュリティ
- システム環境・エコロジー
要件定義
要求と要件の違い
要求…顧客が求めているもの。漏れや矛盾、できない事が含まれている可能性がある。概要レベルの記述も含まれている。
要件…要求をシステム化できるレベルに落とし込んだもの。漏れや矛盾が含まれていてはいけない。概要レベルの要求であれば、システム化できるように専門家としての知見を元に詳細化する必要がある。
要求段階で十分検討されていれば、要件は要求とほぼ同じになることがある。
成果物となるドキュメント
要求分析 | ・DFD ・業務フロー図 |
要求定義 | ・要求定義書 |
要件分析 | |
要件定義 | ・要件定義書 |
感想
要求定義から要件定義までカバーしているため、効率よく上流工程を学べたので良かった。
また、体系的な分析手法を体系的に学んでいくことができるのが良かった。