# JUDE API User Guide

May 30, 2008
Change Vision, Inc.

## [What's JUDE API]

JUDE API is a Java Interface Group for developing applications software using JUDE model data.
This document will explain how to develop applications using the JUDE API.

## [Permission to Use]

- Do not redistribute jude-api.jar that is .jar format file of JUDE API.
- You must accept [JUDE END-USER LICENSE AGREEMENT] to use JUDE API.

## [JUDE API System Requirements]

The system environments that enable JUDE to run are required to run applications software using JUDE API.

- Ensure that an appropriate version of Java is installed to run JUDE.
- JUDE software needs to be installed.
  - jude-api.jar is required for application compilation.
  - Both of jude-api.jar and jude-pro.jar (jude-community.jar) are required for execution of applications.
  - Optional JAVA VM memory management setup is needed when the size of your JUDE project file is large.
    (Example of set up for VM Startup Option as initial heap size 16MB, maximum heap size 256MB and stack size 2MB)
    -Xms16m -Xmx256m -Xss2m
- Supported functions in JUDE API
  - Reference function is supported in JUDE/Community.
  - Reference, create and edit functions are supported in JUDE/Professional (JUDE/Professional license is required).

## [Notes]

- Multi-threading of JUDE API is not supported.
- When opening a project file in JUDE API, an error may occur due to the file lock (ProjectAccessor.open(String projectName)). In this case, please close the project file which may be opened in JUDE, then open it by JUDE API again. Or, you can specify the read only mode to open the project file in JUDE API.
  To open a project file with the read only mode, please use the following method (Set true to allowReadOnly).
  ProjectAccessor.open(String projectName, boolean isIgnoreModelVersion, boolean lockMode, boolean allowReadOnly)

## [Features]

JUDE API enables you to obtain JUDE model elements and use them on applications software.
The reference of model elements used in Class Diagrams and UseCase Diagrams, Statemachine Diagrams, Activity Diagrams, Sequence Diagrams, Flowchart, Mind Map, CRUDs, Data Flow Diagrams (DFDs), are currently supported.

## [JUDE API Javadoc]

Please refer to JUDE API JavaDoc for details.

## [How to use JUDE API and Sample Application]

1. How to get Model Information
2. How to create models
3. How to edit models
4. Programming Language Information for Project
5. Import/Export XMI
6. Add, Update and Delete Reference Project
7. Easy Merge
8. Sample Applications
9. Supported Models

## [Additional information about Model elements]

#### What is the difference between UML metamodel and JUDE API?

A part of the class structure of JUDE API is different from the one of UML metamodel. JUDE API has a simplified structure. Some of abstract model elements in the UML metamodel inheritance structure are eliminated because they would never be instantiated as model elements.

#### Class elements contain Icon Notations

Those elements that can be shown as normal class notations such as Actor, Interface, Boundary, Entity, Control are classes that have stereotypes. For example, Actor is a class that has a stereotype of "Actor", and Interface is a class that has a stereotype of "Interface".

#### About TaggedValue(ITaggedValue)

JUDE uses TaggedValus for derived information of Attributes and Role names, and expressions about UseCase descriptions.

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