オブジェクトモデル
オブジェクトモデルは、ユーザーがプロダクトを利用するうえで主要な関心の対象となる「オブジェクト」とその関係性を可視化した図です。UIの骨格(何を見せ、何を操作できるべきか)を検討・レビューするのに向きます。UIデザイン使用性チェックリストの#3に基づく、情報設計のアウトプットの1つです。
目的・期待すること
オブジェクトモデルは、主に新機能開発の際に以下のことを期待して設計します。
- ユーザーがプロダクトを認知する際のメンタルモデルを可視化すること
- オブジェクトとその関係性をできるだけシンプルにすること
- オブジェクトに付随するプロパティとアクションを精査すること
- オブジェクトモデルを元に作られるUIがオブジェクト指向になること
メンタルモデルの全体像の可視化は概念モデルでも達成できますが、オブジェクトモデルでは実際の画面や物理設計を導くために詳細な構造を可視化します。
また、プロダクトの現在地を整理する目的で、既存機能や既存業務のメンタルモデルの可視化にも使えます。
他の図との違い
概念モデルとの違い
オブジェクトモデルは、概念モデルのように、プロパティ・プロセス・ナビゲーションなどを含んで概念を整理する図ではありません。
ユーザーの主要な関心の対象であるオブジェクト(および、それに付随するプロパティとアクション)を図にします。
データモデルとの違い
オブジェクトモデルは、ER図といったデータモデルのようにデータベース設計を直接の目的とする図ではありません。
ユーザーがプロダクトをどう認知するかを図にしたものであり、その構造は必ずしもデータモデルと一致しません。
また、プロパティだけでなく、UI上でユーザーが操作するアクションを記載する点も異なります。「返信」「承認」「アーカイブ」のような、いわゆるデータベースのCRUD操作とは粒度が異なるアクションも図に示します。
構成
1. オブジェクト
ユーザーが機能を利用するうえで主要な関心の対象となる概念を矩形で示します。
書き方
- 矩形の上部にオブジェクト名を記載します。
- 概念の親子関係に従い、左から右に書き連ねます。同じ階層の概念は縦方向に書き連ねます。
2. プロパティ
オブジェクトに付随する情報を記載します。
書き方
- オブジェクトの矩形の中に列挙します
3. アクション
オブジェクトに対してユーザーが実行できる操作を記載します。ただし、閲覧や確認といったオブジェクトをユーザーが見る行為は操作として扱いません。
書き方
- オブジェクトの矩形の中に列挙します
4. 関係性を示す矢印
オブジェクト同士が関係し合っていることを矢印で示します。主に親子関係と参照関係を示します。概念モデルの関係性を示す矢印と基本的に同様です。
書き方
- 親子関係を示す矢印は実線に、参照関係を示す矢印は点線にします。
- 多重度は、「1:1」「1:0..1」「1:0..n」「1:1..n」「1:n」というように
{結びつきの数}:{結びつきの数}の形式で記載します。- 「n」は任意の複数を表します。
- 「0..1」のように2つの数を..で繋げて表記することで、「0または1を取る」というように値の範囲を表せます。
- 矢印の方向は、親→子、参照→被参照とします。
作成手順
SmartHRのプロダクトを例にしたオブジェクトモデルの作成手順は、下記の社内ドキュメントを参照してください。
妥当性を判断する観点
オブジェクトの多くは概念モデルにおいて概念として表れるため、概念モデルの妥当性を判断する観点はオブジェクトモデルの妥当性の判断にも有効です。概念モデルの妥当性を判断する観点も併せて参照し、オブジェクトモデルの妥当性を判断してください。
オブジェクトモデルに改善点や課題が見つかった場合、概念モデルにも改善点や課題がある可能性が高いです。概念モデルに立ち戻ることも検討してください。
オブジェクト
| # | 観点 | 詳細 | 対処法 |
|---|---|---|---|
| 1 | オブジェクトが複数のプロパティやアクションを持っているか | 多くの場合、オブジェクトは複数のプロパティと複数のアクションを持ちます。プロパティやアクションを持たない場合や、単一のプロパティやアクションのみを持つ場合、それは独立したオブジェクトではなく他のオブジェクトのプロパティである可能性があります。 | 他のオブジェクトのプロパティとして整理できないか検討してください。 |
| 2 | 画面上のレイアウトを示す言葉がオブジェクト名になっていないか | 「図」「表」「一覧」といった画面上のレイアウト(ビュー)を示す言葉がオブジェクトに登場する場合、それらのビューが実際に示すオブジェクトが見落とされている可能性が高いため、対処法を参照して対応してください。 | ビューで実際に扱う情報をオブジェクトとして整理できないか検討してください。 |
| 3 | 文字列や数値や日付をオブジェクトとしていないか | 「推薦文」「期間」「年度」といった文字列や数値や日付はプロパティとして扱います。 | 他のオブジェクトのプロパティとして扱えないか検討してください。 |
| 4 | 想定されるインスタンス名が業務で扱う言葉として理解しやすいか | ユーザーが実際にオブジェクトのインスタンスに対して名づけると想定される名前が、業務に登場する言葉で構成されているか確認してください。業務上馴染みがなく、理解が難しいインスタンス名になる場合、より良いオブジェクトの命名や構造がある可能性があります。 | オブジェクトの粒度や命名を見直し、インスタンス名を想起しやすいオブジェクトにしてください。 |
関係性・構造
| # | 観点 | 詳細 | 対処法 |
|---|---|---|---|
| 5 | 概念モデルに矛盾した構造になっていないか | オブジェクトモデルと概念モデルの図としての表現に差はありますが、それぞれが示すプロダクトの構造は共通しています。概念モデルに登場する概念が登場しなかったり、概念モデルの概念の関係性とオブジェクトモデルのオブジェクトの関係性が異なっていたり、構造の矛盾がないか確認してください。 | 概念モデルとオブジェクトモデルが示す構造が一致するようそれぞれのアウトプットを見直してください。 |
アクション
| # | 観点 | 詳細 | 対処法 |
|---|---|---|---|
| 6 | アクションの主体がユーザーになっているか | オブジェクトに対するアクションの主体はユーザーです。システムが主体の行為をアクションとして挙げていないか確認してください。 | システムの処理はオブジェクトモデルに記載しないでください。 |
| 7 | アクションに不足はないか | オブジェクトの操作を通して、業務が完遂できるか確認してください。特に、業務において強く意識されない基本的なアクション(例:作成、編集、複製、削除)が不足していないか確認してください。 | 業務の完遂に必要なアクションを追記してください。 |
プロパティ
| # | 観点 | 詳細 | 対処法 |
|---|---|---|---|
| 8 | プロパティ名が「○○の□□」になっていないか | プロパティ名が「○○の□□」というように複数の言葉で構成されている場合、○○に該当する情報はオブジェクトである可能性があります。 | ○○に該当する情報をオブジェクトとして整理できないか検討してください。 |
| 9 | プロパティに不足はないか | オブジェクトやビューの操作に必要な情報が不足していないか確認してください。 | 業務の完遂に必要なプロパティを追記してください。 |