SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Judeのクラス図からActiveScaffoldのコードを自動生成する

Jude/LuRuJu/JRuby/ERBを用いたActiveScaffoldのソース自動生成プログラム

  • このエントリーをはてなブックマークに追加

Judeで作成したクラス図を元に、Ruby on Railsのプラグイン「ActiveScaffold」で必要なコーディングのソースを自動生成するツールを紹介します。

  • このエントリーをはてなブックマークに追加

はじめに

 このジェネレータはJudeで作成したクラス図の情報を取得し、それを元に、ActiveScaffoldで必要なコーディングのソースを自動生成することにより、ActiveScaffoldの環境構築を行えば、クラス図を書くだけでActiveScaffoldのアプリケーションを作成できるというツールです。

 早い話がクラス図を描いたら、とりあえずアプリケーションができますという話です。もちろん限定されたところにしか使えないと思いますが、JudeとRubyを活用してこんなに簡単にジェネレータが作れるというのを感じていただければ嬉しいです。

ジェネレータを使用するための環境設定

 最初にジェネレータを使用するに当たって、JRubyとLuRuJuというライブラリ、およびUMLツールのJudeのセットアップを行いましょう。

JRubyのセットアップ

 JRubyはRubyのJavaでの実装です。通常のRubyはC言語で作られていますが、JRubyはJava言語で実装されています。文法などは通常のRubyと一緒ですが、JRubyは本家のRubyより多少遅い代わりに、JavaのクラスをRubyから使用することができます。

 JRubyはJava言語の上で動作するので、Java言語をまずセットアップする必要があります。JDK 5.xをSunのサイトからダウンロードして、JDKのbinディレクトリにパスを通しましょう。パスを通したら、コマンドプロンプトで次のようなコマンドを入力し、

>java -version
java version "1.5.0_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b03)
Java HotSpot(TM) Client VM (build 1.5.0_09-b03, mixed mode, sharing)

 といった表示がでればOKです。筆者の環境では、上記のJDKで動作確認しましたが、古いバージョンのJDKを使いたい場合はアーカイブの方からダウンロードすればいいでしょう。

 次にJRubyのセットアップです。Sun Developer NetworkのダウンロードページからJRubyをダウンロードして、パスを通してください。

 下記のコマンドを打ってバージョン情報がでてくればセットアップOKです。

>jruby -v
ruby 1.8.5 (2007-11-01 rev 4810) [x86-jruby1.0.2]

 わたしの環境では上記のようになっています。JRuby 1.0.2を使用して評価しました。

Judeのセットアップ

 では次にJudeをインストールしましょう。Judeは日本で人気のある日本発のUMLモデリングツールです。操作性がよく、シンプルなので筆者も気に入っています。Judeに関しては詳細な手順がWebにあるのでそれに従ってインストールしてみてください。JudeのダウンロードページからCommunity Editionをダウンロードします。

 なお、バージョンはProfessional Editionでも構いませんし、インストール済みの方はこの手順は不要です。

 JudeにはJavaベースのJudeAPIというAPIが存在して、Javaで作成したダイヤグラムの内容を取得することができます。

LuRuJuのインストール

 しかし、JudeAPIを使ってダイヤグラムを引き抜くには、Javaのコードをたくさん書く必要があり面倒です。「LuRuJu」は、JudeAPIをラッピングし、JRubyから直接Judeで作成したダイヤグラムの内容を取得できるようにするツールです。

 インストールは簡単で、インターネットに接続した状態で、「JRuby\bin」のディレクトリに存在するgemを用いてインストールします。下記のgemコマンドは通常のRubyにも存在しますので、あなたがJRubyをインストールしたディレクトリを「%JRubyHome%」と表現するとすると、

>%JRubyHome%\bin\gem install luruju --source
 http://luruju.com/static/download/

 でインストールされます。インストールされた後に次のようにタイプし、

>%JRubyHome%\bin\gem list -l luruju

*** LOCAL GEMS ***

luruju (0.0.1)
    A library for coordinating with Ruby And JUDE.

 と表示されればOKです。最後に、Judeをインストールしたディレクトリにある「jude-api.jar」と「jude-community.jar」(professionalの場合は「jude-pro.jar」)にクラスパスを通せば設定完了です。

>cd "C:\Program Files\JUDE-Community"
>set CLASSPATH=C:\Program Files\JUDE-Community\jude-api.jar;
C:\Program Files\JUDE-Community\jude-community.jar

 LuRuJuのサイトにもあるとおり動作確認テストも可能です。

>jruby %JRubyHome%\lib\ruby\gems\1.8\gems
\luruju-0.0.1\test\jude_api_test.rb

Loaded suite %JRubyHome%\lib\...\test\jude_api_test
Started
..................
Finished in 5.838 seconds.

 上記のような結果が出てくれば動作テストもOKです。さて、LuRuJuのセットアップも完了しました。例えば、Judeで作成したクラスの名前をすべて取得するサンプルなら、

luruju_sample.rb
require "rubygems"
require "luruju"
require "kconv"
project = Luruju::JudeApiLoader.load
 "c:/rubysample/luruju/sample_j.jude"
project.classes.each{|clazz|
  puts Kconv::kconv(clazz.name, Kconv::SJIS, Kconv::UTF8)
  }

 で簡単に作成することができます。.loadの次には、読み込みたいJudeファイルを設定しておきます。ここでは「sample_j.jude」というJudeファイルを読み込んでいます。

 結果は下記のようになります。

従業員
部門
プロジェクト
A
B

 LuRuJuだとたったこれだけ済みますが、Jude-APIでJavaのコーディングを行うと、大量のコードを書く必要があります。あくまで、やりたいことをシンプルに書いていくだけで、

 Judeファイルの内容を取得することができます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
動作確認するための環境設定

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

牛尾 剛(ウシオ ツヨシ)

株式会社豆蔵 BS事業部 エンタープライズチーム。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/1929 2007/12/25 00:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング