BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GenMyModel: リアルタイムコラボレーションの可能なオンラインUML設計ツール

GenMyModel: リアルタイムコラボレーションの可能なオンラインUML設計ツール

原文(投稿日:2013/11/14)へのリンク

この記事では,GenMyModelのアーキテクチャ,使用するテクノロジ,将来についてのインタビューを紹介する。

GenMyModelは,UMLを使用したモデル設計とJava, Spring, SQLコードの生成を共同で作業するためのオンラインツールである。UML2メタモデルを使って構築されるモデルはSVGやJPEG, PDF, あるいはUML/XMIフォーマットでエクスポートすることができる。現時点ではクラス図とユースケース図のみだが,その他 – アクティビティ図とシーケンス図 – についても,近い将来に追加される予定だ。GitHubとも結合されている。

GenMyModelに先頃,オンラインコラボレーションのサポートが追加されて,複数のユーザが同じモデル上で,同時に作業を行うことが可能になった。このツールのアーキテクチャ,使用しているテクノロジ,その将来について知るため,今回我々は,同社共同創立者でCTOのThomas Legrand氏,そして同じく共同創設者で事業開発責任者のStéphane Deveaux氏から話を聞いた。

InfoQ: GenMyModelにはどのような技術が使われているのでしょうか?

主要部分については,JavaとGoogle Web Toolkitを使って開発しています。フロントエンドはGWTと,部分的にHTML5で書かれています。バックエンドはJ2EEアプリケーションです。中核のモデリングモジュールには,GWTを利用した独自実装のUMLを開発しました。サーバ側ではSQLベースの専用ストレージシステムを使って,モデル情報を更新履歴と合わせて保存しています。このモデルリポジトリを,クラウド上の複数のサーバにホストとバックアップを行っているのです。
エクスポート機能用には,テンプレートベースのコードジェネレータに加えて,モデルからモデルへの変換処理の開発と実行を行うために,フレキシブルなフレームワークを設計しました。あとはツールキットですね。チームメンバが皆それぞれ,自分だけの秘密の箱を持っているのです!とはいっても,実際にはEclipseと,あとはCodenvyのようなオンラインIDEで80%を占めています。バグトラッカとアジャイルプロジェクトマネージャシステムには,magic JIRAをベースにしたものを使っています。その他には,継続的テストとデリバリプロセスの管理に,Jenkinsと一部でSonarを使用しています。

InfoQ: コラボレーション作業についてはどうですか?ダイアグラムの同期はどのような仕組みで行っているのでしょう?

ずっと以前から,開発者たちはソフトウェアアーキテクチャを共同設計する方法を求めていました。このエキサイティングなエクスペリエンスを数百万という方々に提供することができて,とてもうれしく思っています。設計をシェアしたい人のメールアドレスを入力する,ただそれだけでいいのです - 同じモデル要素の編集,移動,削除が,すべてリアルタイムで実行できます。ダイアグラム(目に見える部分)とモデル(その背景にあるもの)の変更はすべてリアルタイムに反映されますし,通常の共同編集ツールとは違って,UML準拠性も常に保証されています。共同作業中いつでも,イメージやレポート,コードの生成ができます。エンドユーザ同士で干渉を解決する必要や,ロック・アンロックによる障害は一切ありません。チャットボックスを使って,モデルの進行についてチームメイトと対話することもできます。これらを実現する上で重要なのが,ダイアグラムと構造モデルの両方をサーバ上で同期していることです。私たちのメカニズムでは,UML準拠にモデル情報,同期されたダイアグラムを,いつでも取り出すことができるようになっています。これらすべてがモデルリポジトリに格納されていますので,タグやノートを添付したリビジョンヒストリも近々実現できると思います。

InfoQ: JavaとSQL以外の言語をサポートする予定はありますか?

もちろんです。とても楽しみですね!PHP, JavaScript, C#, C++ ... さまざまな複雑さのレベルの言語やフレームワークを幅広くサポートする用意はもうできています。何百万という人々の期待にマッチするようなターゲットを,たくさん見つけ出したいですね!そうなると問題になるのが,時間と優先順位です。そのために,ユーザ自身のジェネレータをアップロードできるようにしました。私たちは旧態依然としたMDAツールを信奉してはいません。ほとんどが,柔軟性を欠いたジェネレータでユーザの要求に対処しようとしているからです。Java,あるいはGenMyModelの提供するどのジェネレータでもいいのですが,もしコンストラクタの生成に不足があると思ったとしても,大した問題ではない,"テンプレートを用意しましたから,ご自身でどうぞ" – そう言えるようにしたいのです。2014年中に達成したいと思っています。開発への参加は大歓迎です。

InfoQ: 正式リリースはいつ頃を予定していますか?

2014年第2四半期ですが,急いではいません。毎週数千人というITエンジニアが,新たにベータ版を入手して使用しています。その作業の中から,貴重なフィードバックが得られています。私たちは開発初期から,このようなやり方 - 要望を教えてください,実現に向けてトライします - を続けてきました。リアルタイム・コラボレーションもそのような中から生まれたのです。ユーザとの距離が近ければ近いほど,私たちの提案の価値も大きくなります。当面の目標は,UMLのスコープを他のダイアグラム(シーケンス図,アクティビティ図など)にも拡張すること,リバースエンジニアリングへの展開を準備すること,この2つです。これらの機能の設計には多くの支援が必要なのですが,現時点で有償化を計画することは,その障害になると考えています。
その一方で,ユーザや企業からのプロフェッショナル版の提供を求める声が増えているのも事実です。今のところは,すべての質問を調べて,ケースバイケースで回答するようにしています。

InfoQ: 現時点で何らかの料金プランはありますか?

詳細を話すには時期尚早,というのが正直なところですね。現在のベータ版は,共同プロジェクトかプライベートプロジェクトかを問わず,無償で提供しています。プライベートプロジェクト数の制限については,Eメールで応募する方式を採用しています。これまでのフィードバックを基にして,すべての人たちにとって最適な価格プランを作りたいと思っています。
ただし,強調しておきたい重要なポイントが3つあります:
– 私たちはオープンソースを支持しています。ですからGenMyModelは,今後も公開プロジェクトとしておくつもりです。このことは,ソフトウェアモデリングが新たな時代に入ったことの象徴でもあります。公開プロジェクトは常にフリーであるべきです。
– プライベートプロジェクトへの導入障壁を低くするために,個人向けの製品価格は低くします(10ドル以内)。
– 企業向けのプロフェッショナルサービスを追加します(1ヶ月50~150ドル)。

InfoQ: ロードマップにはその他に,どのような機能があるのでしょうか?

対応を予定しているものを,ざっとまとめてみましょう:
- ダイアグラムの追加:アクティビティ,シーケンス
- コードジェネレータの追加: ユーザによるアップロード
- バージョンコントロール管理
- Gitリポジトリからのリバースエンジニアリング,まずはJavaから
他にも追加する予定ですし,ロードマップ自体,まだ検討の余地があります。改良のアイデアやリクエストは,UserVoiceチャネルで誰でもポストできます:http://genmymodel.uservoice.com

 

この記事に星をつける

おすすめ度
スタイル

BT