TRACERY Lab.(トレラボ)

TRACERY開発チームが、要件定義を中心として、システム開発で役立つ考え方や手法を紹介します。

RDRAによる要件定義の進め方〜第3フェーズ(2):整合性を確認し、精度を高める

シリーズ: モデルベース要件定義手法RDRA

TRACERYプロダクトマネージャーの haru です。

RDRAは、システムを構成する要素同士の関係(Relationship)を定義することで、システム全体の構造を明確に捉え、可視化できる点が大きな特徴です。

下図は、「RDRA定義・分析Sheet」におけるシート間の関連を示しています。

「RDRA定義・分析Sheet」のシート間の関連

RDRAには、システムを構成する要素同士の関係定義の整合性を自動的にチェックする仕組みが用意されています。

この仕組みにより、定義漏れや参照ミスといった不整合を早期に発見し、要件定義の精度を高めることができます

さらに、ユースケースとアクター、外部システム、情報の関係を一つの表で確認できる仕組みも備えています。

これにより、要素同士の関連を俯瞰しながら、定義内容を体系的に見直すことができます。

本記事では、不整合を検出する仕組みと、要素間の関係を俯瞰する仕組みについて説明します。

不整合を検出する仕組み(「✖不整合」シート)

シート間の関連やシート内の関係定義に不整合がある場合は、「✖不整合」シートに一覧として表示されます(下図)。

「 ✖不整合」シート(全体)

「✖不整合」シートは、大きく次の2種類の不整合検出に分類されます。

  • 参照された名前が定義されていない
  • 定義されているが「BUC」シートで参照されていない

前者では4種類の不整合を、後者では1種類の不整合を検出します(下表)。

参照された名前が定義されていない

区分 不整合内容
他シートで未定義なものをBUCシートで参照しているもの BUCシートから参照しているアクター、外部システム、情報、条件が、定義元のシートに存在しない。
情報シート 情報シートから参照している状態モデル、バリエーション、情報*1が、定義元のシートに存在しない。
状態シート 状態シートから参照しているユースケース、状態*2が、定義元のシートに存在しない。
条件シート 条件シートから参照している状態モデル、バリエーションが、定義元のシートに存在しない。

定義されているが「BUC」シートで参照されていない

区分 不整合内容
定義されているが「BUC」シートで参照されていないもの アクターシート、外部システムシート、情報シート、条件シートに定義されている要素が、BUCシートから参照されていない。

それぞれの区分の詳細については、以下で説明します。

「参照された名前が定義されていない」不整合

BUCシート、情報シート、状態シート、条件シートから参照している要素が、定義元のシートに存在しない場合に検出します。

以下では、4つの不整合チェックについて説明します。

他シートで未定義なものをBUCシートで参照しているもの

BUC」シートでは、ユースケースや業務フローの「アクティビティ」に関連する要素として、他シートに定義されている要素名を参照します*3

ここで参照した要素名が、該当するシートに定義されていない場合の不整合を検出します。対象となるシートは以下のとおりです。

  • アクター」シート
  • 外部システム」シート
  • 情報」シート
  • 条件」シート

他シートで未定義なものをBUCシートで参照しているもの

情報シート

情報」シートでは、情報要素同士の関連に加え、状態遷移モデルやバリエーションとの関連も定義します。

  • 情報要素同士の関連(「情報」シート内の参照)
  • 情報の遷移を表す状態遷移モデルへの参照(「状態」シートへの参照)
  • 情報の分類を示すバリエーションへの参照(「バリエーション」シートへの参照)

これらの参照先として指定した要素名が、定義元のシートに存在しない場合に不整合を検出します。

「✖不整合」シートの「情報シート」部分

状態シート

状態」シートでは、要素同士の関連として、以下の内容を定義します。

  • 状態から遷移先の状態への関連(「状態」シート内の参照)
  • 状態遷移に関わるユースケースへの参照(「BUC」シートへの参照)

「✖不整合」シートの「状態シート」の部分

条件シート

条件」シートでは、ビジネスルールに基づく判定に用いる判定軸として、次の要素との関連を定義します。

  • バリエーション(「バリエーション」シートへの参照)
  • 状態モデル(「状態」シートへの参照)

「✖不整合」シートの「条件シート」の部分

「参照された名前が定義されていない」不整合の解消方法

「他シートで未定義なものをBUCシートで参照しているもの」、「情報シート」、「状態シート」、「条件シート」の不整合は以下の方法で解消します。

  • 不整合を検出したシート(BUC、情報、状態、条件のいずれか)で参照している要素名が、定義元のシートに存在するかを確認し、原因に応じて修正する
    • 不整合を検出したシートで参照している要素名が誤っている場合 → 不整合を検出したシートを修正する
    • 定義元のシートに要素が定義されていない場合(または定義元シートの要素名が誤っている場合) → 定義元のシートを修正する

定義されているが、参照されていない

既に説明した他の4つの区分とは性質が異なり、定義した要素が実際のユースケースの中で使用されているかを確認するチェックです。

定義された要素が他のシートから参照されていない場合、その要素はシステムのユースケースや業務の中で使用されておらず、システムに関係のない不要な定義である可能性があります。

「定義されているがBUCシートで参照されていない」不整合

BUC」シートでは、アクター、外部システム、情報、条件などを定義する各シート(定義元シート)で定義された要素名を参照します。

この不整合チェックでは、定義元シートで定義されているにもかかわらず、BUCシートから参照されていない要素を検出します。

これにより、次のような内容を確認できます。

  • システムで使用されないアクター、外部システム、情報、条件が定義されている
  • 業務やユースケースの洗い出しが十分に行われていない

「✖不整合」シートの「定義されているが「BUC」シートで参照されていないもの」の部分

「定義されているが「BUC」シートで参照されていない」不整合の解消

「定義されているが「BUC」シートで参照されていない」場合の不整合は以下の方法で解消します。

  • 定義元シートで定義されている要素名に該当する要素が、「BUC」シートで使用されているかを確認する(参照名称の不一致の確認)
    • 「BUC」シートの参照名が誤っている場合は、「BUC」シートを修正する
    • 定義元シートの要素名が誤っている場合は、定義元シートの要素名を修正する
  • 定義元シートで定義されている要素名が、「BUC」シートで使用されていない場合(参照名称の不一致ではない場合)
    • 「BUC」シートで参照する必要がある場合は、参照を追加する
    • 「BUC」シートで参照する必要がない場合は、定義元シートの定義を削除する

要素間の関係を俯瞰する仕組み(「UC_PIVOT」シート)

「✖不整合」シートの不整合を解消したら、「UC_PIVOT」シート(下図)を参照し、ユースケースを軸に定義全体を俯瞰しながら、定義全体の妥当性を確認します。

「UC_PIVOT」シート

「UC_PIVOT」シートは、ユースケースと各要素の関係を、横軸と縦軸の2つの視点で確認します。

横軸は、ユースケースおよびビジネスユースケース単位での確認です。どのようなアクターや外部システムが関係し、どのような情報を扱うかを把握できます。

縦軸は、アクター、外部システム、情報などの各要素を軸に、どのユースケースやビジネスユースケースと関係しているかを確認します。

例えば、上記のピボットテーブルでは、アクターの「会員」を軸に見ると、「貸出期限を確認する」「予約図書を取り置く」「貸出(ビジネスユースケース)」と関係していることが分かります。

ユースケースの欄が空白の場合は、該当のアクターが業務フローの中でシステムのユースケースとは関係せず、アクティビティのみと関係していることを示しています。

最後に

RDRAでは、システムを構成する要素同士の関係を定義することで、システム全体の構造を明確に捉えます。しかし、要素同士の関係が増えるほど、定義漏れや参照ミスといった不整合が発生しやすくなります。

本記事で紹介した「✖不整合」シートは、そうした不整合を自動的に検出し、修正すべき箇所を明確にするための仕組みです。これにより、要素間の参照関係の誤りや、定義された要素が実際のユースケースで使用されていないといった問題を早期に発見できます。

また、「UC_PIVOT」シートを利用することで、ユースケースを軸に、アクター・外部システム・情報などの要素との関係を俯瞰的に確認できます。これにより、個々の定義だけでは見えにくい関係の偏りや抜け漏れを把握し、定義全体の妥当性を見直すことができます。

このように、不整合の検出と全体俯瞰の仕組みを組み合わせることで、RDRAでは要件定義の整合性と網羅性を高めることができます。

シリーズのここまでで、RDRAによる要件定義の進め方の各フェーズを説明しました。

次回の記事では、RDRAで作成した成果物が設計プロセスとどのようにつながるのかを解説します。

tracery.jp

参考書籍

この記事を書いた人
haru

佐藤治夫。株式会社ビープラウド代表取締役社長。TRACERYのプロダクトマネージャー。エンジニアとして活動を始めて以来、モデリングを中心としたソフトウェアエンジニアリングを実践している。Xアカウント: https://x.com/haru860