Relationship driven requirement analysis

1,668 views
1,552 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,668
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Relationship driven requirement analysis

  1. 1. 要件定義は 要 義 何をどう定義するのか? 「リレーションシップ駆動要件分析」は網羅的に整合 性を保ちながら、システマティックに要件を分析する 方法です。 方法です 2009/07/17 Relationship driven requirement analysis ⇒ RDRA(ラドラ)
  2. 2. わたしは  ㈱バリューソース  代表取締役 社長  神崎 善司  zkanzaki@vsa.co.jp  普段は  要件定義のコンサルテ ション 要件定義のコンサルテーション  オブジェクト指向やUMLのセミナー開催  要件定義との関係は  20年ほど前からオブジェクト指向を中心にシステム開発全般のコン サルティングを行う  10年ほど前から上流工程を中心としたコンサルティングを行う  その間一貫してモデル中心で行う  その経験を活かしてモデルを使った要件定義の手法をまとめる 2
  3. 3. 今日のプレゼンの位置づけ 要件定義 上流工程 問題の整 のための 具体的な の様々な 理 戦略的な 方策 現象 方向性 3
  4. 4. システマティックに要件を定義するために より混乱を少なく要件定義を行うためには…… ゴールを示し、そのための道筋を明らかにする。そして対象を視覚化する。 そして対象を構造化、抽象化して議論を積み上げながら要件を形にする。 ★ゴールを明確にする ★視覚化し共有する 要件分析の フレ ムワ ク フレームワーク ★議論を積 ★構造化、抽象化 ★構造化 抽象化 み上げる しながら分析する 要件分析の プロセス ★顧客をリードする ★顧客をリ ドする ★方向性を合わせる 4
  5. 5. 要件分析フレームワーク 要件定義の枠組み 上流工程での混乱を減らすために要件定義の枠組みが必要
  6. 6. 要件定義には何を定義すればいいのか 要件 利害関係者 定義書 外部システム システム もの システムを システ 機能 機能 サービス 取り巻く環境 業務 ユーザ ム 機能 データ RDRAでは「要件定義の対象をシステムとシス テムを取り巻く環境」と考える 6
  7. 7. 要件定義では何が定義されないといけないのか 利害関係者 外部システム 外部シ ム システム 機能 もの 機能 サービス 業務 機能 ユーザ データ •このシステムの目的(価値)は? •どのような人に使われるのか? •どのような外部システムと関わるのか? システムとの接点は? •システムとの接点は? •その時の入出力情報は? •システムに必要な機能は? •その機能が使用するデータは? 7
  8. 8. 要件定義の構造を定義する 利害関係者 外部システム システム 機能 もの 機能 サービス サ ビス 機能 ユーザ データ システム価値 利害関係者 要件定義の構造 ユーザ もの サービス •システム価値 システム外部環境 システム境界 システム外部環境 •システム外部環境 システム •システム境界 機能 システム •システム 機能 データ デ タ 外部システム 8
  9. 9. 要件分析の枠組み システム価値 1.【システムの価値】を捉える 価値 要求 利害関係者 •対象業務に関わる人を洗い出す サービス •関係する外部システムを洗い出す もの ユーザ •要求を捉える システム外部環境 2.【システム外部環境】を捉える システム境界 •対象業務の流れを捉える システム シス ム •対象業務に関わる概念を明らかにする •システムの利用シーンを明らかにする 機能 機能 3.【システム境界】を捉える 3 【システム境界】を捉える データ •ユーザインターフェースを明らかにする •外部システムとのインターフェースを明 外部システム らかにする 4.【システム】を定義する 機能を明らかにする •機能を明らかにする •データを明らかにする •ドメインの構造を把握する 9
  10. 10. 要件分析の枠組みにモデルを当ては める システム価値からシステムの機能とデータを求める手段として UMLを拡張したモデルを利用する
  11. 11. コンテキストモデルからシステム境界まで 人( ) 人(アクター) 要求モデル 要求 2.下記関係者の要求を 要求 把握する 要求 シス コンテキストモデル テム 1.対象業務に関わる人と外部 システムを把握する 対象業務に関わる人と外部シス 外部システム テムを要件定義の起点とする 5.外部システムとのイベントを 4.業務の中でシステムが 3.業務を組み立てる 捉える 関わる部分を把握する 6.外部システムとの プロトコルを整理 業務モデル イベントモデル 同じように利用シーンから 11 ユースケースを導き出す プロトコルモデル
  12. 12. 画面・ ユースケースから機能、データまで ユースケースモデル ユースケースモデル ユ スケ スモデル イベントモデル 7.ユースケースに関わる プロトコルモデル ユーザーインターフェーズ を洗い出す システム 9.アクションを機能に 8.ユースケースを実現 対応付ける する機能を洗い出す 11.機能とデータ を付き合わせる 機能モデル 画面帳表モデル 機能モデル 10.データを洗い出す データモデル 機能複合モデル 機能複合 デル 12 システム境界
  13. 13. 網羅性と整合性を確認する 関係ダイアグラム システム価値 システム外部環境 システム境界 システム 画面・帳表 データ 業務 業務&UC UC&画面 機能複合 コンテキスト モデル 概念 ユースケース UC&機能 ドメイン 要求 利用シーン &UC プロトコル 利用シーン 機能 UC:ユーケース イベント 13
  14. 14. 要件の精度を高める ダイアグラムの検証ポイント 問い 検証内容 Q101 □背景 要求の元となる関係者 コ 要件定義を網羅的に進めるためにその出発点となる関係者を洗い出す必要がある にはどのような人がいる ンテ □確認ポイント か ・全ての関係者がアクターとして洗い出されているか 全ての関係者がアクタ として洗い出されているか キ ・システムに関わらないが業務に関わるアクターも含まれているか ス ・アクター同士の関係が示されているか ト ・アクターは役割の名前がついているか ・アクターの責務が明確になっているか Q102 コ □背景 ン どのような外部システム 外部システムとの連携もシステム化範囲を決めるための入り口になり、外部インターフェースの策定の出発点になる と連携するのか テ □確認ポイント キ 整合性をあわせるポイント ス ・外部システムはもれなく洗い出されているか ・今後の調査の候補も洗い出されているか ト ・外部システムの役割が明確になっているか 外部シ テ の役割 明確 な て る 問い ダイアグラム 懸念事項 Q103 □背景 利用シーンには必ずユース 利用シーン 利用シーンに結びつくユースケースがない場合はユースケースが抜けている可能性がある。 どのような機能要求があ 要 システムが提供する機能として押さえておくべき事、方向性を要求、要件として示し、以後の各モデル策定の指針にす ケースが結びついているか るか、それは誰(ロール) 求 る が要求しているのか 利用シーンには必ずアクターがモ □確認ポイント 利用シーン 利用シーンに結びつくアクターが無い場合は必要なアクターが抜けている可能性がある 結びついている ・検証可能な表現で記述されているか 検証可能な表現で記述されているか デ ・要求の粒度は揃っているか ユースケースには必ずアクティ ル ユースケース ・要求のもれだぶりはないか ユースケースに関わるアクティビティがない場合は必要なアクティビティが抜けている可能性があ ビティが結びついているか る。 ・HowではなくWhatとして記述されているか Howは非機能要求として洗い出されているか ユースケースには必ず利用 ・各ロールに応じた要求が洗い出されているか ユースケース ユースケースに関わる利用シーンがない場合は必要な利用シーンが抜けている可能性がある。 シ ンが結びついているか シーンが結びついているか ユースケースに結びついていな ユースケース ユースケースは画面か帳表、もしくは機能、データのどれかと結びついているはず。 い画面は無いか 14
  15. 15. ツ ルの支援 ツールの支援 要件定義を行うために必要なツールや、要件を整理するたの テンプレート、並びに作成して要件定義のチェックツールを紹 介します。
  16. 16. RDRAテンプレート 各ダイアグラム RDRAで作成する一 作成する へのメニュー 連のモデルをあら かじめパッケージと して分類 レビュー用のダイ アグラムも用意 16
  17. 17. RDRAプロファイル RDRA専用の ツールバー RDRA専用 の関係づけ クイックリンク 17
  18. 18. RDRAChekerプログラム  EAで作成したモデルの関係をチェックする  厳密なチェックではなくあくまで関係性を確認しモデルを見直す EAを使うことで要件定義そのものを情報として扱える 18
  19. 19. 要件分析プロセス 要件定義をどのように進めるのか スケジュール管理と言えばガントチャート でも上流工程ではガントチャートはうまく機能しないことが多い
  20. 20. 混乱する上流工程  あなたならどう答えますか?  なぜ上流工程のスケジュール作成は難しいのか  なぜスケジュール通りに進まないのか  そもそも上流工程のスケジュール管理をどのように行えばい いのか  そのヒントをガントチャートから考えてみましょう  スケジュール管理と言えばガントチャート  ガントチャートはどのような前提によって組み立てられるのか 20
  21. 21. ガントチャートがイメージさせるもの  ガントチャートを作成する(利用する)ときには以下のような考え方が背景にある  タ ク間 は依存関係があり依存されて るものから先 手を ける タスク間には依存関係があり依存されているものから先に手をつける  タスクにはそれを行うためのスキルが必要である  タスクの平行性を高めると期間を短縮できる  タスクを実現すれば想定している成果物を作成出来る  進捗が遅れていた場合にはその対策を行う  タスク間の依存関係に基づいてタスクを結びつけると完了日が明確になる  担当者は割り当てられたタスクだけをこなせばいい  全てのタスクは洗い出せる(出来ない時は猶予期間を用意する)  タスクは全て計画可能であり計画通りに実現可能であると考える  ガントチャ トがうまく機能するための条件 ガントチャートがうまく機能するための条件  タスクへのブレークダウンが適切にできる  ほぼ予定された時間内にタスクが終わる  上記の条件が満たされるとき ガントチャートはとても良くできた管理法である  しかし、上記の条件が満たされないときはガントチャートはうまく機能しない 、 記 条件 満 されな き ン チャ うまく機能 な 21
  22. 22. じゃあどうするの? ⇒ 時間を軸足にする  変わらない軸として時間を用いる  一定期間をタイムボックスとして扱う 定期間をタイムボ ク として扱う  サイクルを重視する  作業にリズムを持たせて進行をスム ズにする 作業にリズムを持たせて進行をスムーズにする  サイクルの中で作業方法を見直す  ラフに決め 直近の作業を柔軟に決めていく  そもそもパラメータ(人とタスク)の変化が大きいところでは、成果物 の作成量を最大にするのではなく、変化に適切に対応することを目 作成量を最大 する な 、変 適切 対 する を目 標とする方が効果的である  つまり  不正確なガントチャートに縛られて不適切な作業をするよりは、先々まで 不正確なガントチャートに縛られて不適切な作業をするよりは 先々まで の詳細なスケジュールが見通せないけども、適切に軌道修正しながら進 める方が有効であると考える 22
  23. 23. プロジェクトのゴールについて 当初のゴール 時間の経過と共に ゴールが絞り込ま その時点で明確になっているゴール Goal れて明確になる に向かって軌道修正しながら進む 機 能 修正されたゴール イテレーション 時間軸 軌道修正の単位 イテレーション後のフィードバックが より適切なゴールを導き出す 23
  24. 24. マイルストーンは状態として管理する マイルストーン候補 候 フェーズ マイルストーン ゴールを実現するためには、ど 状況把握 自己理解度を測る のような状態になっていないと 現状分析 いけないのか システム化 コア把握と方向性の確立 への組立 網羅性の確保 整合性確保 項目レベルで整合性確保 状態 状態 状態 状態 要件定義のゴール 要件定義 チーム を明確にする 後の状態を実現するためには、 どのような状態になっていない といけないのか 24
  25. 25. 繰り返しをどのように管理するか  複数視点に対応するスケジュール管理  階層化した管理項目  人 管理者 リーダー 担当者  時間 マイルストーン イテレーション  管理項目 状態 成果 タスク  状況に応じて組み合わせる 時間: 人: マイルストーン 管理者 マイルストーン (関係者) イテレーション 管理項目: 評価可能 な状態 リーダー 評価可能 な成果 タスク 担当者 イテレーション 25
  26. 26. まとめ  要件分析フレームワーク  要件定義の枠組みを意識して要件を組み立てる  システム価値、システム外部環境、システム境界、システム  上記の枠組みには各々視点があり、その視点に適したモデルを使って 要件を定義する  要件定義の各情報はつながっており、そのつながりを利用することで システマティックに精度の高い要件定義が可能となる  それを何度も繰り返して要件を洗練化する  要件分析プロセス  「タスク」が安定しないのであれば、安定している「時」をベースに管理 「タスク」が安定しないのであれば 安定している「時」をベースに管理 し、状況の変化に対応する方が有利である  タスク、時間、人をそれぞれ階層化したタイムボックスとして管理する  タイムボックス毎に軌道修正しながらゴールを明らかにし、納期に納め タイムボックス毎に軌道修正しながらゴールを明らかにし 納期に納め る  要件分析フレームワークの一連のモデルをマイルストーン単位に作成、 洗練化を繰り返し精度を上げる 26
  27. 27. 情報源
  28. 28. リレーションシップ駆動要件分析の情報 http://k-method.jp RDRA用テンプレート RDRA用プロファイル 書籍 <リレーションシップ駆動要件分析の情報サイト> UMLツールのEnterpriseArchtectのテンプレート やプロファイルがダウンロード出来ます 28
  29. 29. 要件定義(RDRA)セミナー  要件定義入門セミナー  目的:  要件定義の基本的な考え方を習得する  内容  要件定義の基本的な考え方やプロセスを理解し、自分のプロジェクトに応 用できる知識を身につけます。 用 識を身 す。  実施形態  オンサイト  日数  1日 6時間  要件定義実践セミナー  目的  UMLを使った要件定義を演習を通して実際に作成する  内容  実際の課題にもとづいて要件定義を行います。グループでUMLのツールを 使い自分たちで考えたことを形にしていきます。 使い自分たちで考えたことを形にしていきます  実施形態  オンサイト  日数  2日 12時間 29

×