kondoumh のブログ

- とあるソフトウェアエンジニアのめったに更新されないブログ -

Webでリアルタイム協調モデリングができるKodougu

InfoQの記事経由で知ったのですが、Kodouguというモデリングツール(&サービス)がなかなかいけてる感じなので紹介します。
KodouguIPAの未踏プロジェクトで開発されたWebブラウザで動作するモデリング環境です。
ダイアグラムエディタの部分は、Flashを使用しています(元々はAJAXによる実装だったようです)。ネットを介して複数ユーザーがリアルタイムでモデリングできます。一人のユーザーがモデルに加えた変更がリアルタイムに他のユーザーに伝わります(この部分は、ポーリングではなく、Webでのリアルタイム通信技術COMETにより実現しています)。サーバーサイトはRuby/RailsでRESTfulなWebサービスで実装されています。
現在のところ、kodougu.netのサービスとして運用されています(Amazon EC2を使用?)。
Kodouguモデリング言語はメタメタモデル/メタモデルから生成されているそうです。 UML 2.0/ER Model/Feature Model など多くのメタモデルが用意されています。メタメタモデルはノード・要素・制約などからなります。ダイアグラムで表現されるモデル言語はノード、ノード間の関連および、それらの制約からなるはずなので、なるほどという感じですね。
Kodouguの大きな特徴として、WikiTrac、ブログなどのWebアプリケーションとの親和性が上げられます。TracWiki、ブログにダイアグラムを埋め込むことができます(それぞれpluginが用意されています)。Tracのチケットに貼って、チケット画面の中でインライン協調モデリングしたりできるということです。
InfoQの記事(作者の人が書いてます)では、TwitterWassrなどを併用して協調モデリングという使い方が紹介されています(個人的にはLingrのプライベートルームの方がいいと思いますが)
Web Oriented開発ができそうな感じです(モデリングフェーズのみですが)。現時点では、リバース機能やフォワード機能はないそうです。
ダイアグラムの使い勝手ですが、Flashなので、コンテキストメニューが使えないなどエディタとしてはつらい部分もありますが、とてもいいコンセプトのツールだと思いました。
Class Diagramでは多重度が表現できない、Feature ModelingではFeatureの排他関係が表現できないとちょっと残念な点がありました。まあ、ノートとかで補えばいいのですが。