SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

リレーションシップ駆動要件分析による実践的な要件定義手法

構造に沿って要件をUMLで具体的に定義する

リレーションシップ駆動要件分析による実践的な要件定義手法(2)

システム外部環境

 この視点はシステムを取り巻く環境を明らかにする視点です。そのために以下の質問に答えられるようにします。

  • システムはどのような環境(状況)で使われるのか?
  • そこで使われる概念にはどのようなものがあるか?

 環境を表す方法が2種類あります。業務の流れを捉える方法システムを利用する場面を捉える方法です。

 業務の流れは業務フローモデルを使って表現し、一連の作業の流れとして無理なく効率的な作業の流れを組み立てます。UMLのアクティビティ図を使いレーンにアクターを割り当てることで、作業とアクターの関係を整理することができます。

ポイント:一連の業務の結果として提供する価値は何か?

 ツールやユーティリティのような場合は業務の流れが存在しないので、利用シーンモデルでシステムを利用するメリットをシナリオとして表現します。利用シーンも同じくアクターに結びつけて洗い出します。アクターの責務や課題をシステムがどのように解決するかを伝えられます。

ポイント:誰がどの場面でシステムを使うと何がうれしいのか?

 システムを取り巻く環境には必ず何かしらの概念があります。ビジネス上のルールや対象を表す言葉など、それぞれ固有の意味を持ちます。その意味を明らかにするために概念モデルを定義します。概念モデルが難しい場合は用語集として定義します。

図3 システム外部環境
図3 システム外部環境

システム境界

 システム境界はシステムとの接点を表し、人と外部システムの2つの側面を扱います。この視点では以下の質問に答えます。

  • 人がシステムとどのように関わるのか?
  • 外部のシステムとこのシステムはどのように関わるのか?

 システムとの関わりは人とシステム同士の2種類に分かれます。そして関わり方を表現するために、タイミングと受け渡される入出力情報の2つで表現します。

 人に関わる部分はユースケースモデルと画面・帳票モデルで表し、外部システムに関わる部分はイベントモデルとプロトコルモデルで表現します。

 人がシステムに関わるタイミングは業務フロー、ユースケースのつながりから理解することができ(注1)、入出力情報は画面・帳票モデルで表します。業務フローから画面までをつなげることで人がシステムに接する様子を表現します。

注1

 より厳密に定義する場合はUMLのステートマシンを使い状態の変化として人の接点を整理します。

ポイント:人はどのような状況で関わりその時の入出力情報は何か?

 外部システムとの接点はイベントモデルとプロトコルモデルで表現します。システム同士の接続になるので厳密なルール化が必要になります。プロトコルモデルはUMLのステートマシンを使って表現することで厳密なタイミングを表現できます。システムとの接点をイベントとして表現し、タイミングは外部システムと当該システムとの状態の変化として扱います。イベントが状態の遷移を引き起こすと考えることでタイミングが表現できます。

ポイント:外部システムはどのようなタイミングで関わりその時の入出力情報は何か?
図4 システム境界
図4 システム境界

システム

 システムはシステム境界を実現するための機能モデルとデータモデルで表現します。この視点では以下の質問に答えられるようにします。

  • システムが提供する機能は何か?
  • そのために必要なデータは何か?

 機能はユースケースとイベントを実現するために必要な機能を表し、データは機能に必要なデータを表します。しかし、機能からデータを導き出すのではなく通常のデータ分析と同じくデータは機能とは独立してシステムに必要な情報として洗い出します。

 機能は直接プログラムとつながるものではなく「このシステムの機能はXXX、XXX、XXXです」と説明して意味が分かる概念的な存在です。

 データモデルはER図で言うところの論理設計にあたるもので、システム上必要な情報は何かということを明らかにするものです。プログラムの仕組みとして必要な情報(フラグなど)を含めてはいけません。同様にテーブル設計をしてはいけません。

ポイント:アクターと外部システムから機能、データまですべてつなげる
図5 システム
図5 システム

次のページ
情報をつなげることの必要性

この記事は参考になりましたか?

リレーションシップ駆動要件分析による実践的な要件定義手法連載記事一覧

もっと読む

この記事の著者

神崎 善司(カンザキ ゼンジ)

(株)バリューソース代表大手SIerにおいて大小10システム以上のプロジェクトリーダを勤め、20年ほど前に独立。2002年から5年間(株)豆蔵での社員も兼任しながら要件定義などの上流工程のコンサルティングを行う。2008年に要件定義手法「リレーションシップ駆動要件分析(RDRA)」を開発し現在はその...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5689 2011/01/24 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー