プラットフォーム独立モデル(Platform Independent Model, PIM)とは、ソフトウェアやビジネスシステムの設計において、特定の技術プラットフォームに依存しない抽象的なモデルのことです。これは、
モデル駆動型アーキテクチャ(Model-Driven Architecture, MDA)というソフトウェア開発のアプローチにおいて重要な役割を果たします。MDAは、OMG(
Object Management Group)が提唱する
モデル駆動工学の考え方に基づいており、PIMはその中核をなす概念と言えるでしょう。
 PIMの重要性
PIMの最大の利点は、特定の技術に縛られることなく、システムのビジネスロジックや機能に焦点を当てて設計できる点にあります。これにより、開発者は技術的な制約を意識することなく、より本質的なシステムの構造や振る舞いを定義できます。また、PIMは、異なるプラットフォームへの移行や、技術の変化への対応を容易にするというメリットもあります。なぜなら、プラットフォーム固有の技術要素をPIMから分離することで、システムの一貫性を保ちながら、個々の環境に最適化された実装を生成できるからです。
 MDAとモデル変換
MDAの基本的な考え方は、
モデル変換言語(Model Transformation Language, MTL)を用いて、PIMを
プラットフォーム特化モデル(Platform Specific Model, PSM)に変換することです。この変換プロセスを通じて、PIMで定義された抽象的なモデルが、具体的なプラットフォームで実行可能な形に変換されます。近年では、
QVT(Query/View/Transformation)標準に基づいた言語がモデル変換に利用されることが増えています。
QVTは、モデル間の変換規則を記述するための標準的な方法を提供し、より効率的で正確なモデル変換を可能にします。
モデル変換言語の具体的な例としては、VIATRAや
ATLAS Transformation Language(ATL)などが挙げられます。VIATRAは、モデルのクエリ、検証、変換のための強力なツールであり、大規模なモデルの操作に適しています。一方、ATLは、より記述的な変換を可能にし、特に異なるモデリング言語間の変換に適しています。これらの言語は、MDAのコンセプトを具体化し、PIMからPSMへの変換を支援する重要な役割を担っています。
 関連技術
PIMの周辺には、多くの関連技術が存在します。以下に主なものを挙げます。
   
プラットフォーム特化モデル(PSM): PIMから変換された、特定のプラットフォームに依存するモデル。
   
サービス指向モデリング: システムをサービスとして捉え、それらを組み合わせてシステムを構築するモデリング手法。
   
モデル駆動型アーキテクチャ(MDA): PIMを中心としたソフトウェア開発のアプローチ。
   
モデル駆動工学(MDD): モデルを開発の中心に据える工学的なアプローチ。
   
メタモデリング: モデルを定義するためのモデル(
メタモデル)を作成するプロセス。
   
Meta-Object Facility(MOF): 
メタモデルを定義するためのOMGの標準。
   
URDAD: ユースケース駆動分析および設計の方法論であり、PIMを生成する。
   
統一モデリング言語(UML): システムの構造や振る舞いを記述するための標準的なモデリング言語。
   
Systems Modeling Language(SysML): システム工学向けのモデリング言語。
   
XML Metadata Interchange(XMI): モデルの交換のためのXMLベースの標準。
   
Object Constraint Language(OCL): モデルの制約を記述するための言語。
   
Model Integrated Computing(MIC): モデル統合計算の概念。
   
Generic Modeling Environment(GME): モデル統合計算のためのツール。
   
Eclipse Modeling Framework(EMF): Eclipseプラットフォームのモデリングフレームワーク。
   
Graphical Modeling Framework(GMF): EMFベースのモデリングツール。
   
ドメイン固有言語(DSL): 特定のドメインに特化した言語。
  
ドメイン固有モデリング(DSM): 特定のドメインに特化したモデルを作成する手法
   
モデル変換言語(MTL): モデルを別のモデルに変換するための言語。
   
モデルベーステスト(MBT): モデルに基づいてテストケースを生成するテスト手法。
  
オブジェクト指向分析設計(OOAD): オブジェクト指向の考え方に基づいたシステムの分析設計手法
  
ATLAS Transformation Language(ATL): 
モデル変換言語の一種。
  
KM3: メタモデリング言語の一種
  
Kermeta: メタモデリング言語の一種
  
SmartQVT: 
モデル変換言語の一種。
  
VIATRA: 
モデル変換言語の一種。
 
Service-Oriented Modeling Framework (SOMF): サービス指向アーキテクチャのためのモデル化フレームワーク。
これらの技術は、PIMを中心に、モデル駆動開発の様々な側面をサポートしています。PIMは、単なる抽象的なモデルではなく、より効率的で柔軟なソフトウェア開発を可能にするための重要な要素と言えるでしょう。