No Bugs, No Life

読んだ本や、プログラミング、システム開発等のねたを中心に。文章を書く練習なので少し硬派に書くつもりだけど、どうなることやら。

AmaterasUMLの導入

MementoWeaver開発記(5)
ユースケース:「素材をインストールする」の処理を書きはじめる。
主に前回のコンポーネント図で言うところのInstall Processingのコンポーネントに相当する処理を実装する。

ここで行う主な処理は以下のような流れとなる。

  1. 素材ソース、ステージングエリアのパスをチェック
  2. ファイルリストの取得。.jpeg, .jpg, .mov を対象とする(大文字小文字は無視)
  3. 素材ソース内のファイル毎に以下繰り返し
    1. ファイルの最終更新時刻を取得
    2. ステージングエリアにファイル名を変更してコピー
    3. DerivationManagerに派生ファイルの作成を要求
    4. PersistenceManagerにインストール状況の登録を要求
  4. 次の画面に遷移

以下、気付いた点や追加で実施したことや感想などを雑多に列挙。

Java SE 7におけるjava.nio.file.Files

Java 7からnioにFilesクラスが導入され、ファイルの扱いがとても便利になった。
今までのJavaではファイルコピーするにも自分でChannelを作成するなどしなければならないとか、ある意味とてもクラス主義的で教条主義臭かったところが改善され、EoDの向上を実現していると思う。
上記のファイルコピーならば、Files.copy(Path src, Path target)で出来てしまう*1

APIFiles (Java Platform SE 7 )を参照。
あと、Javaメモ目次(Hishidama's Java Memo)Javaで開発するときには毎回お世話になっているページだが、知りたいことが簡潔にまとめられていて何時も助かっています。ありがとうございます。

UMLプラグインの追加

概要としてのデザインを示すのであればSoftware Ideas Modelerによるお絵描きで良いが、やはり開発を始めると、より細粒度のクラス図程度は欲しくなってきた。
EclipseのAvailable SoftwareからJunoリポジトリを漁ってみたが、めぼしいUMLプラグインを発見出来なかったので、AmaterasUML(AmaterasUML - Project Amateras)の導入を試みる。

AmaterasUMLのダウンロード

AmaterasUML - Project Amaterasからzipファイルをダウンロードする。

GEFの導入

EclipseのJunoリポジトリから、GEFを導入。
f:id:kazyury:20130302104116p:plain
インストールが完了するとEclipseの再起動を促されるのでおとなしく従う。

AmaterasUMLのインストール

ダウンロードしたAmaterasUMLのzipファイルをEclipseのdropinディレクトリにコピーしてEclipseを起動。
導入したjarは以下のとおり。

  • net.java.amateras.umleditor.java_1.3.4.jar
  • net.java.amateras.umleditor_1.3.4.jar
  • net.java.amateras.xstream_1.3.4.jar
AmaterasUMLクラス図ファイルの作成

EclipseからFile->New->AmaterasUML->クラス図
f:id:kazyury:20130302110757p:plain
f:id:kazyury:20130302110848p:plain

作成されたクラス図に*.javaDnDで落として、若干見栄えを調整して完成。
フリーのツールとしては満足できる品質だと思う。開発者の方に感謝します。
f:id:kazyury:20130302111549j:plain
レイアウト以外で微調整したのは以下の点。

  • デフォルトで全可視性を描画するので、private属性とprivate操作を非可視に。
  • 依存関係は描画してくれないっぽいので、手で依存関係(<>)を引く。
  • クラス名がFQCNで表示してくれるが、一寸横に長くなってしまうので基底名のみに修正。

次回はPersistenceを実装する。

*1:rubyならFileUtils.copy(src,dest)に相当