表形式のRDRA定義

従来のダイアグラム形式から表形式でモデルを表現し、素早く精度の高いシステムの可視化が可能になります

2.RDRA定義_V0.98

RDRA定義用ファイル Google Spreadsheet

RDRAを定義するためのGoogle Spreadsheet

左記ファイルの右上のアイコンをクリックしGoogle Spreadsheetを表示、「ファイル/コピーの作成」を実行しGoogle Driveに保存すると、編集可能になります

表形式でダイアグラムを再現

表形式RDRA定義はダイアグラム形式より自由度は減りますが素早く定義できます

複数のダイアグラムを以下のシートで実現します

表形式で構造化する

ダイアグラム方式はアイコン間の関連を直接表現することができますが、表形式では関連を同じ行に並べることで表現します。表形式は関連付けに制約がありますが、配置を気にする必要がない分定義に集中できます

ユニークに管理するモデル毎にシートを分け、シート間で名前によって関連付けます

行とシート間で関連を表す

シート間の関係を以下に示します

上記を繰り返し徐々に精度を上げていきます

シートごとの定義

アクターと外部システムを明らかにする 

最初にシステムに関わる人(役割)をアクターとして洗い出し、価値につながる外部システムを洗い出します。アクターが思いつかない場合はシステムに関わる組織をアクターとみなしてもよいです(後で変更する可能性あり)

価値につながる外部システムとは、顧客のシステムなどを指します

まずはざっくりとスコープを決めるためにアクターと外部システムを作成します

業務とBUCを洗い出す 

システム対象の業務を洗い出し、その中で業務フローの単位をBUC(ビジネスユースケース)として洗い出します

同じ業務でも関わるアクター、外部システムが異なると仕事の流れが変わるので、業務フローが変わりBUCが分かれます(例えば販売業務でもB2CとB2Bが異なるのはアクター、外部システムが異なるからです)

業務が不明な場合は組織(アクター)が行うことに名前を付けて一旦業務(後で見直す)とし、関わるアクターと外部システムの組合せから一旦BUCを洗い出します

情報と状態を洗い出す 

システム化対象の業務が見えてきたので、ビジネスで扱う情報と状態を洗い出し、システムで管理すべきことを把握します

情報と状態はID単位に洗い出します。IDとは請求書番号や受注番号などビジネスで管理するためのキーとなるものを指します。その情報の変化を状態として扱い、管理したいことを明らかにします

情報と状態シートのAカラムは各々を分類するコンテキストを記述し、両者のコンテキストの名前を合わせ、関連する情報と状態を同じコンテキストにまとめます。

アクティビティ、UC、

アクター、外部システムを洗い出

業務、BUC、情報、状態が把握できると、システム化のスコープが明らかになります。ここからは業務と情報をつなぐための組立を行っていきます。そのためにBUCで価値を届けるステップをアクティビティとして定義し、アクティビティでシステムを使う場合は同じ行のUC列にUC名を「XXXをYYYする」として洗い出します

アクティビティ、UCに関わるアクター、外部システムを記述しBUCを駆動する対象を明らかにします。この過程で様々な気づきがあるので、業務、BUCの見直しを行いながら精度を上げていきます

表形式でのRDRA定義の場合は複雑なフローを想定しておらず、E列に「↓」を記述することで上から下に流れるフローを表現する。C列とE列に同じラベルを付けることで、簡単な分岐を表現できます

UCに情報/画面/イベントをつなげる 

システムが行うことをUCに入出力と情報をつなげて表現します

H列、J列のアクター、外部システム、情報に設定する名前は各々のシートで定義したものを使用します

条件とバリエーションを洗い出す 

ビジネスルールを条件として表し「条件」シートに定義します。また、条件の軸になるものをバリエーションとして扱い「バリエーション」シートに定義します。条件はBUCシート(H列)に記述し、アクティビティ、UCに条件をつなげることでビジネスルールを表現します

条件は消費税のような単独の式で表されるものや、バリエーションや状態の組合せで表現するものがあり、その関係を条件シートに記述します。バリエーションはアクターなどの様々なものを分類して管理するために用います

ビジネスの変化はバリエーションの値の追加、変更として現れることが多く、適切にバリエーションを洗い出せるとシステムの変更をパラメタ的に扱えるようになり保守性がよくなります

状態にUCをつなげ情報間の関連を付ける 

システムが保持するものを情報として扱い、情報の変化を状態として扱うことでシステムが管理すべきことを明らかにします。「UCが情報を操作(BUCシート)することで状態を変える」と考えるので、UCがどの状態を変えるかを状態シートの遷移UC列に設定します

この設定を行いながらBUCシートのUCを追加・削除し、UCと情報の関係を見直します

まとめ

素早く精度の高い要件を定義するコツを示します

上記の作業を行うことでシステムのスコープやシステムで行うことがイメージがつくので、空中戦がなくなり素早く要件を組み立てることができます