モデルコンパイラSimpleModeler 0.4.0をリリースしました。
マインドマップ(XMind)、SmartDox DSL、CSVからクラス図とJavaプログラムを生成する機能が実用フェーズとなっています。
最近拡張した文法が動作します。
それそろ安定してきたのでバージョン0.4.0とします。
機能
Simplemodeler 0.4.0では以下のオプションを提供しています。
オプション | 機能 | 状況 |
---|---|---|
project | プロジェクト生成 | α |
import | モデル移入 | α |
convert | モデル変換 | 試験的 |
html | 仕様書生成 | α |
java | Java生成 | |
android | Android生成 | α |
diagram | クラス図生成 | |
build | プロジェクトビルド | 試験的 |
gaej | Google App Engine Java生成 | 試験的 |
gae | Google App Engine Python生成 | 試験的 |
gaeo | Google App Engine Oil生成 | 削除予定 |
grails | Grails生成 | 試験的 |
g3 | g3生成 | 試験的 |
asakusa | Asakusa生成 | 試験的 |
基本的にはマインドマップ(XMind)、SmartDox DSLとCSVからクラス図とJavaプログラムを生成する処理が実用フェーズになっています。その他の機能はα版または試験的実装の状態です。
インストール
プログラムの配布は、Scala用のプログラム配布ツールconscriptを使っています。
conscriptをインストールした後、以下のようにしてSimpleModelerをインストールします。
$ cs asami/simplemodeler
以下のコマンドがインストールされます。
- sm
- SimpleModelerコマンド
$ sm -version Copyright(c) 2008-2012 ASAMI, Tomoharu. All rights reserved. SimpleModeler Version 0.4.0 (20121217)
graphviz
-diagramオプションでクラス図を生成する場合は、graphvizのインストールが必要です。graphvizのインストール方法は以下を参照してください。
各プラットフォーム向けパッケージ管理ツールでもインストールできるようです。
使い方
マニュアルはまだありません。以前のバージョン用のものがありますが、機能が色々変わってしまったので一から見直す予定です。
リファレンスマニュアルとユーザーガイドの元ネタをこのブログで随時書いていきます。
CSV
Mind(マインドマップ)、SmartDox DSL、CSVからクラス図を生成することができます。
以下のCSVファイルをsample.csvとして用意します。
#actor,base 顧客 個人顧客,顧客 法人顧客,顧客 #resource,attrs,powers 商品,商品名;定価(long),商品区分(第1類;第2類;第3類) #event,parts 購入する,顧客;商品
SimpleModelerを以下のように実行します。
$ sm -diagram sample.csv
以下のクラス図の画像が生成されます。
SmartDox
以下のSmartDoxファイルをsample.orgとして用意します。
#+title: Table SmartDox DSLを使って記述したモデルの サンプル文書です。 文書でサンプルモデルの定義をします。 本来は文書中の仕様記述の文書は 定義するモデルに対するものになります。 しかし、この文書ではSmartDox DSLの記述例として SmartDox DSL文法の説明を記述することにします。 * サンプル文書の目的 このサンプル文書は表を中心にしてクラス定義するサンプルです。 登場人物、道具、出来事の各エンティティの種別の下に 顧客、商品、購入といった具象エンティティを節として 定義します。 そして、それらの節の下に属性一覧または特性一覧として エンティティの属性や関連を記述していきます。 * 登場人物 ** 顧客 IDの指定はありませんが、以下のルールで推測しています。 - 陽にID指定がない場合、先頭の属性の属性名が「id」(大文字可)で終わる場合はIDとみなす。 #+caption: 属性一覧 | 名前 | 型 | カラム | SQL型 | |--------+--------+---------+--------------| | 顧客ID | token | ID | CHAR(16) | | 名前 | token | NAME | VARCHAR(64) | | 住所 | string | ADDRESS | VARCHAR(256) | * 道具 ** 商品 IDは、ID欄で指定しています。 #+caption: 属性一覧 | 名前 | 型 | ID | カラム | SQL型 | |--------+-------+----+--------+-------------| | 商品ID | token | ○ | ID | CHAR(16) | | 名前 | token | | NAME | VARCHAR(32) | | 定価 | money | | PRICE | LONG | * 出来事 ** 購入 IDは、特性欄で指定しています。 #+caption: 特性一覧 | 特性 | 名前 | 型 | 多重度 | 派生 | カラム | SQL型 | |------+--------+-------+--------+-------------+-------------+----------| | ID | 購入ID | token | | | ID | CHAR(16) | | 属性 | 日付 | date | | | DATE | DATE | | 関連 | 顧客 | 顧客 | 1 | | CUSTOMER_ID | CHAR(16) | | 属性 | 顧客名 | token | | 顧客.名前 | | | | 関連 | 商品 | 商品 | 1 | | GOOD_ID | CHAR(16) | | 属性 | 数量 | int | | | AMOUNT | INT | | 属性 | 商品名 | token | | 商品.名前 | | | | 属性 | 単価 | money | | 商品.定価 | | | | 属性 | 総額 | money | | 数量 * 単価 | | |
SimpleModelerを以下のように実行します。
$ sm -diagram sample.org
以下のクラス図の画像が生成されます。
0 件のコメント:
コメントを投稿