要件定義手法”RDRA”について調べてみた
今日は、リレーションシップ駆動要件分析 ( RDRA ) -- Relationship Driven Requirement Analysys -- がどんなものか調べてみることにします。
#ただ読んでても頭に入らないので、つっこみをいれながらまとめていきましょう、というのが今日の趣旨です。
まず、読み方ですが、”ラドラ”というらしいです。ネーミングはあまり好きではありません。上の方にサクッと聞きとってもらえる名前の方がよさそうですね。「リレーションシップ・・・の略で・・」と説明を続けても、説明が終わるまで「何のリレーションシップ?」と疑問がとれません。(私がそうだっただけで、みんなそうとは限りませんけど。)
ざくっと理解した特徴を述べると、
- ビジネスシステムからソフトウェアシステムまで、視点を変えながら、一連の流れを関係を保ちながらモデリングしていく
- 要件を多面的に定義していく。機能要件(処理とデータ)と非機能の両面から定義します
といったあたりでしょうか。
視点を変えながらモデリングしていく”視点”とは以下の4つの視点です。
- システム価値
- システム外部環境
- システム境界
- システム
それぞれについて、以下に説明します。
説明文は、私が OO 寄りの視点で斜め読みして解釈した内容なので、誤解があるかもしれません。。。
システム価値
特徴
よいと感じる点
- 「何を」定義するのかが明確
- ステークホルダーを明確に意識する
- システムに対する要件を定義する前に、要求をきちんと分けて定義する
- アウトプットが利用しやすい
- 機能だけでなく非機能もモデリングツールで管理できる
- 要求を構造化して定義されるため利用しやすい
よいとも悪いとも評価しかねる点
- HOW は定義されていないように感じる
- ステークホルダーの抽出方法、機能要求・非機能要求の抽出方法については定義されていないため、他の手法を組み合わせることが必要と思われる
課題と感じる点
- 「システム」ありきでスタートしているように見える。新しい業務やBPRのように、システムをイメージできていない場合には、事前の企画でシステムをある程度イメージすることが必要という想定か。この考えには賛同できないな。「人はドリルが欲しいのではない、穴が開けたいのだ」という考えに毒されているのか、私は。それともこの手法のスコープを正しく理解していないのか。
システム外部環境
何を定義するか
「システム価値」(=要求。慣れない言葉だし、必ずしもいい用語と思えないので、いちいち”要求”と言い換えちゃいます)を踏まえ、どのようなビジネスになるのかを定義する。
※ここでの「システム」は「ソフトウェア」という意味の「システム」
アウトプット
- 業務フロー
- 利用シーンモデル
- 概念モデル
- いわゆる概念モデルです。用語と概念の関係を整理します。なら、なおさら業務フローに登場させてデータと業務の整合性を確保するのがよいよね。
特徴
- システムがどのようなコンテクストで使われるのか、業務をフローおよびデータの両面から整理する点は、通常のOO開発と同様。
- フローと概念・モノの整合性をあまり気にしていないように見えて、この時点ではちょっと不安。後で整合性を確保するのかな?
システム境界
何を定義するか
- システム化の範囲
- システムとシステム外とのインターフェース
特徴
システム
何を定義するか
- 「システム境界の中」(=ソフトウェア)のデータ、機能(ふるまいではなく!)、ビジネスルール
※「システムの内部構造」という言葉を使っているけど、あくまでも「要件定義」なので、「境界の中」という意。
特徴
全体を見て
- やはり、「システムありき」で開始するように見える点が気にかかる。既にある「システムに対する要求」の聞きだしからはじめ、業務フローはそれを検証するだけのように見える
- 「システムありき」で始められる場合には、期待値⇒業務⇒提供するサービス⇒システム内 と順を踏んで、視点を変えながら定義していきましょう、という考えはよいと思う
- トレーサビリティを保つ意識が強い
- 機能・非機能の両面を定義しましょう、というプロセスなのはよい( HOW はないので補う必要あり??)
- 動的・静的な要件の整合性を最後に確保するが、途中で整合性が確保できていないので難易度が高いと思われる
- コンパクトに見積りに必要な情報をだそうという要件定義手法のように感じる
向いているシチュエーションは、
- システム像がある程度明確な場合に、
- ユーザのシステム部門が(IT屋の補助を受けたりしながら)、
- RFPよりもう少しシステムに突っ込んだところまで定義して、ベンダーが見積りを誤ったり、要求を勘違いしたりするリスクを減らすに十分な情報を
- コンパクトに定義するのに向いている
という印象を受けた。