要件定義とは、システム開発を始める前に発注者の要求を整理し、ドキュメント化する作業のこと。要件定義では、発注者の求めているシステムを要件定義書としてまとめ、発注者と受注者で合意し、今後のシステム開発のスタート地点とする。
具体的な要件定義フロー
要件定義では、主にシステム化の目標とスコープ定義、システムの機能要件と非機能要件を整理します。
システム化の目標やスコープを定義する
具体的な要件を整理する前に、システム化の目標や今回開発するシステムのスコープについて定義します。そもそも何のためにシステム化を行うのか、そしてシステム化で実現しようとしている効果は何なのかを明確化することで、検討が進んでいく中で方向性がブレることを防ぎます。
また、システム化の対象とする範囲をスコープとして定義します。要件定義を進めていくと、どうしてもあれもこれもと欲張りになってしまいがちですが、今回のシステム化の対象範囲を大まかに定めておくことで、システムの肥大化をさけるようにします。
例えば、今回開発するシステムが銀行で利用するATMであれば、以下のように目標やスコープなどを定めます。
システムの目標 | ATMを20XX年3月までに開発し、 顧客の利便性向上 および 窓口対応の負荷低減を目指す |
システムのスコープ | 1.入出金業務 2.通帳記入業務 3.明細発行業務 ・・・ |
システムの機能要件を整理する
システム化の目標やスコープを明らかにしたら、続いてシステムの機能要件を整理します。システムの機能要件とは、システム化の対象とシステムでの処理内容、保持するデータなどのことです。ATMの例では、以下のような機能が必要となるでしょう。
機能名 | 機能概要 |
---|---|
入金機能 | 紙幣、現金の入金ができること 紙幣は一度に10枚まで投入できること |
出金機能 | 紙幣にて出金ができること 紙幣は、顧客の出金額に応じて枚数が最小になるように最適な組み合わせとすること |
残高表示 | 顧客の預金残高を表示できること |
通帳記帳 | 通帳の記帳ができること 通帳の記帳欄がなくなった場合は、自動で新しい通帳を発行できること |
・・・ | ・・・ |
システムの非機能要件を整理する
システムの非機能要件とは、機能以外にシステムとして必要な要素を指します。具体的には、セキュリティに対する要件や運用・保守に関する要件、システムに求める信頼性や可用性、システムの稼働時間などが該当します。
ATMの例では、以下のような要素を定めることになるでしょう。
項目 | 要件 |
---|---|
セキュリティレベル | 顧客の金銭を扱うため最高レベルのセキュリティとする |
運用・保守 | ハードウェアの定期的な修理・交換を行う など |
信頼性 | 年間停止時間を1時間以内とする など |
システムの稼働時間 | 平日24時間、休日9:00-18:00 |
・・・ | ・・・ |