
インタラクションフローモデリング言語(IFML)は、ソフトウェアエンジニアリング分野における標準化されたモデリング言語です。IFMLには、ソフトウェアシステムにおけるユーザーインタラクションやフロントエンドの動作を視覚的にモデル化するためのグラフィック表記法が含まれています。
インタラクションフローモデリング言語は、WebRatioの主導の下、2012年と2013年に開発され、WebML表記法や、Webモデリング分野におけるその他のいくつかの経験から着想を得ています。
これは2013年3月にオブジェクト管理グループ(OMG)によって標準として採用されました。[ 1 ]
IFMLは、デスクトップコンピュータ、ノートパソコン、PDA、携帯電話、タブレットなどのシステム上でアクセスまたは展開されるアプリケーションのグラフィカルユーザーインターフェースを、プラットフォームに依存しない形で記述することをサポートします。この記述は、エンドユーザーが認識するアプリケーションの構造と動作に焦点を当てています。
IFMLは、以下のドメインに属するアプリケーションのフロントエンドにおけるユーザーインタラクションと制御動作を記述します。
IFMLは、2次元および3次元のコンピュータグラフィックスの仕様には対応していません。
IFMLは、アプリケーションのフロントエンドのプレゼンテーションに関する問題(レイアウト/外観)のモデリングや、ビジネスロジックおよびデータコンポーネントの設計には適用されません。これらの側面はIFMLの主要テーマではありませんが、IFMLモデル内から、これらの側面に関する外部モデルやモデリング成果物を参照することができます。
IFML仕様[ 1 ]は以下から構成される。

IFMLモデルは、1つ以上のビューコンテナ(ネストされている場合もある)で構成されます。例えば、従来のデスクトップアプリケーションのウィンドウや、Webアプリケーションのページテンプレートなどがこれに該当します。ビューコンテナには、静的または動的なコンテンツの公開を示すビューコンポーネント、あるいはデータ入力用のインターフェース要素(入力フォームなど)を含めることができます。ビューコンポーネントは、入力パラメータと出力パラメータを持つことができます。
ビューコンテナとビューコンポーネントは、ユーザーの操作やシステム生成の事象を表すイベントに関連付けることができます。たとえば、リストから1つ以上の項目を選択するイベントや、フォームから入力を送信するイベントなどです。イベントの効果は、インタラクションフロー接続によって表されます。インタラクションフローは、ユーザーインターフェイスの状態変化を表します。イベントは、ユーザーインターフェイスの状態を更新する前に実行されるアクションをトリガーすることもできます。たとえば、データベースインスタンスの削除または更新操作などです。要素間の入出力依存関係は、ナビゲーションフローに関連付けられたパラメーターバインディング、またはデータ転送のみを記述するデータフローによって指定できます。
IFMLには、モデリング要素に対する制約、モジュール化、およびコンテキスト認識(ユーザープロファイル、デバイス、場所などに基づく)を定義するための概念も含まれています。IFMLの概念は、ステレオタイプに基づく標準的な拡張メカニズムで拡張できます。
かつてないほど多様なデバイス、技術プラットフォーム、通信チャネルの出現に伴い、フロントエンドアプリケーション開発のコストは増加している。しかし、実装プラットフォームに依存しないユーザーインタラクション設計に利用できるプラットフォーム非依存モデル(PIM)を作成するための適切なアプローチは確立されていない。このため、フロントエンド開発はコストがかかり非効率的なプロセスとなり、手動コーディングが主流の開発手法となり、設計成果物の再利用性は低く、プラットフォーム間でのアプリケーションの移植性も依然として困難となっている。
IFMLは、アプリケーションのフロントエンド開発にいくつかの利点をもたらします。
IFMLは現在WebRatioによってサポートされています標準化プロセスを説明する一連のブログ記事はこちらからご覧いただけます。
Eclipse、EMF /GMF、Graphiti API をベースとした新しいオープンソースのIFML エディタが開発中です。このツールはオープンソースの Eclipse プロジェクトとしてリリースされます。ツールには、IFML の抽象概念から Java Swing、Microsoft WPF、HTML といったプラットフォーム固有の概念へのマッピングが含まれます。UI 部分の IFML 図のモデリングは、fUML仕様に準拠した (実行可能な) UML 図と、バックエンドのビジネス ロジック用の Alf スクリプトを組み合わせることで補完できます。ツールの機能のプレビューは、こちらのビデオでご覧いただけます。
IFMLEdit.orgは、教育とアジャイル開発に特化したWebベースのオープンソースIFMLエディタです。モデル編集、コード生成、エミュレーションをサポートしています。現在、サーバーサイドNodeJS、クライアントサイドJavaScript 、およびCordovaまたはFlutterを介したモバイルアプリケーション向けのコード生成をサポートしています。
IFML は、Roberto Acerbis、Aldo Bongio、Marco Brambilla、Sara Comai、Stefano Butti、Maristella Matera を含むチームとともに、ミラノ工科大学で Stefano Ceri と Piero Fraternali によって発明されたWebML表記法に触発されました。