Relationship driven requirement analysis

Post on 15-Jun-2015

1.378 views 0 download

description

オープンコミュニティ「要求開発アライアンス」(http://www.openthology.org)の2009年7月定例会発表資料です。 Open Community "Requirement Development Alliance" 2009 July regular meeting of the presentation materials.

Transcript of Relationship driven requirement analysis

要件定義は要 義何をどう定義するのか?

「リレーションシップ駆動要件分析」は網羅的に整合性を保ちながら、システマティックに要件を分析する方法です 2009/07/17方法です。 2009/07/17

Relationship driven requirement analysis ⇒ RDRA(ラドラ)Relationship driven requirement analysis RDRA(ラドラ)

わたしはわたしは ㈱バリューソース 代表取締役 社長 代表取締役 社長 神崎 善司 zkanzaki@vsa.co.jp

普段は 要件定義のコンサルテーション 要件定義のコンサルテ ション オブジェクト指向やUMLのセミナー開催

要件定義との関係は 要件定義との関係は 20年ほど前からオブジェクト指向を中心にシステム開発全般のコン

サルティングを行う 10年ほど前から上流工程を中心としたコンサルティングを行う その間一貫してモデル中心で行う その経験を活かしてモデルを使った要件定義の手法をまとめる

2

その経験を活かしてモデルを使った要件定義の手法をまとめる

今日のプレゼンの位置づけ今日のプレゼンの位置づけ

上流工程問題の整

要件定義のための 具体的なの様々な

現象

問題の整理

のための戦略的な方向性

具体的な方策

方向性

3

システマティックに要件を定義するためにシステマティックに要件を定義するためにより混乱を少なく要件定義を行うためには……

ゴールを示し、そのための道筋を明らかにする。そして対象を視覚化する。そして対象を構造化、抽象化して議論を積み上げながら要件を形にする。

★視覚化し共有する★ゴールを明確にする

★議論を積 ★構造化 抽象化要件分析のフレ ムワ ク ★議論を積

み上げる★構造化、抽象化しながら分析する

要件分析のプロセス

フレームワーク

★顧客をリ ドする

プロセス

4

★顧客をリードする★方向性を合わせる

要件分析フレームワーク

要件定義の枠組み要件定義の枠組み

上流工程での混乱を減らすために要件定義の枠組みが必要

要件定義には何を定義すればいいのか要件定義には何を定義すればいいのか

要件

システム

機能

利害関係者

外部システム

システムを システ

定義書

もの

サービス

機能

機能

機能ユーザ

業務

システムを取り巻く環境

システム

データ

ユーザ

RDRAでは「要件定義の対象をシステムとシステムを取り巻く環境」と考える

6

要件定義では何が定義されないといけないのか要件定義では何が定義されないといけないのか

システム

利害関係者

外部シ ム システム

もの

機能

機能

外部システム

サービス

データ

機能ユーザ

業務

•このシステムの目的(価値)は?

システムとの接点は?

•どのような外部システムと関わるのか?

•どのような人に使われるのか?

•システムに必要な機能は?

•その時の入出力情報は?•システムとの接点は?

7

•その機能が使用するデータは?•システムに必要な機能は?

要件定義の構造を定義する要件定義の構造を定義する

システム利害関係者

外部システム

もの

サービス

機能

機能

機能サ ビス

データ

機能

ユーザ

システム価値

もの サービス利害関係者

要件定義の構造 ものユーザ

システム外部環境

システム

システム境界•システム価値

•システム外部環境

要件定義の構造

システム

機能デ タ

機能

システム外部環境

•システム境界

•システム

8

外部システム

データシステム

要件分析の枠組み

システム価値 価値

要件分析の枠組み1.【システムの価値】を捉える

•対象業務に関わる人を洗い出す

もの サービス

利害関係者

ユーザ

要求•対象業務に関わる人を洗い出す•関係する外部システムを洗い出す•要求を捉える

システム外部環境2.【システム外部環境】を捉える

•対象業務の流れを捉える•対象業務に関わる概念を明らかにする

システム外部環境

シス ム

システム境界

•対象業務に関わる概念を明らかにする•システムの利用シーンを明らかにする

3 【システム境界】を捉える

システム

機能

機能

外部システム

3.【システム境界】を捉える

•ユーザインターフェースを明らかにする•外部システムとのインターフェースを明らかにする

機能データ

外部システム らかにする

4.【システム】を定義する

•機能を明らかにする

9

機能を明らかにする•データを明らかにする•ドメインの構造を把握する

要件分析の枠組みにモデルを当ては要件分析の枠組みにモデルを当てはめる

システム価値からシステムの機能とデータを求める手段としてUMLを拡張したモデルを利用する

コンテキストモデルからシステム境界まで要求モデル人(アクター)人( )

要求要求

2.下記関係者の要求を

コンテキストモデルシス

要求要求

要求

把握する

1.対象業務に関わる人と外部システムを把握する

テム

対象業務に関わる人と外部シス

外部システム

対象業務に関わる人と外部システムを要件定義の起点とする

5.外部システムとのイベントを4.業務の中でシステムが

関わる部分を把握する

3.業務を組み立てる5.外部システムとのイベントを

捉える

6.外部システムとのプロトコルを整理

業務モデル イベントモデル

プロトコルを整理

11

業務モデル イベントモデル

プロトコルモデル同じように利用シーンからユースケースを導き出す

ユースケースから機能、データまで 画面・ユースケースモデル

ユ スケ スモデル

イベントモデル

ユースケースモデル

7.ユースケースに関わるユーザーインターフェーズを洗い出す

プロトコルモデル

システムを洗い出す

8.ユースケースを実現する機能を洗い出す

9.アクションを機能に対応付ける する機能を洗い出す

画面帳表モデル機能モデル

11.機能とデータを付き合わせる

画面帳表モデル機能モデル機能モデル

10.データを洗い出す

機能複合 デル

12

データモデル

システム境界

機能複合モデル

関係ダイアグラム網羅性と整合性を確認するシステム価値 システム外部環境 システム境界 システム

業務画面・帳表 データ

業務&UCUC&画面

コンテキスト機能複合モデル

UC&画面

ユースケース

概念

ドメイン

UC&機能

プロトコル

要求

利用シーン&UC

利用シーンプロトコル

機能

13

イベントUC:ユーケース

要件の精度を高める要件の精度を高める

ダイアグラムの検証ポイント

問い 検証内容

Q101要求の元となる関係者にはどのような人がいるか

コンテ

□背景要件定義を網羅的に進めるためにその出発点となる関係者を洗い出す必要がある□確認ポイント・全ての関係者がアクターとして洗い出されているかか テ

キスト

全ての関係者がアクタ として洗い出されているか・システムに関わらないが業務に関わるアクターも含まれているか・アクター同士の関係が示されているか・アクターは役割の名前がついているか・アクターの責務が明確になっているか

Q102 □背景Q102どのような外部システムと連携するのか

コンテキスト

□背景外部システムとの連携もシステム化範囲を決めるための入り口になり、外部インターフェースの策定の出発点になる□確認ポイント・外部システムはもれなく洗い出されているか・今後の調査の候補も洗い出されているか・外部システムの役割が明確になっているか

問い ダイアグラム 懸念事項

整合性をあわせるポイント外部シ テ の役割 明確 な て る

Q103どのような機能要求があるか、それは誰(ロール)が要求しているのか

要求モ

□背景システムが提供する機能として押さえておくべき事、方向性を要求、要件として示し、以後の各モデル策定の指針にする□確認ポイント・検証可能な表現で記述されているか

問い ダイアグラム 懸念事項

利用シーンには必ずユースケースが結びついているか

利用シーン 利用シーンに結びつくユースケースがない場合はユースケースが抜けている可能性がある。

利用シーンには必ずアクターが結びついている

利用シーン 利用シーンに結びつくアクターが無い場合は必要なアクターが抜けている可能性があるモデル

検証可能な表現で記述されているか・要求の粒度は揃っているか・要求のもれだぶりはないか・HowではなくWhatとして記述されているか Howは非機能要求として洗い出されているか・各ロールに応じた要求が洗い出されているか

結びついている

ユースケースには必ずアクティビティが結びついているか

ユースケース ユースケースに関わるアクティビティがない場合は必要なアクティビティが抜けている可能性がある。

ユースケースには必ず利用シーンが結びついているか

ユースケース ユースケースに関わる利用シーンがない場合は必要な利用シーンが抜けている可能性がある。

14

シ ンが結びついているか

ユースケースに結びついていない画面は無いか

ユースケース ユースケースは画面か帳表、もしくは機能、データのどれかと結びついているはず。

ツールの支援ツ ルの支援

要件定義を行うために必要なツールや、要件を整理するたのテンプレート、並びに作成して要件定義のチェックツールを紹

介します。介します。

RDRAテンプレートRDRAテンプレート

作成する各ダイアグラム

RDRAで作成する一連のモデルをあらかじめパッケージと

して分類

各ダイアグラムへのメニュー

して分類

レビュー用のダイアグラムも用意

16

アグラムも用意

RDRAプロファイルRDRAプロファイル

RDRA専用のツールバー

RDRA専用の関係づけ

クイックリンク

17

RDRAChekerプログラムRDRAChekerプログラム

EAで作成したモデルの関係をチェックする

厳密なチェックではなくあくまで関係性を確認しモデルを見直す

EAを使うことで要件定義そのものを情報として扱える

18

要件分析プロセス

要件定義をどのように進めるのか要件定義をどのように進めるのか

スケジュール管理と言えばガントチャート

でも上流工程ではガントチャートはうまく機能しないことが多い

混乱する上流工程混乱する上流工程

あなたならどう答えますか? なぜ上流工程のスケジュール作成は難しいのか

なぜスケジュール通りに進まないのか

そもそも上流工程のスケジュール管理をどのように行えばいいのか

そのヒントをガントチャートから考えてみましょう スケジュール管理と言えばガントチャート

ガントチャートはどのような前提によって組み立てられるのか

20

ガントチャートがイメージさせるものガントチャートがイメージさせるもの ガントチャートを作成する(利用する)ときには以下のような考え方が背景にある

タスク間には依存関係があり依存されているものから先に手をつけるタ ク間 は依存関係があり依存されて るものから先 手を ける

タスクにはそれを行うためのスキルが必要である

タスクの平行性を高めると期間を短縮できる

タスクを実現すれば想定している成果物を作成出来る

進捗が遅れていた場合にはその対策を行う

タスク間の依存関係に基づいてタスクを結びつけると完了日が明確になる

担当者は割り当てられたタスクだけをこなせばいい

全てのタスクは洗い出せる(出来ない時は猶予期間を用意する) 全てのタスクは洗い出せる(出来ない時は猶予期間を用意する)

タスクは全て計画可能であり計画通りに実現可能であると考える

ガントチャートがうまく機能するための条件 ガントチャ トがうまく機能するための条件 タスクへのブレークダウンが適切にできる

ほぼ予定された時間内にタスクが終わる

上記の条件が満たされるとき ガントチャートはとても良くできた管理法である

しかし、上記の条件が満たされないときはガントチャートはうまく機能しない

21

、 記 条件 満 されな き ン チャ うまく機能 な

じゃあどうするの? ⇒ 時間を軸足にするじゃあどうするの? ⇒ 時間を軸足にする

変わらない軸として時間を用いる定期間をタイムボ ク として扱う 一定期間をタイムボックスとして扱う

サイクルを重視する 作業にリズムを持たせて進行をスムーズにする 作業にリズムを持たせて進行をスム ズにする

サイクルの中で作業方法を見直す

ラフに決め 直近の作業を柔軟に決めていく ラフに決め 直近の作業を柔軟に決めていく そもそもパラメータ(人とタスク)の変化が大きいところでは、成果物

の作成量を最大にするのではなく、変化に適切に対応することを目作成量を最大 する な 、変 適切 対 する を目標とする方が効果的である

つまり 不正確なガントチャートに縛られて不適切な作業をするよりは 先々まで 不正確なガントチャートに縛られて不適切な作業をするよりは、先々までの詳細なスケジュールが見通せないけども、適切に軌道修正しながら進める方が有効であると考える

22

プロジェクトのゴールについてプロジェクトのゴールについて

その時点で明確になっているゴールに向かって軌道修正しながら進む

Goal

時間の経過と共にゴールが絞り込まれて明確になる

当初のゴール

に向かって軌道修正しながら進む

機機能

修正されたゴール

時間軸イテレーション

軌道修正の単位

イテレーション後のフィードバックがより適切なゴールを導き出す

23

マイルストーンは状態として管理するマイルストーンは状態として管理する

マイルストーン候補

ゴールを実現するためには、どのような状態になっていないといけないのか

フェーズ マイルストーン

状況把握 自己理解度を測る

現状分析

システム化への組立

コア把握と方向性の確立

網羅性の確保

整合性確保

状態

状態

状態

項目レベルで整合性確保

要件定義のゴールを明確にする

要件定義チーム

状態

後の状態を実現するためには、どのような状態になっていないといけないのか

24

繰り返しをどのように管理するか繰り返しをどのように管理するか 複数視点に対応するスケジュール管理

階層化した管理項目階層化した管理項目 人 管理者 リーダー 担当者

時間 マイルストーン イテレーション

管理項目 状態 成果 タスク

状況に応じて組み合わせる 状況に応じて組み合わせる

マイルストーン

時間:

人:

評価可能

イテレーション

マイルストーン管理者(関係者)

管理項目:評価可能な状態

評価可能な成果

リーダー

タスク

担当者

25イテレーション

まとめまとめ 要件分析フレームワーク

要件定義の枠組みを意識して要件を組み立てる 要件定義の枠組みを意識して要件を組み立てる システム価値、システム外部環境、システム境界、システム

上記の枠組みには各々視点があり、その視点に適したモデルを使って要件を定義する要件を定義する

要件定義の各情報はつながっており、そのつながりを利用することでシステマティックに精度の高い要件定義が可能となる

それを何度も繰り返して要件を洗練化するそれを何度も繰り返して要件を洗練化する

要件分析プロセス 「タスク」が安定しないのであれば 安定している「時」をベースに管理 「タスク」が安定しないのであれば、安定している「時」をベースに管理

し、状況の変化に対応する方が有利である タスク、時間、人をそれぞれ階層化したタイムボックスとして管理する タイムボックス毎に軌道修正しながらゴールを明らかにし 納期に納め タイムボックス毎に軌道修正しながらゴールを明らかにし、納期に納め

る 要件分析フレームワークの一連のモデルをマイルストーン単位に作成、

洗練化を繰り返し精度を上げる

26

洗練化を繰り返し精度を上げる

情報源情報源

リレーションシップ駆動要件分析の情報リレーションシップ駆動要件分析の情報

http://k-method.jp RDRA用テンプレート

RDRA用プロファイル書籍書籍

<リレーションシップ駆動要件分析の情報サイト>UMLツールのEnterpriseArchtectのテンプレートやプロファイルがダウンロード出来ます

28

要件定義(RDRA)セミナー要件定義(RDRA)セミナー 要件定義入門セミナー

目的: 要件定義の基本的な考え方を習得する

内容 要件定義の基本的な考え方やプロセスを理解し、自分のプロジェクトに応

用できる知識を身につけます。用 識を身 す。

実施形態 オンサイト

日数1日 6時間 1日 6時間

要件定義実践セミナー 目的 目的

UMLを使った要件定義を演習を通して実際に作成する

内容 実際の課題にもとづいて要件定義を行います。グループでUMLのツールを

使い自分たちで考えたことを形にしていきます使い自分たちで考えたことを形にしていきます。

実施形態 オンサイト

日数

29

2日 12時間