【ぴーえすえむ】

PSM(プラットフォーム依存モデル) とは?

公開:
💡 選んだ技術で、どう作るかをモデルにする

PSMは、システムの構造や振る舞いに、選んだ実装基盤の詳細を反映したモデル。MDAでPIMから具体的な実装へつなぐために使われ、プログラミング言語やミドルウェアなどに合わせた設計を表します。

📌 このページのポイント
PSM:選んだ技術の詳細を反映 PIM 注文 複数の明細 対応 Java向けPSM Order クラス 明細の関連: List<OrderLine> モデルからコード・設定へつなぐ 自動化の範囲は、規則やツールによる PSMはモデル。完成したコードとは区別
注文と明細の関係をJavaの型へ対応づける設計例。線はモデル内の関連、矢印は基盤への対応を表します。
ひよこ ひよこ
PSMになると、何が具体的になるの?
ペンギン先生 ペンギン先生
例えばPIM(プラットフォーム非依存モデル)の「注文は複数の明細を持つ」という関係を、選んだ基盤でどう表すかを決めるよ。Javaを使う設計なら、注文と明細をクラスへ対応づけ、関連をコレクションで表す、といった詳細を反映できるんだ。
ひよこ ひよこ
PSMは完成したソースコード?
ペンギン先生 ペンギン先生
実装に近いけれど、モデルとコードは区別するよ。MDAではPSMからコードや設定ファイルへつなぐ考え方がある。どこまで生成できるかはモデル、変換規則、ツールによるので、PSMがあれば完成したアプリが必ず出てくるわけではないんだ。
ひよこ ひよこ
一つのPIMに、一つのPSMしか作れない?
ペンギン先生 ペンギン先生
複数のPSMを作れるよ。例えば共通の注文ルールに対してJava向けとC#向けのモデルを用意する考え方がある。ただし、対応する変換規則や各基盤での設計が必要だよ。モデルの名前を変えるだけで、別の技術へ移せるわけではないんだ。
ひよこ ひよこ
PIMからPSMへの変換は全部自動なの?
ペンギン先生 ペンギン先生
全部自動とは限らないよ。OMGの説明には手作業の変換、規則に沿った変換、ツールの結果を人が補う方法もある。注文の関係や計算ルールを保てているかを確認し、生成した実装もテストすることが大切なんだ。
もっと詳しく知りたい人へ

PSMのプラットフォームはOSだけを指す?

OSだけではありません。OMGのMDAではミドルウェアなども対象とし、モデルをコードへつなぐ際には言語やアプリケーションサーバーの選択も扱います。「特定のOS用の図」と決めつけず、そのモデルがどの実装基盤の詳細を表すかを確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「PSM」って出てきたら「選んだ実装技術に合わせて、システムの作り方を表すモデル」と思えばだいたいOK!
📖 おまけ:英語の意味
「Platform Specific Model」 = プラットフォーム依存モデル
💬 Specificは「特定の」という意味。モデルに選んだ実装基盤の具体的な事情を取り込むので、この名前なんだよ。

参考資料

← 用語集にもどる