2.1.2. 要求分析の手法

1. 概要

 要求分析とは、システム開発の初期段階で行われる重要なプロセスであり、ユーザーや関係者からのニーズを収集・分析し、システムに求められる機能や性能、制約条件などを明らかにする作業です。この工程はシステム開発の土台となるため、ここでの誤りや不備はプロジェクト全体に大きな影響を与えます。適切な要求分析を行うことで、開発するシステムがビジネス目標や利用者のニーズを確実に満たすことができ、後工程での手戻りを大幅に減らすことができます。

 応用情報処理技術者として、要求分析に用いられる様々な手法やモデルの特徴を理解し、適切に選択・活用できることが求められます。

graph TD
    A[要求収集] --> B[要求整理・分析]
    B --> C[モデリング]
    C --> D[要求仕様化]
    D --> E[要求検証]
    
    A -->|アンケート
インタビュー| B
    B -->|親和図
機能分析
構造分析| C
    C -->|データフローモデル
E-Rモデル
ペトリネットモデル
並列プロセスモデル| D
    B -.->|KAOS法
アイスター| D
    
    style A fill:#d4f1f9,stroke:#333,stroke-width:1px
    style B fill:#d4f1f9,stroke:#333,stroke-width:1px
    style C fill:#d4f1f9,stroke:#333,stroke-width:1px
    style D fill:#d4f1f9,stroke:#333,stroke-width:1px
    style E fill:#d4f1f9,stroke:#333,stroke-width:1px

図1: 要求分析プロセスの全体像

2. 詳細説明

2.1. 要求収集の手法

2.1.1. アンケート

 アンケートは、多数のユーザーから効率的に情報を収集するための手法です。特徴として以下が挙げられます。

  • 短時間で多くの意見を集められる
  • 定量的な分析が可能
  • 匿名性があるため本音を引き出しやすい
  • 質問の作成に専門知識が必要
  • 深掘りや追加質問ができない

2.1.2. インタビュー

 インタビューは、対面でのコミュニケーションにより詳細な要求を聞き出す手法です。特徴として以下が挙げられます。

  • 対話を通じて深い理解が得られる
  • 質問の流れを柔軟に変更できる
  • 非言語情報も得られる
  • 時間と人的リソースを多く必要とする
  • インタビュアーのスキルに依存する
比較項目 アンケート インタビュー
収集できる情報量 多数のユーザーから広く浅く 少数のユーザーから狭く深く
時間効率 高い(同時に多数収集可能) 低い(一人ずつ実施)
質問の柔軟性 低い(事前に固定) 高い(その場で追加・変更可能)
回答の深さ 浅い(選択肢や短文が中心) 深い(詳細な説明や理由も得られる)
非言語情報 取得不可 取得可能(表情、声のトーン等)
匿名性 高い 低い
分析の容易さ 容易(特に定量データ) 難しい(質的データの解釈が必要)
必要リソース 少ない 多い
適した場面 ・傾向やパターンの把握
・大量のユーザー意見収集
・定量的な分析が必要な場合
・要求の詳細な理解が必要
・複雑な業務プロセスの把握
・キーユーザーの深い洞察を得たい場合

表1: 要求収集手法の比較表

2.2. 要求整理・分析の手法

2.2.1. 親和図

 親和図は、収集した要求を関連性や類似性に基づいてグループ化する手法です。特徴として以下が挙げられます。

  • 大量の情報を視覚的に整理できる
  • チームでの合意形成に役立つ
  • 関連性の発見に効果的
  • 階層構造を表現できる
  • 主観的な判断に左右される可能性がある

2.2.2. 機能分析

 機能分析は、システムが提供すべき機能を階層的に分解・整理する手法です。特徴として以下が挙げられます。

  • 機能の漏れや重複を防ぐ
  • 機能間の関係を明確にする
  • 優先順位付けの基盤となる
  • 詳細レベルの機能定義に適している
  • 非機能要件は別途整理が必要

2.2.3. 構造分析

 構造分析は、システムの構成要素とその関係性を明らかにする手法です。特徴として以下が挙げられます。

  • システム全体の見取り図を提供
  • コンポーネント間の関係を可視化
  • 複雑なシステムの理解を助ける
  • 静的な側面に焦点を当てる
  • 動的な振る舞いは別の手法が必要

2.3. モデリング手法

2.3.1. データフローモデル

 データフローモデルは、システム内でのデータの流れを可視化する手法です。特徴として以下が挙げられます。

  • プロセス間のデータの流れを明確に表現
  • システムの機能的側面を理解しやすい
  • データストアの識別に役立つ
  • 複雑なシステムでは図が煩雑になる
  • 時間的な側面は表現しにくい

図2: データフローモデルの例

2.3.2. ペトリネットモデル

 ペトリネットモデルは、並行処理や同期を表現するための数学的モデリング手法です。特徴として以下が挙げられます。

  • 並行処理を数学的に厳密に表現できる
  • デッドロックなどの問題を検出できる
  • システムの動的な振る舞いを表現
  • 学習コストが高い
  • 大規模システムでは複雑になりすぎる

図3: ペトリネットモデルの例

2.3.3. E-R モデル

 E-R モデル(Entity-Relationship モデル)は、データベース設計のためのモデリング手法です。特徴として以下が挙げられます。

  • エンティティ間の関係を視覚的に表現
  • データベース設計の基礎となる
  • 業務ルールを明確に表現できる
  • データの構造に焦点を当てる
  • プロセスの流れは表現できない

図4: E-Rモデルの例

2.3.4. 並列プロセスモデル

 並列プロセスモデルは、同時に実行される複数のプロセスとその相互作用を表現する手法です。特徴として以下が挙げられます。

  • 並行処理を明示的に表現
  • プロセス間の同期や通信を表現
  • リアルタイムシステムの設計に有用
  • 複雑なシステムでは理解が難しくなる
  • 専門的な知識が必要
モデリング手法 主な用途 表現できるもの 表現しにくいもの 難易度 適した開発フェーズ
データフローモデル システム内のデータの流れの可視化 ・プロセス間のデータの流れ
・データ変換プロセス
・データの入出力
・データストア
・時間的な振る舞い
・条件分岐
・プロセスの並行性
基本設計
E-Rモデル データベース設計 ・エンティティとその属性
・エンティティ間の関係
・業務ルール
・プロセスの流れ
・時間的な振る舞い
・アルゴリズム
基本設計〜詳細設計
ペトリネットモデル 並行処理システムの動的振る舞いの分析 ・並行処理
・同期メカニズム
・リソース競合
・デッドロック
・データ構造
・ユーザーインタフェース
・複雑なビジネスロジック
詳細設計
並列プロセスモデル 並行実行される複数プロセスの設計 ・プロセス間通信
・同期ポイント
・リソース共有
・タイミング制約
・データ構造
・詳細なアルゴリズム
・ユーザー体験
詳細設計

表2: モデリング手法の比較表

2.4. 高度な要求分析手法

2.4.1. ゴール指向要求分析

 ゴール指向要求分析は、システムの目標から要求を導出する手法です。代表的な方法として、KAOS法やアイスターがあります。

KAOS法

  • 目標を階層的に分解
  • 目標達成のための障害も分析
  • 目標と要求の関係を明確化
  • フォーマルな記法を持つ
  • 導入コストが高い

図5: KAOS法による目標分解の例

アイスター

  • 戦略的依存関係を表現
  • ステークホルダー間の相互作用を可視化
  • 代替案の評価に役立つ
  • 主観的な判断に依存する部分がある
  • 大規模システムでは複雑になる

2.4.2. BABOK(ビジネスアナリシス知識体系ガイド)

 BABOKは、ビジネスアナリシスの知識体系をまとめたガイドであり、要求分析の体系的なアプローチを提供します。特徴として以下が挙げられます。

  • 国際的に認知された知識体系
  • 要求分析の全工程をカバー
  • 様々な手法・ツールを体系的に整理
  • 実務で即活用できる知識を提供
  • 導入には組織的な取り組みが必要
プロジェクト特性 推奨される要求分析手法 理由
大規模なエンタープライズシステム ビジネス目標からの要求の導出、組織的なアプローチ、複雑なデータ構造とフローの可視化が必要なため
ユーザー体験重視のウェブ/モバイルアプリ エンドユーザーの意見収集とニーズの整理、機能の優先順位付けが重要なため
時間制約のある小規模プロジェクト 効率的な要求収集と分析、最低限必要なモデリングに焦点を当てるため
リアルタイム/組込みシステム 並行処理、タイミング制約、リソース競合の分析が重要なため
既存システムの改修/拡張 既存のシステム構造とデータフローの理解、変更の影響範囲の把握が必要なため
複数ステークホルダー間の調整が必要なシステム ステークホルダー間の依存関係と利害関係の可視化、合意形成の促進が重要なため
高度なセキュリティが求められるシステム セキュリティ目標からの要求導出、脆弱性の特定、データの流れと処理の詳細な分析が必要なため
データ中心のシステム(BI、データウェアハウスなど) データ構造、関係性、変換プロセスの詳細な理解と設計が必要なため

表3: 要求分析手法選択ガイド

3. 応用例

3.1. 金融システムでの応用例

 銀行の新しいオンラインバンキングシステム開発では、セキュリティ要件が極めて重要です。このようなケースでは、まずインタビューによって主要なステークホルダーの要求を収集し、アンケートで一般ユーザーの利便性に関する要求を広く集めます。収集した要求は親和図で整理し、機能分析によって必要な機能を体系化します。データフローモデルを用いて情報の流れとセキュリティチェックポイントを可視化し、E-Rモデルでアカウント管理のデータ構造を設計します。さらに、ペトリネットモデルを使って同時アクセス時の整合性維持の仕組みを検証します。KAOS法によってセキュリティ目標から具体的な要求に落とし込むアプローチも効果的です。

3.2. 製造業でのERP導入例

 製造業の企業がERPシステムを導入する際には、業務プロセスの複雑さを適切に分析する必要があります。まず現場担当者へのインタビューで実態を把握し、親和図で課題を整理します。構造分析によって既存システムとの連携ポイントを特定し、データフローモデルとE-Rモデルで情報の流れとデータ構造を設計します。並列プロセスモデルを用いて生産管理と在庫管理の同期メカニズムを設計し、アイスターで部門間の依存関係を分析します。BABOKのフレームワークに沿って要求を体系的に管理することで、複雑な要求の漏れを防ぎます。

4. 例題

例題1

 ある小売業のオンラインショップ開発プロジェクトにおいて、要求分析の初期段階で最も適切な手法を選択してください。主な課題は「顧客がどのような購買体験を望んでいるかが明確でない」という点です。

  1. E-Rモデル
  2. アンケート
  3. ペトリネットモデル
  4. 構造分析

 正解は 2. アンケートです。顧客の購買体験への要望を幅広く収集するには、多数の顧客から効率的にデータを収集できるアンケートが最適です。E-Rモデルはデータ構造の設計、ペトリネットモデルは並行処理の分析、構造分析はシステム構成要素の整理に適していますが、初期段階での顧客ニーズの広範な収集には適していません。

例題2

 病院情報システムの開発において、患者データの管理と診療部門間のデータ連携を設計するために最も適したモデリング手法の組み合わせはどれですか。

  1. E-Rモデルとデータフローモデル
  2. ペトリネットモデルと親和図
  3. KAOS法と構造分析
  4. アイスターと並列プロセスモデル

 正解は 1. E-Rモデルとデータフローモデルです。患者データの管理にはデータ構造を表現するE-Rモデルが適しており、診療部門間のデータ連携にはデータの流れを表現するデータフローモデルが適しています。ペトリネットモデルと親和図は並行処理と要求の整理に、KAOS法と構造分析は目標分解とシステム構成の整理に、アイスターと並列プロセスモデルはステークホルダー分析と並行処理に適していますが、データ管理と連携の設計には1の組み合わせが最適です。

例題3

 以下のうち、ビジネス目標からシステム要求を導出するアプローチとして最も適しているのはどれですか。

  1. 機能分析
  2. ゴール指向要求分析(KAOS法)
  3. データフローモデル
  4. E-Rモデル

 正解は 2. ゴール指向要求分析(KAOS法)です。KAOS法はビジネス目標を階層的に分解し、それを達成するために必要なシステム要求に落とし込むアプローチを提供します。機能分析はシステムの機能を階層的に整理する手法、データフローモデルはデータの流れを可視化する手法、E-Rモデルはデータ構造を設計する手法であり、ビジネス目標からの要求導出には適していません。

例題4

 ある企業で複数の部門が関係する新しい業務システムを開発することになりました。部門間の利害関係や依存関係を適切に把握し、要求を整理するための手法として最も適しているのはどれですか。

  1. ペトリネットモデル
  2. データフローモデル
  3. アイスター(i*)
  4. E-Rモデル

 正解は 3. アイスター(i*)です。アイスターはステークホルダー間の戦略的依存関係や目標を可視化し、複数の関係者間の相互作用を分析するのに適した手法です。ペトリネットモデルは並行処理や同期を表現する手法、データフローモデルはシステム内のデータの流れを可視化する手法、E-Rモデルはデータ構造を設計する手法であり、部門間の関係性の分析には適していません。

5. まとめ

 要求分析は、システム開発の成否を大きく左右する重要なプロセスです。本記事では、要求分析に用いられる代表的な手法やモデルについて解説しました。

5.1. 要求収集手法

  • アンケート:多数のユーザーから効率的に情報収集
  • インタビュー:対話を通じて深い理解を得る

5.2. 要求整理・分析手法

  • 親和図:関連性に基づく要求のグループ化
  • 機能分析:機能の階層的分解と整理
  • 構造分析:システム構成要素とその関係性の分析

5.3. モデリング手法

  • データフローモデル:データの流れの可視化
  • ペトリネットモデル:並行処理や同期の数学的表現
  • E-Rモデル:データ構造の設計
  • 並列プロセスモデル:並行処理の表現

5.4. 高度な要求分析手法

  • ゴール指向要求分析(KAOS法、アイスター):目標からの要求導出
  • BABOK:ビジネスアナリシスの体系的知識体系

 これらの手法やモデルは、それぞれ特徴や適用場面が異なります。応用情報処理技術者として、プロジェクトの特性や目的に応じて最適な手法を選択し、効果的な要求分析を行うことが求められます。

タイトルとURLをコピーしました