# JUDE API 利用ガイド

2008年09月30日
株式会社　チェンジビジョン

## 【概要】

JUDE APIは、JUDEのモデルデータを活用するアプリケーションソフトウェアを開発するための Javaインターフェース群です。 本ドキュメントでは、JUDE APIを利用したアプリケーションの開発方法について説明します。

## 【使用許諾事項】

- JUDE APIの.jar形式ファイルであるjude-api.jarの再配布を禁止します。
- その他のJUDE API使用上の許諾事項は、「JUDE使用許諾契約書」に準じます。

## 【JUDE API利用要件】

JUDE APIを利用したアプリケーションソフトウェアを実行するには、JUDEを実行できる環境が必要です。

- JUDEを実行可能なJava実行環境
- JUDEソフトウェア本体がインストールされていること
  - アプリケーションのコンパイルには、jude-api.jarが必要
  - アプリケーションの実行には、jude-api.jarと、jude-pro.jarもしくはjude-community.jarが必要
  - 実行時に大きなJUDEプロジェクトファイルを扱う場合は、Java VMのメモリ管理オプション設定が必要
    （VMの起動オプションとしての初期ヒープサイズ16Mバイト、最大ヒープサイズ256Mバイト、 スタックサイズ2Mバイトを指定する例）
    -Xms16m -Xmx256m -Xss2m
- JUDE/APIでサポートしている機能

- JUDE/Communityは、JUDE APIの取得機能をサポートしています。
- JUDE/Professionalは、JUDE APIの取得・作成・編集機能をサポートしています。(ご利用になるにはJUDE/Professionalライセンスが必要です。)

## 【注意事項】

- JUDE APIで開けるプロジェクトは、同時に１つのみです。複数のプロジェクトを処理する場合は、 元のプロジェクトを閉じてから開くようにお願いいたします。
- JUDE APIは複数スレッドからの同時アクセスに対応しておりません。複数スレッドから利用さ れる場合は、アプリケーション側で何らかの排他制御をお願いいたします。
- ProjectAccessor.open(String projectName)でプロジェクトファイルを開く場合、指定したプロジェクトファイルがロックされているとエラーが発生します。 その場合は、すでに開いているプロジェクトファイルを閉じてAPIを実行します。または、JUDE APIで以下のメソッドで読み込み専用モードの指定をしてプロジェクトファイルを開くことができます。 (引数 allowReadOnly にtrueを指定します。)
  ProjectAccessor.open(String projectName, boolean isIgnoreModelVersion, boolean lockMode, boolean allowReadOnly)

## 【機能】

JUDE APIを用いることにより、JUDEのモデル要素を作成・編集・取得して、アプリケーションソフトウェア上で 利用することができます。
現在、モデル要素の参照は、クラス図、ユースケース図、ステートマシン図、アクティビティ図、シーケンス図、フローチャート図、 ER図、DFD、CRUD、マインドマップでサポートしています。　モデル要素の作成、編集はクラス図、 ユースケース図、ER図、マインドマップでサポートしています。

## 【JUDE API仕様】

JUDE APIのJavaDocをご覧ください。

## 【JUDE API使い方・サンプル】

1. モデル情報の取得方法
2. モデルの作成方法
3. モデルの編集方法
4. プロジェクトの言語情報
5. XMI入出力
6. 参照プロジェクトの追加、更新、削除
7. 簡単マージ
8. サンプルアプリケーションの説明
9. 対応モデル一覧

## 【モデル要素に関する補足事項】

#### UMLのメタモデルとの違いについて

JUDE API自身のクラス構造は、UMLメタモデルの継承構造とは異なる部分があります。
UMLメタモデルの継承構造から、実際にモデル要素としてインスタンス化されることのない 抽象的なモデル要素の一部を継承ツリーから省いて、簡素化した構造になっています。

#### アイコン形状を持つクラス要素

アクター、インターフェース、バウンダリ、エンティティ、コントロールなど通常のクラスとして表記が可能な要素は、ステレオタイプを持つクラスです。 例えば、アクターは"actor"、インターフェースは "interface"というステレオタイプを持つクラスになります。

#### タグ付き値(ITaggedValue)について

JUDEでは、タグ付き値を属性やロール名の派生情報やユースケース記述の表現などに用います。

Copyright(C) 2008 Change Vision, Inc. All rights reserved.