Pieris Books(ブックカフェ併設のセレクトショップ販売店)のシステム開発のプロジェクトを進めています。
前回までビジネス・モデルの作成を行いました。
ビジネス・モデルを作成することで開発対象のシステムが動作するビジネス上の文脈を明確化しました。このビジネス文脈を前提に、要求モデルの作成を進めることになります。
今回から要求モデルのモデルの定義とCozy上での取り扱いついて検討していきます。
要求モデル
要求モデルは以下のサブ・モデルで構成されます。
- スコープ・モデル
- 機能要求モデル
- 非機能要求モデル
スコープ・モデル
スコープ・モデルは開発対象システムのスコープを定めます。ビジネス・モデルの文脈の中で、システムの置かれる立ち位置、システムの責務を考えていきます。
スコープ・モデルは以下の2つのモデルで構成されます。
- ビジョン宣言
- システム・コンテキスト
ビジョン宣言
ビジョン宣言は、システム開発のビジョンを定義します。
ビジネス・モデルで今回のシステム開発に関わるビジネス上のビジョンをビジネス・ビジョン宣言として定義しました。このビジネス・ビジョン宣言を参考に、システム開発のビジョンを定義します。
システム・コンテキスト
システム・コンテキストは開発対象のシステムをコンテキスト図を使って記述します。
システムの利用者や外部システムなどのアクターとシステムの境界を明確にするのが目的です。
ビジネス・モデルで作成したビジネス・コンテキストをベースにシステム開発に関係する部分を詳細化したものになります。
機能要求モデル
機能要求モデルはシステムの提供する機能に関する要求仕様を記述するモデルです。
機能要求モデルは以下の2つのモデルで構成されます。
- ユースケース・モデル
- フィーチャ・モデル
ユースケース・モデル
ユースケース・モデルはアクターの目標と達成するための物語であるユースケースを軸とした要求モデルです。
ユースケース駆動開発は、ユースケースを軸に要求分析からシステム分析、ドキュメント、テストなどの各作業分野を駆動していく開発方式です。
ユースケースを開発の単位として開発管理を行っていきます。ただし、ユースケースだと開発の粒度が大きい場合には、一回のイテレーションにフィットするサイズにユースケースを分割したユースケース・スライスを使用してます。
フィーチャ・モデル
フィーチャ・モデルはユースケースに向かない開発項目をフィーチャとして定義したモデルです。
フィーチャ単独で定義するケースとユースケースのシナリオ内で使用するシステム機能をフィーチャとしてモデル化する場合があります。
ユースケースを補完するモデルとして使用します。
非機能要求モデル
非機能要求モデルは機能要求モデルで記述できない、機能を横断した要求項目を記述するモデルです。
非機能要求モデルは以下のようなモデルで構成されます。
- 品質属性
- コスト
- 技術上の制約
品質属性
品質属性は性能、スケーラビリティ、セキュリティなど機能に対して横断的な関心事の品質要件を定義したものです。
コスト
コストはシステムの開発費やハードウェアの調達費、運用コストなどです。
技術上の制約
技術上の制約は使用することが求められているハードウェア、OS、ミドルウェアなどが代表的なものになります。
まとめ
今回は要求モデルの全体像について説明しました。
次回はスコープ・モデルのビジョン宣言について説明します。