CRUDマトリックステクノロジー。 実務経験

機能複製の例

CRUDマトリックステクノロジーは、製品ライフサイクル全体を通じてアジャイルチームのすべてのメンバーにとって優れたツールです。 CRUDマトリックスを使用すると、クライアントとの適切な対話を確立し、機能の重複を特定し、モデルの不整合を排除できます。 時間評価に関しては、この時点で、CRUDマトリックスは「計画ポーカー」などのツールよりも著しく劣り、客観的な理由を考慮した適切な評価が可能です。





ちょっとした理論:テクニックの説明



IIBAは、アジャイル分野のビジネスアナリスト(以下、アジャイルアナリスト)の能力において、以下の技術を担当しています。

-評価と受け入れの基準の定義。

-ブレーンストーミング。

-さまざまな評価方法(Delphi法、パラメトリック法、類推法、3点法など);

-プロトタイピング;

-シナリオの開発と先例の説明。

-ソリューションの分析または配信のためのモデリング領域。

-カスタムストーリー。



IIBAは、データモデリングテクノロジーをアジャイルアナリストの能力に帰するものではなく、ビジネスアーキテクトの役割の能力に割り当てます。 同時に、ビジネスアーキテクトの能力とアジャイル分析には、ソリューションの分析または提供のための領域をモデル化するための技術が含まれています。

ビジネスアーキテクトが主にデータモデリングに従事しているという事実の結果として、アジャイルアナリストはシステム内のプロセスとデータの間の実際の関係を認識せず、競合するエンティティの作成やシステム内の機能の重複につながる可能性があります。

この問題を解決するために、アジャイルアナリストはCRUDと呼ばれるマトリックスを開発します。



実践パート:CRUDマトリックス開発



CRUDマトリックスを作成すると、アジャイルチームはビジネスプロセスを説明する重要なユースケースに集中できます。 CRUDマトリックスは、クラス図のすべてのクラスが上部にリストされ、ユースケースのリストが左側に表示されるテーブルの形式で形成されます。 アジャイルアナリストのタスクは、ユースケースとクラスの交差点を、クラスインスタンスへのアクセスの次の組み合わせで埋めることです:作成(作成)、読み取り(更新)、更新(更新)または削除(削除)。

これは、クラスの1つ以上のインスタンスを作成、読み取り、更新、または削除するすべてのユースケースを説明しています。

例として、2007〜2008年にCRUDマトリックスを作成した経験を紹介します。 科学技術図書館(以降ABIS NTB)の自動図書館情報システムの開発を計画する場合。





CRUDマトリックスの分析は、7つのステップで実行されます。

1.モデルの完全性を確認する

2.定義の定義

3.開発のための典型的な作業のパッケージの定義

4.開発に必要な時間の評価

5.モデルの一貫性を確認する

6.後続の作業の定義と機能の追加

7.開発と配信の優先順位付け



ステップ1.モデルの完全性を確認する


CRUDマトリックスに基づいて、モデル構築の完全性が、開発されたシステムでのクラスまたはユースケースの使用の適切性についてチェックされます。

たとえば、リストされている前例のフレームワーク内では、「Book Form」クラスの作成または削除は説明されていません。 この事実は、もちろん、「書籍フォーム」が開発中のシステムの外部で作成および削除されること、またはアジャイルアナリストが前例の「書籍の登録」または「書籍の書き取り」について説明しなかったことを意味しますが、このためには別のクラスを導入する必要がありますインベントリブック。」



ステップ2.依存関係の定義


システム開発プロセスを計画するとき、CRUDマトリックスは、主にユースケースの最大数をカバーするために開発されるクラスのリストを決定するのに役立ちます。 たとえば、ABIS NTBの開発では、クラス「予約」とは対照的に、CRUDマトリックスに基づくリーダークラスが8つのケースで使用されるため、先例の「リーダーの登録」が最初に実装されます。 したがって、必要な関連データが決定されます。



ステップ3.開発用の典型的な作業のパッケージの定義


CRUDマトリックスは、典型的な実装を決定し、システム内の機能の重複を識別するのに役立ちます。 たとえば、「book form」クラスは「librarian」クラスのタイプに従って実装されるため、「book form」クラスを実装するのに必要な時間が短くなります。 したがって、システム開発時間が短縮されます。



ステップ4.開発に必要な時間の推定


CRUDマトリックスは、アジャイルチームに特定の機能の開発とテストに必要な時間を見積もるためのシンプルなメカニズムを提供します。

最初の近似では、各アクセスの組み合わせが評価され、次に各ユースケースが評価されます。 たとえば、クラスの新しいインスタンスの作成は4つのケースで必要であり、クラスのインスタンスに関する情報を7つのケースで読み取り、16のケースではクラスのインスタンスの情報を更新する必要があり、6つのケースではクラスのインスタンスを削除する必要があります。 各アクセスの組み合わせの開発に計画された時間を使用して、各クラスの実装の複雑さ、およびシステム全体の表が作成されます。



必要に応じて、アナリストは各クラスの実装の複雑さだけでなく、各ユースケースもランク付けできます。

53日間については、標準的な作業、つまり「図書館員」と「書籍形式」のクラスの実装により、この期間は短縮されます。 将来のより現実的な推定値を提供するために、以前のプロジェクトでこのような機能を実装するプロセスの統計分析に基づいて収集された実際の値を使用できます。 いずれにしても、最後の言葉はアジャイルチームにあるべきです。なぜなら、統計はシステムの開発に役立ちませんし、時にはアジャイルチームがその能力を正しく評価することさえ妨げるからです。



ステップ5.モデルの整合性を確認する


CRUDマトリックスの反復開発のプロセスでは、ユースケースと、ソリューションの開発および提供の基礎となるモデルとの間で一貫性が確保されます。 たとえば、モデルのフレームワーク内では、どのユースケースでも使用されないクラスが存在する可能性があり、これはシステムパフォーマンスの低下になる可能性があるため、これは顧客満足度に直接影響します。 したがって、CRUDマトリックステクノロジを使用して開発されたソリューションは、可能な限り一貫性があり、これが開発の優れた基盤となります。



ステップ6.後続の作業の定義と機能の追加


CRUDマトリックスは、各ユースケースに対するシステムのすべての応答アクションを記述します。これにより、開発者はシステム全体の動作を全体として確認できます。 アジャイルアナリストは、CRUDマトリックスに基づいて、必要に応じてモデルを改良し、シーケンス図、コミュニケーション図、相互作用レビュー図、または同期図を作成できます。 また、CRUDマトリックスは、設計者がインターフェイスを設計するとき、または製品仕様を開発するソリューションアーキテクトとして使用できます。 したがって、CRUDマトリックスは、製品ライフサイクル全体を通じてアジャイルチームの各メンバーにとって優れたツールとして機能します。



ステップ7.開発と配信の優先順位付け


CRUDマトリックスを使用すると、顧客は機能の実装における優先順位を適切に評価でき、その実装を次の反復に移行することはできません。 たとえば、「図書館カードの発行」と「リーダーの再登録」という前例は、クラスが開発されるまで完全に設定することはできません:リーダー、図書館カード、司書。



まとめ



CRUDマトリックステクノロジーは、製品ライフサイクル全体を通じてアジャイルチームのすべてのメンバーにとって優れたツールです。 CRUDマトリックスを使用すると、クライアント(顧客)との適切な対話を確立し、機能の重複を特定し、モデルの不整合を排除できます。 時間評価に関しては、この時点で、CRUDマトリックスは「計画ポーカー」などのツールよりも著しく劣り、客観的な理由を考慮した適切な評価が可能です。 クラスのインスタンスへのアクセスの組み合わせについては、CRUDの組み合わせを使用する必要はありません。他の組み合わせ、たとえばREST、RESTful、GET-PUT-POST-DELETEなども可能です。



PS:インスピレーションの源:

1. James Cadle、Debra Paul、Paul Turnerのビジネス分析テクニック:2010年の成功に不可欠な72のツール

2.国際ビジネス分析研究所(2009)ビジネス分析知識体系(バージョン2.0)。 国際ビジネス分析研究所、トロント。

3.国際ビジネス分析研究所(2011)ビジネス分析コンピテンシーモデル(バージョン3.0)。 トロント国際ビジネス分析研究所。

4. unrealitymag.com/wp-content/uploads/2009/03/matrix.jpg



All Articles