2009年2月22日日曜日

SimpleModeler 0.1.2リリース

SimpleModeler 0.1.2をリリースしました。

===

Scala DSLを用いたモデルコンパイラSimpleModeler 0.1.2をリリースしました。 

今回の目玉機能は: 
- CSVの移入 
- マインドマップ・モデルの移入(XMind形式) 
- CSVからマインドマップ・モデルへの変換です。 

その他、SimpleModelerの機能は以下の通りです。 
-javaオプション:Javaソースコード生成 
-htmlオプション:Web仕様書生成 
-grailsオプション:Grails POGO(Plain Old Grails Object)生成 

ダウンロードは以下の場所から。 
http://code.google.com/p/simplemodeler/downloads/list 

日々の開発の様子は以下の日記にて。 
http://simplemodeler.blogspot.com/ 

インストール方法はこちらを参照してください。
 http://groups.google.co.jp/group/simplemodelingsemi/web/simplemodeler

2009年2月21日土曜日

ユーザーガイド作成中

ただいまユーザーガイド作成中。現在35ページ。

例題を作りながらCSVからの移入がなかなか便利なのを実感。Excelからの移入も便利そうなので作ろうと思う。

GrailsはMavenと統合したらしい。
SimpleModelerのリポジトリはMavenプロジェクトなので、この統合は都合がよい。
近いうちにSimpleModelerのgrailsサービス(grails生成器)を、Grails on Mavenに対応させたい。

2009年2月18日水曜日

ユーザーガイド

クラウド関係の原稿を書いていたので開発は小休止というところ。
いずれSimpleModelerにもクラウド向けの機能を入れたい。

原稿が一段落したので、ユーザーガイドの作成を開始。

2009年2月10日火曜日

Annotated CSV

日曜日にSimpleModeler 0.1.2bを公開。


日曜日のSimpleModeling勉強会のデモで使用した版である。
昨日(月曜)にブログでも公開。

SimpleModelerが取り込めるCSVは、ボクがこの目的で作ったAnnotated CSVという形式のCSVを入力ファイルとする。

たとえばSimpleModelerに用語を移入するための最小のCSVは以下のように用語を並べたものである。(なお、上記の版ではバグで動かない。(汗))

---
customer
clerk
goods
buy
---

Annotated CSV(以下ACSV)では、先頭に#をつけた行で注記(annotation)を入れていく。注記は、新たな注記があるまで有効となる。

上記のCSVに注記を入れてみる。
---
#actor
customer
clerk
#resource
goods
#event
buy
---

このACSVは、customerとclerkがactor(登場人物)、goodsがresource(道具)、buyがevent(出来事)であることを定義している。(このACSVと次のACSVは上記の版のSimpleModelerで動作する。)

ACSVでは、複数カラムに対する注記も行うことができる。

---
#actor,term_ja,caption,brief,description,parts,base,tableName
customer,顧客,customer's caption,customer's brief,customer's description,,,CUSTOMER
clerk,店員,clerk's caption,clerk's brief,customer's description,,,CLERK
#resource
goods,商品,goods's caption,goods's brief,customer's description,,,GOODS
#event
transaction,取引,buy's caption,buy's brief,customer's description,customer;clerk,,,TRANSACTION
buy,購入,buy's caption,buy's brief,customer's description,goods,transaction,BUY
---

このACSVでは、先頭行の注記によって、第1カラム:アクター名、第2カラム:日本語用語、第3カラム:見出し、第4カラム:摘要、第5カラム:記述、第6カラム:部品、第7カラム:基底クラス、第8カラム:テーブル名であることを定義している。
2行目と3行目はこの定義が適用されるので、それぞれ以下の意味となる。
[2行目]
アクター名:customer
日本語用語:顧客
見出し:customer's caption
摘要:customer's brief
記述:customer's description
部品:N/A
基底クラス:N/A
テーブル名:CUSTOMER
[3行目]
アクター名:clerk
日本語用語:店員
見出し:clerk's caption
摘要:clerk's brief
記述:clerk's description
部品:N/A
基底クラス:N/A
テーブル名:CLERK

ACSVでは、注記を追加することができる。
4行目では「#resource」という注記行であるが、これは第1カラムのみ「resource」とし、第2カラム以降は以前の設定を引き継ぐ、という定義となる。
このため、第5行目は以下の意味を持つことになる。

[3行目]
リソース名:goods
日本語用語:商品
見出し:goods's caption
摘要:goods's brief
記述:goods's description
部品:N/A
基底クラス:N/A
テーブル名:GOODS

以上のようにACSVを用いれば、構造を持ったデータを必要な情報のみを記述して定義することができる。
SimpleModelerでは、このACSVを用いてデータの移入を行うことができるので、初期データの構築などを効率よく行うことができると考えている。

2009年2月7日土曜日

CSVからMindmapへの変換

開発中だったCSVとMindmap(XMind)の移入機能が一応動作。
CSVからMindmap(XMind)への変換も動作するようになった。

ここまでの作業で、CSV→Mindmap(XMind)→Scala DSL→Grailsのパスが通った。
つまり:
  1. CSV形式で用語集などを用意
  2. Mindmap(XMind)に変換
  3. Mindmap(XMind)で大枠のモデルを作成
  4. SimpleModelプロジェクトの足場を生成
  5. Scala DSLに移入
  6. Scala DSLでモデルを編集
  7. Web仕様書を生成し仕様を確認
  8. Grailsの足場を生成
  9. Grailsのドメイン・モデルを生成
  10. Grailsで開発
といった手順で開発の一連の手順が繋がったわけである。
またまだデモレベルだけれど、この土台の上で機能を充実させていく予定である。

2009年2月2日月曜日

CSV、マインドマップの移入

先週からCSVとマインドマップの移入機能を開発中。
CSVからScala DSL、XMindからScala DSLへの基本的な移入を行えるようになった。

CSVで用語の一覧表、XMindでマインドマップモデルを作成し、ここからScala DSLに移入。
Scala DSLを編集してモデリング。最後にGrailsのプログラムを生成。
といった開発ができるようになる。

XMindは、XMLや画像ファイルをZipで固めたファイルフォーマットになっているので、マインドマップ情報を操作するのにXMLプログラミングが必要となる。
Relaxerを使ってもよかったのだけれど、今回はScalaのXML機能を試してみた。
これが、なかなか良くできて便利。Scalaは基本機能として木構造を扱うのにとても便利な言語だけれど、XML用文法を最初から持っているため、両機能の相乗効果でXMLの操作がとても楽にできるのである。
Scalaは使っていて日々便利さを実感している。ただ、文法が難しいのでJavaのように一般的になるような感じでもなさそう。SimpleModelerのようなモデル・コンパイラ作成といった分野向け言語ということになるかも。