RDRA2.0ハンドブック
話題に聞くことが多かったので読んだ。Kindle Unlimitedにあったので助かった。
RDRAを実際に取り入れるかは別として、要件定義から設計工程においてためになることが多く書かれていて楽しかった。
例えば、RDRAではダイアログを書いていくことが主作業になるのだけど、図示すると要求からシステム化の根拠などの理解が視覚的にも深まって良い。
また、ダイアログを構成するアイコンの依存に沿うことで、ナゼこういう問題が起こるのか?という原因の特定がしやすくなるのかもしれないと感じた。
一通り読んだ感じ、具体的なRDRAの雰囲気がわかる5章と7章がかなり面白かった。
以下は読む中でメモしていったもの。
1: RDRA2.0とは
RDRA2.0策定にあたり、ダイアグラムのシンプル化、業務フロー、利用シーンを洗い出す方法の明示、ビジネスルールの記述方法の明示を目標にしたとのこと。
2: 要件定義では何を定義するのか
要件定義はシステムの方向性を決め、具体的な仕様を決めるための材料を提供する必要がある。
3: 要件の構造
要件の構造を4つの視点毎に明確にする。
- 1.システム価値レイヤー
システムが実現するべき価値を捉えるレイヤー。価値の源泉はアクター。
- 対象業務に関わる人を洗い出す...アクタ
- 関係する外部のシステムを洗い出す...外部システム
- システム化への要求を捉える...要求
- 2.システム外部環境レイヤー
システムがどのように使われるのかを表すレイヤー。
- システム化対象の業務を捉える...業務
- 業務を実現する価値の単位を明らかにする...ビジネスユースケース
- 価値を実現する業務の流れを捉える...業務フロー
- 3.システム境界レイヤー
システムに関わる登場人物とシステムの接点を明らかにする。
- システムを使った作業単位を明らかにする...ユースケース
- ユーザーインターフェースを明らかにする...画面
- 外部システムとのインターフェースを明らかにする...イベント
- 4.システムレイヤー
システム化したい情報と状態を明示する。システム化する情報とその情報がとり得る状態でシステムを明示する。
- 1.システムが扱う情報(概念)を明らかにする...情報
- 2.情報が取りうる状態を明らかにする...状態
※画像貼れないと思うので、雰囲気で。
4つのレイヤーには依存関係があり、依存関係を使ってアイコンを順次定義していく。この依存を使えば、素早く要件定義を行うことができる。 アイコンのつながりがレイヤーをつなぐ。「業務フロー <= ナゼこのユースケースなのか 」といった具合に、アイコン同士の繋がりは右から左への向きさきがそのまま「Why」になる。
4: ダイアグラム構造
ダイアグラムを作成することがRDRAでの要件定義になる。
このダイアグラムを作ることで、最終的にシステムを俯瞰して観ることができるというのがすごく良い。
ダイアグラムの読み方になれると、他の人が書いたダイアグラムも読めて視覚的にも理解が深まる。
ダイアグラム間(あるいはレイヤー間)でどことどこが依存しているのか(もしくは根拠)もわかりやすそう。
5: ダイアグラムの詳細
ダイアグラムの種類毎に、書くべきこと、書かないことを定義している。
図の形自体はプロジェクトによって利用するツールが違うので、RDRAでは定義していない。
ダイアグラムは下記の種類がある。
- システムコンテキスト図
- 要求モデル図
- ビジネスコンテキスト図
- ビジネスユースケース図
- 業務フロー図
- 利用シーンズ
- バリエーション・条件図
- ユースケース複合図
- ユースケース複合図 業務フロー、利用シーン付き
- 情報モデル図
- 状態モデル図
6: ビジネスルール
RDRA2.0で追加されたもの。「本の貸し出し期限」などが該当。
ダイアログ上の参照部分に条件アイコンとして記述する。
記述する際の表現は、「名前付けられた式や規約」「組み合わせによる条件」などで表現方法が変わる。
ビジネスルールの複雑度は、情報の量と構造、状態の数と遷移の量、条件の量で決まる。
7: 精度を高める
RDRAでは、概算見積もりを出すために素早く定義することも、精度高く定義することもできるとのこと。
アクターから情報まで全てのアイコンを繋げることで、トレーサビリティを実現し、精度を高くすることができる。
システムレイヤーからシステム価値への方向で依存しており、当該依存関係を検証することで精度を上げる。
アイコンの繋がりを説明できるということは、整合性が維持できていること。
また、RDRAの目指す網羅性は、運用がまわるのに必要なユースケースが洗い出されていること。網羅性は整合性が担保された状態で初めて検証することが可能。
8 : RDRA活用のために
RDRAが活用できるパート
- ビジネス化範囲の合意
- ビジネスルールの整理
- システムの整合性担保
RDRAを活かす方法
- 議論の土台を作る
- RDRAモデルをコミュニケーションツールにする
- 開発後も維持し保守開発に役立てる
RDRAはツールを使って初めて効果がでる。
9 : あとがき
割愛
10 : サンプル
サンプル図がたくさんあって参考になる。