業務分析や要件定義に用いられる手法

テクノロジ系 > 大分類4 開発技術 > 中分類12 システム開発技術 > 1.システム要件定義・ソフトウェア要件定義 > (8)業務分析や要件定義に用いられる手法

ヒアリング

① ヒアリング
ソフトウェアに何が要求されているかを明らかにし,理解するためには,利用者からのヒアリングが有効であること,ヒアリング実施の手順,考え方を理解する。
【用語例】 ヒアリング計画,ヒアリング議事録

ヒアリングはシステム開発に限らず様々な調査で利用される基本的な方法です。ヒアリングがシステム開発においても有効であることを理解しておく程度でよいと思います。

ユースケース

② ユースケース
ユースケースは,一つの目標を達成するための利用者とシステムのやり取りを定義するために用いること,その特徴,目的,ユースケースを描く方法を理解する。
【用語例】 アクター,振舞い,ユースケース図

ユースケースとは、システムを利用者がどのように使用するのか、システムと利用者のやり取りを利用者視点で見たものです。代表的な表現方法であるユースケース図はUMLの一つとなるので、⑥で解説します。

モックアップ及びプロトタイプ

③ モックアップ及びプロトタイプ
ソフトウェア要求分析において,外部仕様の有効性,仕様の漏れ,実現可能性などの評
価を行い,手戻りを防ぐためにモックアップ及びプロトタイプを作成することがあること,
モックアップ及びプロトタイピングの特徴を理解する。
【用語例】 プロトタイプ版評価垂直型プロトタイプ,水平型プロトタイプ

モックアップとは模型という意味で、ウェブサイトなどを作るときにデザインのサンプルとして作成されるものを指します。プロトタイプとは試作品という意味で、開発するシステムの基本的な機能のみを作り、使用感や機能性などを確認するものです。

どちらも細かく作りこむ前に完成品のイメージをつかむために作成されるものですが、モックアップはビジュアル面を重視、プロトタイプは機能面を重視という違いがあります。

これらを作ることで、例えば「イメージと違った」と顧客から言われて手戻りが発生するといったことを防ぐことができます。

垂直型プロトタイプと水平型プロトタイプ

プロトタイプは開発するシステムの基本的な機能のみを作り、使用感や機能性などを確認するものでしたが、どういったプロトタイプにするかで2種類に分かれます。

垂直型プロトタイプはある特定の機能について詳細を詰めていくプロトタイプです。この時画面のレイアウトや色など、見た目に関することも詳細に作りこんでいきます。一方、水平型プロトタイプはシステム全体の機能について大まかに作るプロトタイプで、全体の機能について見渡すことができるようにするのが目的で、見た目に関してはあまり詳細に作りません。

DFD

④ DFD
業務プロセスをデータの流れに着目して表現する場合に,DFD を使用することを理解す
る。
【用語例】 データストア,データフロー,プロセス,源泉と吸収,外部実体,コンテキスト
ダイアグラム,ミニスペック,段階的詳細化,構造化分析法,アクティビティ

DFD(Data Flow Diagram:データフロー図)はシステムにおけるデータの流れを図にあらわしたものです。業務プロセスをデータの流れに着目して表現する場合に使用されます。データフロー図では次の4つの記号を使用します。

①ターミネータ
源泉と吸収、外部実体とも言い、システムの外側のデータの出所や出力先を表します。四角い記号で表します。

②プロセス
データを加工する処理を表します。丸い記号で表現します。

③データストア
データを蓄積するものを表し、データベースなどがこれに該当します。上下の平行線で表現します。

④フロー
データの移動経路を表します。矢印で表現します。

例としては次のようになります。

ITパスポート 平成21年度秋季 問題89

顧客が注文依頼をした後、顧客に請求書が届くまでの流れを表しています。この図ではターミネータは2つとも顧客になっていますが、違うものになる場合もあります。

DFDは次のルールを守って記載します。

①プロセスには入力と出力が一つ以上存在しなければならない
開始と終了には必ずターミネータが存在し、プロセスで開始・終了はしません。1つ以上存在すればよく、特に制限はありません。

②データストアとデータストアは直接結ばない
データストア同士を結ぶ場合はプロセスを介す必要があります。

E-R図

⑤E-R図
業務で扱う情報を抽象化し,実体(エンティティ)と実体間の関連(リレーションシッ
プ)を表現する場合に,E-R 図を使用することを理解する。
【用語例】 実体,関連,データ中心設計

E-R図(Entity-Relationship Diagram:実体関連図)はデータとデータの関連を表現した図です。概念データモデルを表現するために用いられます。概念データモデルとは、システム化をする対象についてデータ構造を分析しその全体像を捉えるためのモデルです。

E-R図では分析対象となるものを実体(エンティティ)といい、実体と実体の関係性を関連(リレーションシップ)と呼びます。エンティティは長方形、リレーションシップはエンティティ間を結ぶ線として表します。

カーディナリティ

カーディナリティとは、ある対象間の数の関係を表します。この関係には1対1、1対多、多対多の3種類があります。E-R図でリレーションシップを引く場合に多側に矢印を書きます。

1対1

小学校の担任の先生は1人で1つだけ担任クラスを持ちます。この場合、カーディナリティは「1対1」になります。

1対多

小学校の担任の先生と生徒の関係は先生が1人に対して生徒は複数名存在します。この場合、カーディナリティは「1対多」になります。

他によく出る例では注文と注文明細の関係があります。注文は1回の注文の合計金額などを示すもので、注文明細はその明細、例えば「鉛筆が1本100円」「消しゴム2個300円」といった内訳を示しますです。これも注文に対し注文明細が複数となり、1対多のカーディナリティとなります。E-R図では次のように表記します。

多対多

会社の一つの部署には複数の社員が所属しますが、社員も複数の部署に所属することがある、といった場合、カーディナリティは多対多になります。

この場合、その関係性を表にすると次のようになります。

この場合、社員名と部署には2つ以上のデータを書く箇所が出てきますが、これはデータベースでは基本的には実装ができません。そのため、間に新しい表を追加します。これを連関エンティティといいます。この例では、「所属」が連関エンティティといいます。

これらのカーディナリティはシステム化の対象の業務を分析した結果を図表化するものです。分析した結果、社員は必ず1つの部署に所属するということが分かれば、1対多の関係となります。

UML

⑥UML
オブジェクト指向設計の標準化された表記法として UML があること,UML で用いる図式の種類,特徴,UML を用いてシステムの仕組みを表現する方法を理解する。
【用語例】 クラス図,操作,属性,ロール名,パッケージ図,アクティビティ図,ユースケース図,ステートマシン図,シーケンス図,コミュニケーション図,イベントフロー分析,バックトラック,コントロールフロー,分析と設計の役割分担,エージェント指向,モデル,フレームワーク

UML(Unified Modeling Language:統一モデリング言語)はシステムの対象を視覚的に表現するための図表の形式です。オブジェクト指向におけるシステムやソフトウェアの設計において、その対象を視覚的に表現するための標準的な方法を提供する意図で1990年代に開発されました。現在では仕様をOMG(Object Management Group)という団体によって管理されており、最新バージョンは2.5.1です。

【参考】OMG:UMLのページ
https://www.omg.org/spec/UML/2.5.1/About-UML

UMLの図は、大きく分けてシステムの構造を表す「構造図」と、動作や変化を表す「振る舞い図」に分かれ、「振る舞い図」の中の「相互作用図」はさらに4つの図表があり、全部で14種類の図表で構成されています。次がその一覧で、応用情報のシラバスで取り上げられている7種類を★マークを付けて示し、詳しく見ていきます。

クラス図

クラス図は構造図の一つで、システムを構成するクラスの構成やクラス間の関係を表現する図です。オブジェクト指向ではオブジェクトを生成するための設計書・ひな形としてクラスというものを定義し、クラスからその実体であるインスタンスを生成します。クラスにはデータ(属性)とその振る舞い(操作)を定義することができます。クラス図ではそれらの定義とクラス間の関係性を示すことができる図となっています。

クラスの書き方

クラス図にはクラス名、属性、操作を記載します。

属性とはプロパティとも呼ばれ、クラスが持つデータを表します。例えば「社員」クラスの場合、氏名や生年月日を持つことが考えられます。属性には属性名の他、可視性、データ型、初期値、制約条件などを記載しますが、属性名以外は省略可能です。属性名以外を記載する場合は、以下のように記載します。

可視性 属性名:型 = 初期値 {制約条件}

操作とはメソッドと呼ばれ、クラスの振る舞いを表します。メソッドはプログラミング言語における「関数」のようなもので、呼び出したときに関数を実行した時のように定義された動作が実行されます。例えば「入社手続きが実行される」というようなものです。操作には可視性、メソッド名、引数、戻り値の型などを定義しますが、操作操作名以外は省略可能です。操作名以外を記載する場合は以下のように記載します。

可視性 メソッド名(引数変数名:引数型):戻り値の型

クラス図には必ずしも全て記載する必要はなく、分析の進捗によってや図の用途によって必要な情報は変わります。応用情報の出題においてもクラス名しか記載されないことも多いため、以下クラス名のみを書いて解説をします。

可視性

可視性とは他のクラスから属性や操作にアクセスが可能かどうかを表します。主に次の3つが使用されます。

  • public
    全てのクラスからアクセス可能。「+」で表す。
  • protected
    自クラスまたは継承されたクラスからアクセス可能。「#」で表す。
  • private
    自クラスからのみアクセス可能。「-」で表す。

関係

クラス図における関係は基本的にはE-R図におけるリレーションシップと同じように考えることができ、線を引いて多重度を書き加えるといったことをします。ただし、クラス図の方がより詳細な書き方が可能なため、ここで見ていきます。

多重度

クラス図に限らず、UMLでは多重度を次のように表記します。

クラス間の関係

クラス間の関係性には様々な種類があり、以下のように表現します。

パッケージ図

パッケージ図は、パッケージを用いてクラスやパッケージなどの要素をグルーピングしたり、パッケージ間の依存関係を図表化したりするものです。パッケージを用いると要素をグルーピングし、階層化することができるため、大規模なプロジェクトで役に立つ図です。

パッケージ図はほとんど出題実績が見られないため、詳細な説明は省きます。

アクティビティ図

アクティビティ図はプロセスの流れを表す図でフローチャートに似ていますが、並行動作が表現できることに特色があります。

アクティビティ図には様々な図を描くことができますが、次の5種類が基本になります。

また、「利用者」「管理者」のように役割を区切るものをパーティションと呼びます。

フォーク、ジョインと呼ばれるノードを用いると、並行動作も書くことができます。

ユースケース図

ユースケースとは前述したとおり、システムを利用者がどのように使用するのか、システムと利用者のやり取りを利用者視点で見たものです。UMLのユースケース図はユースケースを記述するための代表的な方法です。

ユースケース図にはアクターと呼ばれる棒人間と機能などを表すユースケースとの関連を図示します。ユースケースはシステム境界で囲みシステム名をその上に表記することで、そのシステムの機能と利用者との関係を示すことができます。

ステートマシン図

ステートマシン図は状態遷移図とも言い、オブジェクトの状態やその遷移を表す図です。見た目はアクティビティ図と似ており、使用する図も共通しています。ただ、角の丸い長方形と矢印がアクティビティ図ではアクションとフローと呼ぶのに対し、ステートマシン図では状態と遷移です。アクティビティ図がプロセスや手順の流れを表すフローチャートであるのに対し、ステートマシン図ではオブジェクト(対象となるモノ)の状態の遷移を表す状態遷移図です。

シーケンス図

シーケンス図は振る舞い図の中の相互作用図に分類される図で、オブジェクト間のイベントの流れやメッセージのやり取りを表します。後述するコミュニケーション図と表現できる内容は同じですが、イベントの時系列や順序を重視したものとなっています。

コミュニケーション図

コミュニケーション図は振る舞い図の中の相互作用図に分類される図で、オブジェクト間のイベントの流れやメッセージのやり取りを表します。シーケンス図と表現できる内容は同じですが、イベントの順序などを表すのではなく、オブジェクトの全体像を表すのに向いた図です。オブジェクト間の関連を表すといった意味では、クラス図にも近いと言えます。

ユーザーストーリー

ソフトウェア要件を記述する方法としてユーザーストーリーがあることを理解する。
【用語例】 エピック,ユーザーストーリー,ストーリーポイント,プロダクトバックログ

ユーザーストーリーとは、利用者目線でソフトウェア要件を記述する方法です。アジャイル開発において使用されます。「~が~をすることで~をしたい」のように一文のテンプレートを用意して、それに沿って表現することが好ましいとされています。例として、次のようなものがあります。

  • サイトの利用者がキーワード検索を行うことで、目的のページに素早くアクセスできるようにしたい。
  • ログインしたユーザーがクレジットカードを登録することで決済が簡単に行えるようにしたい

似たものにユースケースがありますが、ユースケースは利用者とシステムとの関係と相互作用を分析するのが目的であって、利用者視点で「やりたいこと」が表現されるユーザーストーリとはやや異なります。

関連する用語として以下のものがあります。

  • エピック
    ユーザーストーリーを細分化して階層化した単位
  • プロダクトバックログ
    アジャイル開発において、開発に必要な工程などを優先順位を付けてリスト化したもの
  • ストーリーポイント
    アジャイル開発における見積もりの手法

その他の手法

その他,業務分析や要件定義に用いられる手法を理解する。
【用語例】 決定表(デシジョンテーブル),SysML,状態遷移図,状態遷移表

決定表(デシジョンテーブル)

決定表(Decision Tables:デシジョンテーブル)は条件とそれに対応する動作を組み合わせた表です。JIS X 0125:1986で規格化されています。次の図のように、条件と動作に対してケースを作成して表にします。

SysML

SysML(Systems Modeling Language)はオブジェクト指向によるシステム設計において使用されるモデリング言語です。計9種類の図表がからなり、振る舞い図・構造図・要求図の3分類に分かれます。また、UMLとの関係性から、UMLから流用されたもの・UMLを修正したもの・新たに追加したものの3パターンが存在します。

参考情報

@IT 開発現場のUIトラブルを解決!? 画面プロトタイプ入門:いまさら聞けないリッチクライアント技術(16)

ウォーターフォールとアジャイルとプロトタイプの違い図解

例とテンプレートで作るユーザー ストーリー

ストーリー、エピック、イニシアチブ

ストーリーポイントとは?6 つの簡単なステップでアジャイルで仕事量を見積もる方法

日本産業標準調査会 JIS検索

ゼロから学べる SysML入門 モデリング言語 SysMLを概観する

『情報処理技術者試験 2025年度版 All IN ONE パーフェクトマスター システムアーキテクト』TAC出版 2024

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