Kodougu にオブジェクト図を追加しました。Firefox の悲しい仕様(バグじゃなさげ)により、一時は実装を絶望視していましたが、何とか気合と根性で実現しました。

続きを読む

Posted by あかさた
私のはてなダイアリーではアナウンスしましたが、はてななどのサービスに Kodougu を組み込むために Google ガジェットとして Kodougu を公開しました。

はてなへの組み込み方は以下を参照してください。
http://www.kodougu.net/p/kodougu/wiki/show/Manual/Open

Posted by あかさた
Kodougu のロゴは Dycoon 氏に作っていただいたものです。

経緯を紹介すると、中間成果報告会直前(4 月下旬)に「報告会のプレゼンで使うから、急いで作れ! ロハで作れ! いい物を作れ!!」というむちゃくちゃな要求に対して、以下のようなすばらしいロゴを作っていただきました。ありがとうございました。

1187531237_banner.png

Dycoon 氏の日記でロゴの紹介がされています。ぜひご覧ください。

Dycoonの日記 - Kodougu Logo
http://d.hatena.ne.jp/Dycoon/20070819

Posted by あかさた
ついに来ました。未踏の成果報告会です。私も「Web上で動作するモデリング環境 Kodougu の開発」というテーマで発表します。皆様、ふるってご参加ください。

日時:2008/9/7(金)10:00 - 18:00
場所:東京工業大学大岡山地区西9号館1階デジタル多目的ホール

詳しくは以下のサイトをご参照ください。

未踏ソフトウェア創造事業2006年度下期
千葉 PM 採択プロジェクト最終成果報告会
http://www.mitou-chiba.org/

■ 関連記事
未踏成果報告会にオブジェクトの広場が緊急参戦!(予告編)
http://www.ogis-ri.co.jp/otc/hiroba/Report/Mito200709/announce.html

Posted by あかさた
pukiwiki に Kodougu を組み込む」の続きです。SourceForge.net 経由で pukiwiki プラグインの修正版が投稿されました。少し使い方が変わっているので、注意してください。

Kodougu の pukiwiki プラグインソースコード置き場

上記プラグインをインストールした後、以前はプラグインのコードを書き換えていたのですが、現在は設定ファイルを書き換えるようになっています。pukiwiki インストールフォルダ直下の pukiwiki.ini.php に以下を追加してください。(私は、9 行目の「// PukiWiki main setting file」というコメントの直後に書いています。)

username は、ご自身の ID に変更してください。(現在は変更しなくても動きますが、これはバグです。)
/////////////////////////////////////////////////
// Kodougu settings
define('PLUGIN_KODOUGU_SERVER', 
    'http://www.kodougu.net/u/username/diagram/tool/');

より良いコードが投稿されるのはオープンソースの良いところですね。ありがたいことです。安定動作するようになったら、pukiwiki の公式サイトに投稿する予定です。

Posted by あかさた
今日は Kodougupukiwiki に組み込む方法を紹介します。

(1) pukiwiki プラグインをダウンロードする
以下からダウンロードしてください。
http://kodougu.svn.sourceforge.net/viewvc/kodougu/trunk/tools/pertners/pukiwiki/kodougu.inc.php?view=markup

(2) プラグインを pukiwiki にインストールする
上記 php ファイルを plugin フォルダにコピーします。

(3) wiki ページに以下のように書き込む
#kodougu(/u/username/diagram/tool/<>)

引数には、あなたの図の URL を入れてください。

セキュリティなどを考慮していないので、JavaScript などを埋め込めてしまうかもしれません。(いわゆる XSS 脆弱性。)編集制限をかけている pukiwiki で使用するか、公開で使用する場合は、以下の手順でプラグインを書き換えてください。

○ iframe の src にユーザー情報を含めて、引数を数字のみにする

現在(8 ~ 9行目):
if ($id != '') {
    return '



Metaelement のインスタンスは、UML でいうところの Class, Usecase などです。Metaattribute は値型の属性(整数や文字列)、Metareference は参照型の属性を表します。Metaattribute の例は Class 名です。Metareference は、Package が複数の Class を持つような場合を表現するために利用します。

Metanode はそのモデルの表記を表現します。多重度が複数になっているのは、一つの Metaelement が複数の表記を持っている場合があるからです。たとえば、UML のインタフェースには、ロリポップと分類子表記(矩形表記)があります。

うーん、まだまだ表現能力不足です。

Posted by あかさた
Kodougu をアップロードしました。といっても、機能的にはあまり変わっていませんが、登録したユーザーは自分のモデル/図を作成できるようになっています。チュートリアルにはその手順が載っているので、参照してください。(記述の不備、動作不具合につきましてはぜひお知らせください。)

【更新内容】
(1) この記事で報告されたバグを修正
(2) 図の公開/非公開機能を追加
(3) Kodougu のチュートリアル(日本語版)を作成しました。

バグ等ありましたら、当面はこの記事のコメントによろしくお願いします。(そろそろ BTS を立ち上げたいところですが、どうしたものか・・・。スパムに強くて敷居の低い BTS があると非常にうれしいのですが。。。)

Posted by あかさた
Kodougu の機能を追加し、サーバーにアップロードしました。ぜひ、いろいろといじってみてください。

新機能・改善項目一覧
(1) 属性、操作を編集可能にした。
(2) パッケージを追加した。ただし、パッケージの中に要素を追加する機能は追加していない。
(3) 図上の要素のサイズ変更をできるようにした
(4) キャッシュの適用で図の読み込みが軽くなった
(5) 図のサイズを可変にした(Firefox)

最新の Kodougu(IE/Firefox で動作。Firefox 推奨。)


既知のバグ
(1) 属性、操作の追加、編集が図に反映されないことがある
回避策:クラス名を変更すると反映される
原因:描画情報のキャッシュが、属性、操作編集時に消去されない
状態:解決(2007/7/19)

(2) 図を表示したときに関係線がずれて描画される
回避策:図上の要素を少し移動すると、再描画されて正しい位置に表示されるようになる
原因:関係線は要素の中心と中心の間に引かれるが、中心点の計算時に要素のサイズ変更を反映しないことがある
状態:解決(2007/7/19)※ ただし、図の読み込みが少し遅くなる副作用があるため、改善中。

(3) 属性、操作編集のユーザビリティ(画面遷移)が非常に悪い
がんばって修正します。。。
状態:改善(2007/7/19)

バグ報告等は当面はこのブログのコメントにお願いします。

■ 2007/7/17 22:59 追記
バグ報告を追記します。

(4) IE で、他のユーザーが図上で操作を行うと、スクロールバーが初期位置に戻ってしまう(Firefox では発生しない。)
回避策:なし
原因:図の再描画時に図のサイズが小さくなり、スクロールバーが消えてしまうため。
状態:解決(2007/7/19)

Posted by あかさた
最近は、Kodougu のモデリング言語設計機能の、多重度が多のメタ属性に関する実装を行っています。ちょっとわかりにくいですが、UML のクラス図に登場する属性や操作を実現するための構造を作っているという感じです。

スクリーンショット(単なる画像です。)
1183706851_20070706.png

なぜか、属性が中央寄せになってる! orz

こういうのは、普通のモデリング言語として実装する場合は簡単なのですが、メタモデリング言語として実装しようと思うと、いろいろと難しくなります。主に表記の自由度に関する難しさで、メタモデル上は多重度多のメタ属性として表現できても、パッケージに含まれるクラスや、クラスに含まれる属性や操作のように、メタモデル的には似たような構造でも表記はまったく異なる場合があります。モデリング言語設計機能の開発には、極力このような自由度を保持しつつ、実装が複雑にならないよう気をつけて実装しなくてはなりません。

・・・愚痴モードですが。(^^;

再来週くらいにはこの実装をアップロードしたいところですが・・・。

Posted by あかさた