2012年10月2日火曜日

MindmapModelingと集合知

今月の22日にとある名古屋の学際的な集まりで、マインドマップモデリングやモデル駆動開発についてお話させていただくことになりました。このセッションのネタ整理を「Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標」や「クラウド温泉3.0@小樽」といった感じで、ブログの上で行なっていきたいと思います。

このブログのタイトル「Modegramming Style」は、モデリングとプログラミングを融合させたソフトウェア開発のスタイルを提案することを意図しています。そのキーテクノロジとなるのがDSLによるモデル駆動開発です。これを実現するための言語として「用途に応じてScalableに言語を拡張できるDSL指向言語」であるScalaを採用しています。

名古屋の集まりは社会科学を中心に、工学、理学の知見を集約してクラウド時代の「集合知」についてアプローチしていくもののようです。

そういった研究に、どの程度参考にしていただけるか分かりませんが、現場発の技術とツールであるマインドマップモデリングとSimpleModelerの説明を行います。

マインドマップモデリングとDSL駆動開発

DSLによる駆動開発をテーマに活動しているわけですが、活動は大きく以下の3つになります。

  • マインドマップモデリング
  • SimpleModeling
  • SimpleModeler


活動の柱が日本語の世界とプログラムを結びつけるメタモデルであるSimpleModelingの開発です。 

マインドマップモデリングは、日本語の世界とSimpleModelingの橋渡しを行うための手法です。

SimpleModelerはSimpleModelingのモデルインスタンスをプログラムに変換するツールです。

メタモデル

その中でこのところの活動の中心としてきたのは、「Object-Functional Analysis and Design: 次世代モデリングパラダイムへの道標」や「クラウド温泉3.0@小樽」で考察したクラウド・アプリケーション向けのメタモデルです。この方向で2009年の「クラウド・アプリケーションの作り方 edge2.ccの挑戦」以降色々と手探りで考えてきましたが、現在のところの結論は以下のようになっています。

  • 基本はオブジェクト・モデリング
  • データの種別のモデリングを明確にする
  • データフローの導入
  • メッセージフローの導入

基本は既存のオブジェクト・モデリング+αということで、平凡な結論ですが現場展開を考えると妥当な落とし所かなと思います。

プログラミング的には関数型を取り込んだOFP(Object-Functional Programming)でこれらのモデルをどう捌いていくのかということが焦点になりますが、Scalaだと無理なく実現できると考えています。

日本語の世界

もう一つの大きなテーマは、日本語の世界をどうやってソフトウェア開発につなげていくのかという方法論です。

持続的なシステム開発を行う上では、単に超上流工程で日本語の世界をオブジェクト・モデル一回写像して終わりというわけではなく、ソフトウェア開発のライフサイクルを通じて、持続的に日本語の世界とプログラムの関係を維持していかなくてはなりません。

ここは要件定義の最重要課題でしょう。

また、このライフライクルを構築するには、プログラマが自ら日本語を扱いモデルとの関係を紐付けていくスキルも求めらるでしょう。ツールのサポートも必須です。

この問題に対するアプローチとしてマインドマップモデリングの試行を続けてきました。稚内北星学園大学時代に始めた試みですが、横浜モデリング勉強会として現在も続けています。



セッション

今回の「集合知」というテーマでは、ソフトウェア開発における「日本語」情報のセミフォーマルな取り扱いというのも重要な切り口ではないかと思います。そういう観点で、マインドマップモデリングの成果物を紹介し、クラウド上での「集合知」の収集とモデル化という切り口でディスカッションできればと思っています。

0 件のコメント:

コメントを投稿