2012年10月11日木曜日

MindmapModelingと集合知(7) - クラウド拡張

前回は、マインドマップモデリングの土台となるSimpleModelingのメタモデルを紹介しました。

このSimpleModelingメタモデルは、wakhok時代から積み上げてきたものでwakhok時代の成果物は『上流工程UMLモデリング 業務・要求分析からプログラミングへのモデル化技法』になります。

wakhokの段階では、伝統的な業務アプリをターゲットにしていましたが、2008年以降は、新しく勃興してくる「クラウド・アプリケーション」を新しいターゲットに設定して、メタ・モデルの拡張を進めています。

「クラウド・アプリケーション=クラウド・サービス+スマート・デバイス」とした上でキーポイントは以下になります。

  • ビジネス・モデリングとの連続性を確保
  • クラウド・サービスによる大規模データ/大規模演算
  • スマート・デバイスを用いたUX/UI
  • モデルからプログラムの自動生成

そこで昨日のメタモデルの図になるわけですが、このブログを書きながら少し情報を追加したので、その改版版を以下に示します。




最近UXの取り込みのイメージができてきたので、その情報を追加しました。また、ビジネス・プロセスのところで省略していたビジネス・フローを念の為に入れています。

以下ではこのメタモデルのインスタンスとして構築したモデルをSimpleModelingモデル、略してSMモデルと呼ぶことにします。

ビジネス・モデリング

SMモデルでは、プログラムに直接落とし込める部分を「固いモデル」、落とし込めない部分を「柔らかいモデル」と呼んでいます。基本的に要求仕様に近くなるほど「柔らかいモデル」、ドメインモデルに近くなるほど「固いモデル」になります。

ポイントとなるのは、固いモデルが、柔らかいモデルで記述したモデルを効率的に実現するための土台になっているのかという点を検証可能にしたいということです。このために、ビジネス・プロセスやユースケースといった柔らかいモデルを記述し、ドメインモデルとの関係をモデル上で維持し、可視化やモデルの検証などを行う基盤としていく予定です。

SMモデルでは、ビジネス・ユースケース(マインドマップモデリングの「物語」)をビジネス・モデリングの軸としています。ビジネス・プロセスはビジネス・ユースケースの集まりとしてモデル化していきます。ビジネス・ユースケースの具体的なステップはビジネス・タスクとして抽出し、ユースケースと紐付けます。

またビジネス・プロセスやビジネス・ユースケースは、イベント、アクター、イベントといったエンティティを使用します。この部分で直接プログラムとの関係が出てきます。

ビジネス・プロセスやその実行過程としてのビジネス・ユースケースにおいて、どのようなエンティティがどのように使われるのかという点を可視化し、検証可能にしていくのがSMモデルのおけるビジネス・モデリングの目標です。

クラウド・サービス

クラウド・サービスでは、大規模データ、大規模演算をどのようにモデル化して全体アーキテクチャに位置付けていくのかについて検討を重ねてきました。

MindmapModelingと集合知」でも少し触れましたが、「データフローの導入」、「メッセージフローの導入」がクラウド・サービス向けの拡張点です。

大規模データ、大規模演算への対応が「データフローの導入」、非同期事象・遅延への対応が「メッセージフローの導入」です。プログラミングモデルに例えると前者が並列プログラミング、後者が並行プログラミング的なアプローチになります。

少し情報が古いですが想定しているアーキテクチャは以下のものです。

このようなアーキテクチャに対して「Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標」で取り組んだObject-Functionalの切り口で分析、設計、プログラミングを行うためのメタモデルとDSLの実現を目指しています。

スマート・デバイス&UX/UI

スマート・デバイスを用いたUX/UIもクラウド・アプリケーションの重要なテーマです。

Android

スマートデバイスについてはAndoirdを素材に検討を重ねてきました。成果物は以下のとおりです。

スマートデバイスとスマートサービスの組合せによるアーキテクチャの動作イメージやモデリングとの接点は大体つかめたと思います。基本的にはiOSへの技術転用は可能だと考えているので、いずれそちらの方面にも展開できればと思います。

UX/UI

UXについては、色々と調査を進めていたのですが、最近イメージが明確になってきたのでSMモデルの枠組みの中に取り込んでいきたいと考えているところです。

上の図で示した通りユースケース→タスクのラインからサービスを、UXのラインからUIを構築するような形を考えています。

プログラムの自動生成

以上に示した各種モデルをDSLで記述し、プログラムの自動生成を行うためのツールとしてSimpleModelerを開発中です。

セッションではマインドマップモデリングとSimpleModelerでプログラムの自動生成のデモも行う予定です。

0 件のコメント:

コメントを投稿