Apollo for Eclipse : User Guide - Gentleware

59
Apollo for Eclipse User Guide

Transcript of Apollo for Eclipse : User Guide - Gentleware

Page 1: Apollo for Eclipse : User Guide - Gentleware

Apollo for Eclipse

User Guide

Page 2: Apollo for Eclipse : User Guide - Gentleware

Apollo for Eclipse: User GuideCopyright © 2007 Gentleware AG

Page 3: Apollo for Eclipse : User Guide - Gentleware
Page 4: Apollo for Eclipse : User Guide - Gentleware

iv

Table of Contents1. About Gentleware and Apollo for Eclipse ........................................................................... 1

About Gentleware and Apollo for Eclipse ....................................................................... 1Contact ............................................................................................................. 1

Features in Version 3.x ............................................................................................... 2About This Document ................................................................................................. 2

2. Installation and First Start ................................................................................................ 3Prerequisites .............................................................................................................. 3Installing the Rich Client Platform ................................................................................ 3Installing as an Eclipse Extension .................................................................................. 3

Install Eclipse Components through Update Services ................................................. 3Eclipse Europa ................................................................................................... 6Install Eclipse Components Manually ................................................................... 11

Troubleshooting ........................................................................................................ 123. Keys and Registration .................................................................................................... 17

Types and Terminology ............................................................................................. 17License Manager ...................................................................................................... 17

License Manager Help ....................................................................................... 18Licensing Apollo for Eclipse ...................................................................................... 19

4. Getting Started .............................................................................................................. 23Diagrams in Apollo for Eclipse ................................................................................... 23

Canonical Package Diagrams .............................................................................. 23Non-Canonical Class Diagrams ........................................................................... 23

Models in Apollo for Eclipse ...................................................................................... 24Model File Storage ........................................................................................... 24

Create a First Project ................................................................................................. 255. Working with Apollo for Eclipse ..................................................................................... 29

The Diagrams .......................................................................................................... 29Display Canonical Package Diagram .................................................................... 29Create Non-Canonical Class Diagram ................................................................... 30Adding and Removing Elements .......................................................................... 32Navigation ....................................................................................................... 33Rapid Buttons .................................................................................................. 33Editing Elements .............................................................................................. 34Filtering .......................................................................................................... 37

Elements ................................................................................................................. 38Associations and Multi-Valued Attributes .............................................................. 38Referenced Packages ......................................................................................... 39

Open the Source Code in a Diagram Editor ................................................................... 39View the Source Code in the Diagram View .................................................................. 40

Linking Views and Editors ................................................................................. 42Create Java Source Code from the Diagram ................................................................... 43Reverse Engineer .jar Files ......................................................................................... 44

A. Glossary ..................................................................................................................... 45B. Hypersonic SQL Group Database Engine License Agreement ............................................... 53

Page 5: Apollo for Eclipse : User Guide - Gentleware

v

List of Tables2.1. Minimum Eclipse features required for Apollo for Eclipse .................................................. 115.1. ............................................................................................................................... 38

Page 6: Apollo for Eclipse : User Guide - Gentleware

1

Chapter 1. About Gentleware andApollo for EclipseAbout Gentleware and Apollo for Eclipse

ContactWe are always very happy to get feedback on our tools and services. If you want to contact us, there areseveral ways to get in touch.

Email

The easiest way to contact us is via the web form. We offer addresses for different purposes.

General information, feature requests, or suggestions:

http://www.gentleware.com/contact.html

Customer support (for license holders*):

Please keep in mind that our customer support is available during our normal working hours - Mondaythrough Friday, 9 am to 6 pm Central European Time. Consider checking the forums and the FAQ toanswer your question first.

http://www.gentleware.com/supportreq.html

Questions on purchase process, quotes, or volume sales:

[email protected] [mailto:[email protected]]

* Unlicensed edition users are encouraged to use our forum for support questions.

http://www.gentleware.com/fileadmin/forum.html

Web Site

For general discussion we have installed an open forum [http://www.gentleware.com/fileadmin/forum.html] in which users of Apollo for Eclipse can freely discuss topics related to our tools. Typicallythese are questions on how to do something, discussions on what other features would be nice, or commentson what people like or dislike about our tool. Our staff is actively taking part in these discussions, but youmight also get a response from other users.

To order our products you can use the online shop [http://www.gentleware.com/shop0.html], whichrequires a credit card. If you do not have a credit card or you hesitate to use it over the web, send us anemail at [email protected] [mailto:[email protected]].

Phone

Our preferred payment method is credit card. However, if you do not have a credit card or youhesitate to use it over the web, you can also send a fax, send email to [email protected][mailto:[email protected]] or call us.

There is a fax order sheet provided on our web site. Begin the order process as usual, then select 'Order byFax' at the bottom of the Checkout page. Our fax number is +49 40 2442 5331.

Page 7: Apollo for Eclipse : User Guide - Gentleware

About Gentleware andApollo for Eclipse

2

Please try to find an answer to your question on our web pages [http://www.gentleware.com/support.html]or the FAQ list [http://www.gentleware.com/faq.html].

Regular Mail

To send us mail or to visit us in person, our address is:

Gentleware AG Ludwigstraße 12 20357 Hamburg Germany

Features in Version 3.xFeature list includes:

• Forward, reverse, and roundtrip engineering

• Support for Java 5

• Support for UML 2.1

• Superior class diagram handling

• Available as a standalone RCP or as an extension to Eclipse

• GMF 2.0 and Eclipse 3.3

• Array dimension support for attributes

• Configurable location of model files

About This DocumentThis document describes Apollo for Eclipse and how to use it. It is intended as a user guide. It is not abook about UML, Java, or Eclipse. Basic knowledge about UML, Java, and Eclipse is assumed.

We are working hard to make Apollo for Eclipse as intuitive as possible. You should be able to open upApollo for Eclipse and start using it without looking into this documentation. However, you will find ituseful to read through this document to get you up to speed faster and discover useful features earlier.

Page 8: Apollo for Eclipse : User Guide - Gentleware

3

Chapter 2. Installation and First Start

PrerequisitesApollo for Eclipse is platform-independent. It runs on almost any modern personal computer. Tosuccessfully start and run Apollo for Eclipse, you need the following:

• J2SE 5.0 Java Runtime Environment

• A computer with reasonable memory and CPU power. For memory, 512 MB is recommended, more ishelpful. For CPU, a Pentium III or equivalent is the recommended minimum.

Installing the Rich Client PlatformThe easiest way to get started with Apollo for Eclipse is to use the Rich Client Platform (RCP). Downloadthe RCP zip file (e.g. for Windows: Apollo_RCP_3.0.0_win32.win32.x86.zip) from theGentleware web site, unpack the file to the desired directory, and run Apollo for UML from this directory.

Installing as an Eclipse ExtensionApollo for Eclipse may also be added as an extension to the Eclipse IDE. It requires some features to beinstalled to Eclipse in addition to the Apollo for Eclipse extension. The simplest way to do this is usingEclipse Europa, although you may also choose to install each part manually.

Additionally, you will need to consult the Eclipse documentation for the prerequisites that match yourusage scenario and computer setup. The exact list of requirements for running Apollo for Eclipse as anextension can be found later in the section the section called “Install Eclipse Components Manually”.

Install Eclipse Components through Update ServicesThis is the standard Eclipse way of installing features, and is also an easy way to complete the installation.Gentleware recommends using this method of installation.

1. If it is not already installed, install the Eclipse SDK 3.3.x (the current version as of the publication ofthis document is 3.3.0).

Page 9: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

4

2. Start Eclipse. From the Help menu, select Software Updates -> Find and Install...

3. Select 'Search for new features to install' and click 'Next'.

4. If it does not appear already, add the Apollo for Eclipse Update Site as a New Remote Site:

-> New Remote Site-> Name = "Apollo for Eclipse Update Site"-> URL = "http://apollo.gentleware.com/updatesite/"

5. There are 5 different versions of Eclipse 3.3 Europa: Eclipse IDE for Java Developers, Eclipse IDE forJava EE Developers, Eclipse IDE for C/C++ Developers, Eclipse for RCP/Plug-in Developers, andEclipse Classic.

If you are using the RCP/Plug-in Developers or Eclipse Classic, select "Apollo for Eclipse UpdateSite" and "Europa Discovery Site".

If you are using one of the IDE versions, you must also install the org.eclipse.sdk feature viaThe Eclipse Project Update. Check "The Eclipse Project Update" in addition to "Apollofor Eclipse Update Site" and "Europa Discovery Site".

Check the remote site, check "Ignore features not applicable for this environment", and uncheck"Automatically select mirrors". Click "Finish".

Page 10: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

5

Note

Some of the mirrors for Eclipse plug-ins don't offer the same content as the original updatesite. Please be sure to use the original site: http://apollo.gentleware.com/updatesite/

6. Open Apollo for Eclipse Update Site -> Apollo for Eclipse -> Apollo 3.0.

7. Click "Select Required", then click "Next".

8. Carefully read the license texts, then accept the licenses. Click "Next".

Page 11: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

6

9. Check Locations and click "Finish".

Eclipse Europa

There are three main steps to install Apollo for Eclipse. First an update is made through Europa, then theUML2 Eclipse project is installed, and finally Apollo for Eclipse is installed. The method described hereworks, but will install many more features than are required by Apollo for Eclipse and take up much moredisk space than using the method described in the section called “Install Eclipse Components throughUpdate Services”.

1. Europa Installation

Page 12: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

7

a. If it is not already installed, begin by installing Eclipse SDK version 3.3 or higher. The downloadis available from 'Eclipse downloads home [http://www.eclipse.org/downloads/]' on the Eclipsewebsite. Simply download the zip file and extract them to a directory on your system.

Note

On Windows systems, it is not recommended to extract the files to the 'Program Files'directory. The white space in the file name may cause problems with some extensions orcompilers.

b. Start Eclipse. From the Help menu, select Software Updates -> Find and Install...

c. Select 'Search for new features to install' and click 'Next'.

d. Select the 'Europa Discovery Site' and click 'Finish'.

Page 13: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

8

e. The Update Manager will search for a list of mirror sites.

Select the mirror nearest you and click 'OK'.

f. Select the 'Europa Discovery Site' and click 'Next'.

Page 14: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

9

g. Accept the license agreements and click 'Next'.

h. Click 'Finish' to install the components.

Page 15: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

10

The Update Manager will install the components.

Shut down Eclipse after the installation is complete.

i. In the Eclipse installation folder, create the file eclipse.ini if it does not exist. Add or edit thefollowing in eclipse.ini:

-vmargs-Xms64m-Xmx512m-XX:MaxPermSize=128m

Page 16: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

11

2. Install the UML2 Project

a. Download the UML2 project uml2-SDK-2.1.0.zip from the Eclipse site [http://www.eclipse.org/uml2/].

b. Extract the zip file to the Eclipse installation.

3. Install Apollo for Eclipse

a. Download Apollo for Eclipse Apollo_3.0.0.zip from the Gentleware website [http://www.gentleware.com/downloadcenter.0.html].

b. Extract the zip file to the Eclipse installation.

4. Start Eclipse.

Install Eclipse Components ManuallyThe third and least recommended option for installing Apollo for Eclipse is to install the required featuresmanually. The table below lists the necessary features:

Table 2.1. Minimum Eclipse features required for Apollo for Eclipse

Feature Version Number

eclipse-SDK 3.3

EMF Service Data Objects (SDO) SDK 2.3

OCL SDK 1.1.0

EMF Model Query SDK 1.1.0

EMF Model Transaction SDK 1.1.0

EMF Validation Framework SDK 1.1.0

Graphical Editing Framework SDK 3.3.0

Graphical Modeling Framework SDK 2.0.0

Apache Batik 1.6.0 (included in GMF-SDK)

UML2 SDK 2.1.0

1. Install all of the Eclipse features listed above.

2. Download the UML2 project uml2-SDK-2.1.0.zip from the Eclipse site [http://www.eclipse.org/uml2/].

3. Extract the zip file to the Eclipse installation.

4. Download Apollo for Eclipse Apollo_3.0.0.zip from the Gentleware website [http://www.gentleware.com/downloadcenter.0.html].

5. Extract the zip file to the Eclipse installation.

6. Start Apollo for Eclipse.

7. In the Eclipse installation folder, create the file eclipse.ini if it does not exist. Add or edit thefollowing in eclipse.ini:

-vmargs

Page 17: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

12

-Xms64m-Xmx512m-XX:MaxPermSize=128m

TroubleshootingWhen running Linux GTK+& GEF, some elements don'tappear.

Linux GTK+ and GEF don't always work well together, depending onthe versions used. If some elements are not appearing, disable anti-aliasing in the Apollo preferences (Window->Preferences->Apollo).

The following has been taken from the Eclipse Project Release Notes 3.2.1 [http://www.eclipse.org/eclipse/development/readme_eclipse_3.2.1.html].

Installation/Configurationissues that can cause Eclipse tofail start

Here are some common problems that can cause Eclipse not to start:

• Eclipse 3.2 requires at least a 1.4.2 VM. Perhaps an older versionof the VM is being found in your path. To explicitly specify whichVM to run with, use the Eclipse -vm command-line argument.

• Eclipse must be installed to a clean directory and not installedover top of a previous installation. If you have done thisthen please re-install to a new directory. If your workspaceis in a child directory of your old installation directory,then see the instructions on "Upgrading Workspace froma Previous Release [http://www.eclipse.org/eclipse/development/readme_eclipse_3.2.1.html#upgrading]".

• Java sometimes has difficulty detecting whether a file system iswritable. In particular, the method java.io.File.canWrite() appearsto return true in unexpected cases (e.g., using Windows drivesharing where the share is a read-only Samba drive). The Eclipseruntime generally needs a writable configuration area and as a resultof this problem, may erroneously detect the current configurationlocation as writable. The net result is that Eclipse will fail to startand depending on the circumstances, may fail to write a log file withany details. To work around this, we suggest users experiencingthis problem set their configuration area explicitly using the -configuration command line argument.

Installing plug-ins by unzippingthem into the plugins directory

If you have installed new plug-ins and they aren't showing up whenyou run, then perhaps you unzipped them into your "plugins" directory

Page 18: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

13

and your configuration might need to be refreshed. This can beaccomplished by starting Eclipse with the -clean command lineargument.

XML files with UTF-8 byteorder mark fail to have contenttype detected

Eclipse will fail to detect the proper content type for XML files thathave a UTF-8 byte order mark if Crimson is the XML parser (as it ison Sun 1.4 JREs, but not on Sun 1.5 JREs). This problem will preventactions normally available when files of the affected content types areselected from being presented to the user. The workaround is to ensurethe default XML parser supports UTF-8 BOMs (such as Xerces does).

No branding with old config.ini If you have an old config.ini file and use it with a newEclipse build, you may not get the correct product branding.This is because the id of the standard Eclipse product changed.Users in shared install scenarios may end up in this situation asprevious builds of Eclipse automatically generated config.inifiles in some cases. The work around is either to delete thelocal config.ini or update the eclipse.product line to readeclipse.product=org.eclipse.platform.ide.

Invalid characters in installdirectory prevents Eclipse fromstarting

Eclipse will fail to launch if installed in a directory whosepath contains certain invalid characters, including :%#<>"!. Theworkaround is to install Eclipse in a directory whose path does notcontain invalid characters.

Configuration can becomeinvalid when removingorg.eclipse.update.configurator

When launching an Eclipse Application from within theEclipse IDE it is possible to select the set of plug-insthat are included in the Eclipse Application. Removing theorg.eclipse.update.configurator plug-in from the setof plug-ins to an existing configuration can cause the configurationto become invalid. This can result in extra plug-ins installed inthe target application that are not resolved. To work around this,after the org.eclipse.update.configurator plug-in hasbeen removed, the target configuration area should be cleared beforelaunching.

Help browser tool bar buttonsdo not work for somedocuments

The Help browser's Print, Synchronize, and Bookmark buttons donot work for pages that are not actually installed with the product.However, you can always use the print command in the browser'scontext menu to print the page you're reading.

Help documents not displayedin a browser or very slowdocument loading (Windowsonly)

If your LAN settings are not properly configured for local host access,your Help browser might open to a blank page or display an HTTPerror instead of a help page, or you may experience long delays whenloading help documents. Your system administrator can configureyour LAN settings so that help documents can be accessed from thelocal help server.

1. In the Control Panel, open Internet Options, select theConnections tab and choose LAN Settings.

2. If your host was configured to use DHCP for IP assignment, makesure that the "Automatically detect settings" checkbox is cleared.

Page 19: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

14

3. If you use a proxy server, ensure that the "Bypass proxyserver for local addresses" is selected.

4. In "Advanced" settings for proxies, add "127.0.0.1;localhost" tothe "Exceptions" if these addresses are not listed.

5. If you are using an automatic configuration script for proxysettings, and are not sure that the script is correct, clear the "Useautomatic configuration script" check box.

If the above steps do not fix your problem, try changing the port andhost properties on the Help > Help Server preference page.In general, setting host to localhost or 127.0.0.1 should work. Also,especially when running a firewall, you may want to specify port 80or some other firewall-friendly value.

Help browser displays a blankpage

If you see a help launched with a blank page, and no errorsdisplayed, it can be caused by a conflict between libraries inorg.eclipse.tomcat plug-in and jars optionally installed inJRE jre/lib/ext directory. To fix the problem, ensure that theJRE used for running Eclipse does not contain any J2EE or Apachejars in the jre/lib/ext directory.

OLE document crashes cancause Eclipse to also crash(Windows only)

If an OLE document crashes, Eclipse can crash, or the workbenchmenus can become inconsistent.

Crash while editing text onWindows XP with SP2

Some users who have installed Service Pack 2 on Windows XP haveexperienced crashes while using editors in Eclipse. The workaroundis to place a working version of Windows\System32\USP10.DLL inthe Eclipse startup directory or uninstall Service Pack 2.

Eclipse does not start on Linux-Motif with Xinerama and aUTF-8 locale

The Linux-motif build of Eclipse does not launch properly whenrun on a computer with Xinerama (provides support for dual headmonitors) and a UTF-8 locale. The workaround for this problem is tochange the locale to a non-UTF-8 value, or to disable Xinerama.

Eclipse crashes on RedHatLinux 9 with Bluecurve (GTK+only)

Users of the Bluecurve theme shipped with RedHat Linux 9 mayexperience problems running Eclipse. These problems may includecrashes or reduced performance. We recommend changing to adifferent theme.

Eclipse hangs when pastingfrom an unresponsiveapplication (GTK only)

If the application that is supplying the clipboard material isunresponsive, the paste operation hangs Eclipse for several minutes.This situation can be encountered when copying from an Eclipsetarget workbench, suspending the target workbench at a breakpointand pasting into the hosting Eclipse workbench.

Available colors on 8-bit Linux(Linux only)

Typically, in Gnome Linux installs running with 8-bit visuals (i.e. 256color mode), before the Eclipse application is started there are no freecolors. This may mean that Eclipse is unable to allocate the defaultwidget background color, causing it to display a white background.The functionality, however, is otherwise unaffected.

Page 20: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

15

Key bindings can stop workingon Debian (GTK+ only)

On some versions of Debian, Eclipse key bindings may stop working.In this context the only way to make the key bindings work again isto restart Eclipse.

The problem is that a focus issue exists in GTK+ 2.6.7 and earlier, forwhich SWT has a workaround. This workaround is incompatible withthe GTK+ 2.6.7 fix, so a GTK+ version check is done at runtime todetermine whether the workaround should be used or not. However,Debian backported the GTK+ focus fix into their libgtk+2.0 (2.6.4-2)package, so the SWT workaround and GTK+ fix are both incorrectlyapplied in this context.

To work around this problem, either get the Debian unstableversion of GTK+, compile your own GTK+, or hack SWT'sShell.gtk_realize(int) and change the version that itchecks.

Manually installing featuresand plug-ins on a FAT filesystem (Windows only)

When features and plug-ins are manually installed on top of anEclipse-based product install located on a FAT file system that hasalready been run at least once, the product must be explicitly restartedwith -clean. That is,

eclipse.exe -clean

Then, open the Help > Software Updates > ManageConfiguration dialog and toggle on the "Show disabledfeatures" button in its toolbar. Select the newly "installed" featureand press on the "Enable feature" action on the right pane (orselect the action from the feature's context menu).

Allocating enough memory andsolving OutOfMemoryErrors

By default, Eclipse will allocate up to 256 megabytes of Java heapmemory. This should be ample for all typical development tasks.However, depending on the JRE that you are running, the number ofadditional plug-ins you are using, and the number of files you will beworking with, you could conceivably have to increase this amount.Eclipse allows you to pass arguments directly to the Java VM using the-vmargs command line argument, which must follow all other Eclipsespecific arguments. Thus, to increase the available heap memory, youwould typically use:

eclipse -vmargs -Xmx<memory size>

with the <memory size> value set to greater than "256M" (256megabytes -- the default).

When using a Sun VM, you may also need to increase the sizeof the permanent generation memory. The default maximum is 64megabytes, but more may be needed depending on your plug-inconfiguration and use. The maximum permanent generation size isincreased using the -XX:MaxPermSize=<memory size> argument:

eclipse -vmargs -XX:MaxPermSize=<memory size>

This argument may not be available for all VM versions andplatforms; consult your VM documentation for more details.

Page 21: Apollo for Eclipse : User Guide - Gentleware

Installation and First Start

16

Note that setting memory sizes to be larger than the amount ofavailable physical memory on your machine will cause Java to"thrash" as it copies objects back and forth to virtual memory, whichwill severely degrade your performance.

Page 22: Apollo for Eclipse : User Guide - Gentleware

17

Chapter 3. Keys and RegistrationApollo for Eclipse licenses are based on a web services model where licenses are rented rather thanpurchased. Rather than purchase a license for a single user for indefinite use, the web services model'rents' licenses either on a recurring subscription basis or for a single time period. The advantage is greaterflexibility to deploy Apollo for Eclipse on an as-needed basis at a lower cost. Users who need the exportoptions of Apollo for Eclipse on a regular basis will find the annual subscription to be the most practicalsolution. A contract programmer who will only be around for a short time can rent a license for a singleone-month period.

Unlicensed copies of Apollo for Eclipse can be used as cost-free model 'readers' and can also be usedto glean insight into code through the forward, reverse, and roundtrip engineering features. A license isrequired for export features like printing and saving.

Types and TerminologySerial Number - The Serial Number is a unique identifier that is used to generate the registration datato register the user with a specific copy of the software. The Serial Number must be registered to receivethe License Key.

License Key - These keys are made available after the registration data has been received by Gentleware.Once a License Key is in place, the registration process is complete. These keys need no further attention,unless the copy is moved to another machine.

One-Period Rental - Licenses which have been rented for one period are valid until their expiration date.After the expiration date, export functions are no longer available in Apollo for Eclipse. These licensesare non-renewable; in order to use the export functions again, another license must be rented and theregistration process repeated.

Rent Subscription - Licenses from a rent subscription are renewed automatically according to the termsof the rent subscription, e.g. for one year, one quarter, or one month. The renewals continue until thesubscription is cancelled.

License Manager

The license manager pictured here displays (in order of appearance): A serial number for a rentsubscription, a valid license key for a rent subscription, a serial number for a one-period rental, and a validlicense key for a one-period rental.

Page 23: Apollo for Eclipse : User Guide - Gentleware

Keys and Registration

18

• License Type -This column indicates the license type, which could either be a Serial Number or aLicense Key.

A Serial Number is provided by Gentleware and is used to generate the registration data necessary forthe registration process in order to obtain a License Key. It is not an actual key to use the software, butcan be used in the interim before the software must be registered.

A License Key is the final license generated during the registration process. Once a License Key isin place, the registration process is complete. These keys need no further attention, unless the copy ismoved to another machine or is upgraded to another version.

• Product - The name of the product appears in this column.

• Version - If a license is restricted to a specific version, this information will appear in this column. Ifthe license applies to any version of the listed product, it will display 'Any'.

• Expiration Date - License Keys rented for a single period (month, quarter, or year) have an expirationdate, which is displayed in this column.

License Keys that are rented through the rent subscription service do not expire. The renewal date forthe subscription is indicated in the column titled, 'Key Renewal Date'.

• Key Renewal Date - This column is only relevant for those customers who have taken out a RentSubscription.

The license key of a subscription product has to be renewed regularly. This is done automatically everymonth, quarter or year, depending on the chosen payment cycle. A precondition for this automatic keyrenewal is an active internet connection, otherwise the renewal will have to be manually conducted thenext time there is a working internet connection. Of course, renewal problems will also occur whenpayment has not been received for the next subscription period.

In the event of a problem with the renewal for whatever reason, you will still be able to start and workwith the software five additional times.

• Rent Subscription - Users with either a fixed-period rental or a subscription rental will see either 'OnePeriod' or 'Unlimited', depending on the rental type.

'Unlimited' indicates that this license is an Rent Subscription with periodical recurring charges. 'OnePeriod' indicates that this license is rented for only one specific time period.

Users who have purchased a license can disregard this field.

• Validity - Validity refers to the status of the Serial Number or License Key. When the correct SerialNumber or License Key is in place, the field will display 'Valid'. An incorrect or outdated key willdisplay 'Invalid'.

License Manager Help

Help files are available directly in the License Manager. To access these files, click on the question mark button in the lower left corner of the License Manager. A Help partition will appear to the right.

From the Help partition, click on 'All Topics' at the bottom of the page. Open the 'Gentleware ProductRegistration' tree to view the available files.

Page 24: Apollo for Eclipse : User Guide - Gentleware

Keys and Registration

19

Licensing Apollo for EclipseIn order to activate the export features of Apollo for Eclipse, a license must be rented from the Gentlewareweb shop. After the rental order has been processed, an email with a serial number is sent to you.

1. Open the license manager from the Apollo menu on the main toolbar.

2. Paste the serial number into the license manager and click 'Add Key'.

3. Click on the name of the serial number (it will appear highlighted when selected), then click 'Register'.

Page 25: Apollo for Eclipse : User Guide - Gentleware

Keys and Registration

20

4. Enter your registration information. If you have an active internet connection, click 'Finish' and skipthe rest of these instructions. You are now ready to work with Apollo for Eclipse.

If you are offline, click 'Next'.

5. Select 'Web Registration'. Copy the Registration Data to the clipboard, then click 'Finish'.

Page 26: Apollo for Eclipse : User Guide - Gentleware

Keys and Registration

21

6. Open a web browser on a computer that is online and point it to http://www.gentleware.com/register.html. Paste the Registration Data into the Registration page of the Gentleware website and click'Get License Key'.

7. Copy the resulting license key from the web site, paste it into the license manager, and click 'Add Key'.

Page 27: Apollo for Eclipse : User Guide - Gentleware

Keys and Registration

22

After the key has been added, it will display as a valid key in the license manager. You are now readyto work with Apollo for Eclipse.

Page 28: Apollo for Eclipse : User Guide - Gentleware

23

Chapter 4. Getting StartedFor those used to working with the Poseidon for UML interface, many of the features will be familiar.However, this tool has been designed for a different purpose, namely to provide UML features when codinginstead of having the design and analysis focus of Poseidon for UML. A different approach means some ofthe interfaces and procedures have changed, so keep this in mind when working with Apollo for Eclipse.

Diagrams in Apollo for EclipseApollo for Eclipse provides two distinct diagrams to view your code: the canonical package diagram andthe non-canonical class diagram.

Canonical Package Diagrams

Canonical package diagrams present all of the elements and connections (e.g. classes, associations, etc.)that exist within the package. It is a complete view into the semantic data of the package in its entirety,which implies a 1-1 relationship between the views and the elements of the packages. That is, every elementin the package and only elements from that package are displayed once.

As such, elements from other packages cannot be displayed in the canonical package diagram. Likewise,removing an element from a canonical package diagram actually deletes the element from the projectcompletely.

Non-Canonical Class Diagrams

Non-canonical class diagrams are new to version 2.0. The non-canonical diagrams do not attempt tocapture the entire model (although they certainly may), and are therefore much more flexible. Any numberof non-canonical class diagrams may be created in any package, including the top-level default package.

Any element from any package may be added to the non-canonical class diagram. Elements which do notbelong to the package of the non-canonical diagram are displayed with a shortcut icon.

Just as in canonical package diagrams, deleting an element deletes it from the project completely. However,non-canonical class diagrams also offer the possibility to remove an element from a single diagram withoutdeleting it from the project. This option is available through the context menu.

Page 29: Apollo for Eclipse : User Guide - Gentleware

Getting Started

24

Models in Apollo for EclipseApollo stores the UML 2 models in files named 'model.auml'; for reverse-engineered source code, theseare located by default in the source folder of the corresponding Java package. For referenced types, i.e.types not contained in the project, for example in a JAR in the classpath, the UML2 mols are stored in afolder named .model in the root directory of the project by default.

Canonical package diagrams are stored in 'model.auml_diagram'; non-canonical class diagramsare stored in '<packagename>.class_diagram'.

The model files of classes contained in the Java Runtime Environment version 1.4 and 1.5 are deliveredwith Apollo. If you are using another JRE version, you can generate the corresponding model files usingthe "Reverse engineer Java Runtime" action from the context menu of the project.

By default, this will generate a new project named com.gentleware.uml2.jre<version>containing the model files. The location of the JRE models can be configured in Window->Preferences->Apollo->JRE models.

Caution

Apollo does not store the IDs of the UML2 elements in source codes as other tools do. If youare working in a team using a versioning system, we strongly recommend committing all UML2model files in order to keep the IDs betweeen the different team members in sync.

Model File Storage

The location of the model file storage can be set at the workspace or at the project level.

Workspace Level - The location specified for the workspace is applied to all projects within thatworkspace. The settings may be changed from Window->Preferences->Apollo->Model location. The newlocation will automatically be created in each project of the workspace.

Page 30: Apollo for Eclipse : User Guide - Gentleware

Getting Started

25

Project Level - To specify the storage location of a single project, right-click on the root of the packagein the Package Explorer and select Properties->Model location. Enable the project setting to activate thetext fields. A location set at the project level overrides the workspace level setting.

Create a First ProjectBegin by creating a new Java project. Click the 'New Java Project' button on the toolbar.

The Java Project dialog will open. Enter your project's name in the Project Name field. Be sure to select'Create separate source and output folders' from the Project Layout group.

Page 31: Apollo for Eclipse : User Guide - Gentleware

Getting Started

26

Now that the project has been created, we can add a package to the project. Click the 'New Java Package'button on the toolbar.

Enter the name of your package and click 'Finish'.

Page 32: Apollo for Eclipse : User Guide - Gentleware

Getting Started

27

Finally, we'll add a class to the project. Click the 'New Java Class' button on the toolbar.

Enter the name of the class in the Name field, then click 'Finish'.

Page 33: Apollo for Eclipse : User Guide - Gentleware

Getting Started

28

The class will be available in the source code editor. From here, we can modify our source code howeverwe choose. In this example, an attribute has been added to our class.

Page 34: Apollo for Eclipse : User Guide - Gentleware

29

Chapter 5. Working with Apollo forEclipse

It is strongly recommended to work with Apollo for Eclipse with automatic reverse engineering turned on.To toggle reverse engineering, right-click on the project name in the package explorer and select Apollo-> Automatic Reverse Engineering. A checkmark next to this option indicates that automaticreverse engineering is activated.

The examples and instructions in this section all assume that automatic reverse engineering is active.

The Diagrams

Display Canonical Package Diagram

The contents of a package can be displayed in a canonical package diagram (the section called“Canonical Package Diagrams”) in several ways. From the Diagram View, the package content diagramwill open in the same tab; from the Diagram Editor, an new tab will be opened.

1. Select "Open in Diagram View" or "Open in Diagram Editor" from the context menu of the packagein the Package Explorer.

Page 35: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

30

2. In the diagram, right-click on the package and select "Navigate->Show Package Contents". (Thereverse of this is also true, e.g. select "Show Parent Package" to go up one level.)

3. In the diagram with the package selected, use the quick-key combination "Ctrl-Down Arrow". (Thereverse of this is also true, e.g. use "Ctrl-Up Arrow" to go to the parent package.)

Create Non-Canonical Class Diagram Non-canonical class diagrams (the section called “Non-Canonical Class Diagrams”)may be added in

any number to any package.

1. From the context menu of the Package Explorer or the File menu, select "New ->Other".

2. From the wizard, select "Apollo->Class Diagram".

Page 36: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

31

3. Select the package in which to create the diagram. Click "Next" to set more properties including thename of the diagram or "Finish" to use the defaults.

4. From the advanced properties, you may select the parent folder, set the file name, and link the diagramto another file. Click "Finish".

Page 37: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

32

Adding and Removing ElementsAdding an element to a diagram also adds the element to the package in which the diagram resides andautomatically adds all edges.

To add a new element to the project from the palette toolbar:

1. Click the desired element in the palette toolbar.

2. Click anywhere in the diagram.

To add an existing element to a non-canonical class diagram through drag and drop:

1. Click and drag an element from the Package Explorer view, Hierarchy view, or Search tab.

2. Elements and non-canonical class diagrams may also be dragged to a new package from the PackageExplorer view.

Multiple representations of a single element may be added to non-canonical class diagrams.

To delete an element from a project:

1. Select the element in either the Package Explorer view or in a diagram.

2. Press the delete button on the keyboard or select "Delete from Model" from the context menu.

This action will delete the element from the project completely.

To remove an element from a diagram ( non-canonical class diagrams only):

1. Select the element in a non-canonical class diagram.

2. Select "Remove from Diagram" from the context menu.

Page 38: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

33

Discovery Functions in Non-Canonical Class Diagrams

Discovery actions automatically add ancestors, descendants, or dependencies to a non-canonical classdiagram. This is useful for examining the hierarchy of an element in the diagram.

To add all ancestors of an element to a non-canonical class diagram:

1. Hover over an element in a non-canonical class diagram to activate the rapid buttons.

2. Click Show All Ancestors. The family lineage up to and including the selected element will bedisplayed.

To add all descendants of an element to a non-canonical class diagram:

1. Hover over an element in a non-canonical class diagram to activate the rapid buttons.

2. Click Show All Descendants. The family lineage beginning with the selected element will bedisplayed.

NavigationRapid buttons and context menus allow you to quickly move up or down the package hierarchy or editthe source code.

• Show Element Parent Package - Displays the element within the parent's canonical packagediagram.

• Show Diagram Parent Package - Displays the parent package within the grandparent's canonicalpackage diagram.

• Show Package Contents - Displays the canonical package diagram of the selected package.

• Java Source - Opens the java source code editor for the selected class.

Many of these options are also available via rapid buttons.

Rapid ButtonsRapid buttons speed up model development by providing convenient access to some of the most-usedfunctions. For instance, a package can be added to a diagram by hovering over the the diagram, thenselecting "Add Package" from the rapid button toolbar that appears.

Page 39: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

34

The set of available rapid buttons is context-sensitive; tool-tip explanations of the buttons appear byhovering over the button with the mouse.

For example, a class in a canonical package diagram has only two rapid buttons:

And the very same class in a non-canonical class diagram has many more options:

Editing Elements

Rename an element in the diagram:

Rename an element (such as a package) by selecting the element in the diagram, then hit F2 to open theeditor.

Rename an element in the Package Explorer:

Right-click on the element, then select "Refactor->Rename...".

Page 40: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

35

In the case of packages, the option to rename subpackages is presented.

When selected, the package and all subpackages are renamed. No additional packages are created.

When not selected, a new package is created with the new name, and the new package will not contain thesubpackages from the old package. The old package and its subpackages will remain.

Edit an element within a diagram:

Double-click on an element to open the inline editor. Double-clicking on a class will provide access tothe entire class. You may also double-click on a single attribute or operation to open just that segmentin the editor:

UML Properties Tab:

Page 41: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

36

The UML Properties tab is available for attributes from the properties view. To open this view, click"Window->Show View->Properties".

Here, the attribute name, ordering, and multiplicity may be set. Changes made to these properties will beforward engineered and updated in the source code.

Multi-valued attributes can be mapped to Java arrays or generic collections. This is set in Apollopreferences: "Window->Preferences->Apollo".

Page 42: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

37

FilteringPackage Explorer

Filtering at the Package Explorer level provides controls to set the visibility of various Java elements. Thisincludes the UML diagram files and UML model files.

Open the filter dialog through the Package Explorer menu.

Diagrams

Two types of filters are available in the diagrams: a diagram-wide filter and an element filter.

Open the diagram filter by right-clicking in the diagram and select "Filters->Open Filter Dialog...".

Page 43: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

38

Open the element diagram by selecting the element, then select a filter option from the context menu ofthat element.

ElementsThe following table describes how each type is handled by Apollo for Eclipse:

Table 5.1.

Java Source - Declared Type Java Target - Array Java Target - Generics

String String String

String[] String[] List<String>

String [][] String [][] String [][]

Instance of List<String> String[] List<String>

Instance of Set<String> String[] Collection<String>

Instance of Collection<String> String[] Collection<String>

List Object[] List

Set Object[] Collection

Collection Object[] Collection

Associations and Multi-Valued AttributesAs of Apollo for Eclipse version 3.0, the array dimension of an association or multi-valued attribute cannow be set the Properties tab. This change is propagated throughout the model and code.

Page 44: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

39

Referenced Packages

Referenced types are automatically reverse engineered if "Window->Preferences->Apollo->Automatically reverse engineer referenced packages" is checked.

Open the Source Code in a Diagram EditorWe can immediately view our source code in a UML diagram, which is known as reverse engineering.Begin by viewing the project in the Package Explorer.

Right-click on the package name to open the context menu. Select 'Open in Diagram Editor' from thecontext menu.

Page 45: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

40

The classes automatically appear in the diagram editor. From here, you can create and edit classes, createrelationships between classes, etc.

View the Source Code in the Diagram ViewThe diagram view differs from the diagram editor in that the diagram view is mainly a navigation tool. Itis extremely handy to have a visualization of the code next to the actual code. It is not meant for extensivediagram editing.

Right-click on the package name in the package editor to open the context menu and select 'Open inDiagram View'.

Page 46: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

41

The source code remains open in the Java Editor, and you may edit the code as you like. The diagramautomatically opens in the Diagram View.

From the Diagram View, you can easily select a class and move to the Java code for that class. Right-clickthe class to open the context menu and select 'Navigate -> Java Source'.

Page 47: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

42

The class opens in the Java Source Editor.

Linking Views and EditorsViews and editors may be linked so that a selection in an editor or view automatically selects thecorresponding selection in the linked editor or view.

The link button in the Navigators and Explorers connects the Navigator or Explorer to the Editor. Anyitem selected in the Editor will be selected by the Navigator, and any item selected in the Navigator willbe selected in the Editor.

The link button in the Diagram View also synchronizes the selection between the Diagram View andthe Editor. A selection in either will be automatically reflected in the other.

Page 48: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

43

In the following example, all three panes have been synchronized by activating both link buttons.

Create Java Source Code from the DiagramCreating Java source code automatically from a diagram is known as forward engineering. This can bedone very simply with Apollo for Eclipse, simply click the 'Create Class' button in the diagram editorpalette, then click in the diagram to create the class.

The class source code is automatically generated, which can be verified by the presence of the .java file inthe package explorer. You may edit the name, add attributes and operations, set types and default values,and more. These changes are then reflected in the Java source code.

Page 49: Apollo for Eclipse : User Guide - Gentleware

Working with Apollo for Eclipse

44

Please refer to the section called “Editing Elements” for more information about editing in Apollo forEclipse, including multi-valued attribute mapping.

Reverse Engineer .jar FilesJava archives are quickly and easily reverse engineered with Apollo for Eclipse. In the package explorer,right-click on the name of the .jar file, then select Apollo -> Reverse Engineer Content.

Page 50: Apollo for Eclipse : User Guide - Gentleware

45

Appendix A. GlossaryPlease note that this glossary covers some UML concepts which are not available in Apollo for Eclipse.This glossary is for reference only, and the entry of an item herein does not imply that it is a part of anyApollo for Eclipse release.

GlossaryAction An action is an atomic computation that cannot be terminated

externally, and changes the state of the model or returns a value.

Action State

An action state is a simple state in an activity graph representing theexecution of an noninterruptible and atomic action that is followed bya transition to another state.

Activation An activation, also known as focus of control, shows the execution ofan operation and the duration of time for that operation.

Actor

An actor is a representation of an entity that interacts with and derivesvalue from the system.

Aggregation

An aggregation relationship is a 'whole-part' relationship, e.g. a pageis a part of a book.

Association

An association is a represention of a semantic relationship betweeninstances of objects.

Association End An association end contains a reference to a target classifier anddefines the participation of the classifier in the association.

Attribute An attribute is a logical data value of a specified type in a class whichis inherent to an object. Each object of the class separately holds avalue of the type.

Boundary-Control-Entity-Schema

The boundary-control-entity-schema describes a three layerarchitecture. The boundary layer is the user interface, control decideswhat to do with the information gathered from the user interface, andentity holds the data.

Page 51: Apollo for Eclipse : User Guide - Gentleware

Glossary

46

Branch

A branch is an element in a state machine where a single trigger leadsto more than one possible outcome, each with its own guard condition.

Class

A class is a descriptor for objects that share the same methods,operations, attributes, relationships, and behavior, representing aconcept within the system being modeled.

Classifier A classifier is a model element that describes structural features andbehavior. Some classifiers include: class, actor, component, data type,interface, node, and use case.

Collaboration

A collaboration describes a dynamic relationship that exists betweenobjects. Additionally, a Classifier Role should be associated tothe collaboration to illustrate the role an element plays in thatcollaboration.

Comment

A comment is a textual annotation attached to an element or acollection of elements that has no direct semantics, but may displaysemantic information.

Previously referred to as a note.

Compartment A compartment is a division of a symbol, such as a class rectangledivided vertically into smaller rectangles. Each compartment showsthe properties of the represented element.

Component

A component is a replaceable, tangible part of a system that realizesof a set of interfaces, including software code, scripts, or commandfiles, run-time objects, documents, databases, etc.

The new UML 2.0 notation for a component is a simple box with eitherthe component text stereotype or the graphical stereotype depictingthe old notation (not supported in this release of Poseidon).

Page 52: Apollo for Eclipse : User Guide - Gentleware

Glossary

47

Composition

A composition is a stronger form of aggregation. A part can only be apart of one composite, and the destruction of the whole automaticallyimplies destruction of the parts. Parts with multiplicity that is notfixed can be created after the composite has been created, but onceestablished they live and die with it. Parts can be explicitly removedbefore the death of the composite.

Constraint Constraints are expressions that represent semantic conditions orrestrictions that are used to limit the use of model elements.

Constructor A constructor is an operation within the scope of a class that createsand initializes an instance of a class. It may be used as an operationstereotype.

Container A container is an object that exists to encompass other objects andprovide operations to access or iterate over its contents. Examples ofcontainers include arrays, lists, and sets.

Contains A 'contains' relationship is used to describe a compositionrelationship; for example, an airplane contains wings.

Control Flow Control flow represents the relationship between actions in a sequenceas well as between input and output objects, shown with messagesattached to associations or as solid arrows between activity symbols.

Dependency

A dependency exists between elements and expresses that elementswithin one package use elements from the package on which itdepends, implying that a change in one element may affect or supplyinformation needed by the other element.

Details Pane The Details pane is a quadrant of the Poseidon work area, located inthe lower right corner, which provides advanced editing and viewingcapabilities for all elements.

Descriptor A descriptor is a model element that describes the commonalities ofa set of instances, including their structure, relationships, behavior,constraints, and purpose. Most elements in a model are descriptors.

Diagram A diagram is a graphical presentation of a compilation of modelelements, rendered as a graph of shapes connected by paths.Comprehension resides mainly in the topology, not in the size orplacement of the symbols.

Diagram Pane The Diagram pane is the main working area of Poseidon, where all ofthe diagrams are displayed.

Drill-down Navigation Drill-down navigation is a means of moving through a model bymoving from element to element via the relationships of thoseelements.

Page 53: Apollo for Eclipse : User Guide - Gentleware

Glossary

48

Element An element is a broad term with little in the way of specific semanticsand refers to an atomic constituent of a model.

Evaluation Key An evaluation key is a key granted to a user upon request to allow thatuser to operate Poseidon for a limited amount of time.

Event An event is a non-trivial occurrence with a location in time and space.

Extend

An extend relationship exists between an extension use case and abasic use case, and indicates how the behavior of the extension usecase can be directly applied to the behavior defined for the base usecase. The extension use case incrementally modifies the base use casein a modular way.

Extension Point An extension point is a named marker that references a location or setof locations within the behavioral sequence for a use case, at whichadditional behavior can be added.

Final Key A final key is a string provided to Poseidon in order to remove timelimits and functionality limits from an evaluation copy of the software.

Final State

A final state is a state within a composite state that, when active,indicates that the activity of the enclosing composite state is complete.

Fork

A fork is a complex transition where one source state is replaced bytwo or more target states, thus increasing the number of active states.

Friend A friend dependency grants an operation or class permission to usethe contents of a class where there would otherwise be insufficientpermission.

Generalization

A generalization is a directed relationship between two like elements,where one element is the parent element and the other is the childelement. This type of relationship is also referred to as 'kind of',meaning that the child is a kind of the parent.

Guard Condition A guard condition is a boolean expression that must be satisfied inorder to enable an associated transition to fire.

Implementation Relations An implementation relation is a relation that exists only betweeninterfaces and classes.

Include

Page 54: Apollo for Eclipse : User Guide - Gentleware

Glossary

49

An include relationship defines a dependency relationship between asource use case and a target use case in which the source use caseexplicitly incorporates the target use case. The source use case can seeand use the target, but neither the source nor the target may accesseach other's attributes. Multiple include relationships may be appliedto the same base use case. The same target use case may be includedin multiple source use cases.

Inheritance Relations

An inheritance relation allows more specific elements to incorporatestructures and behaviors that have been defined by more generalelements.

Initial State

An initial state is a syntactic notation indicating the default startingplace for an incoming transition to the boundary of a composite state.

Instance An instance is an individual, concrete entity with its own identity andvalue. An object is an instance of a class, a link is an instance of anassociation

Interface

An interface is a named set of operations that characterize the behaviorof an element. Interfaces do not have implementations, they lackattributes, states, and associations, they have only operations.

Interfaces may also be noted in lollipop and socket notations.

Join

A join is a location in a state machine, activity diagram, or sequencediagram where two or more concurrent threads or states combine intoone thread or state.

Label A label is a notational term for the use of a string on a diagram.

Link A link is an instance of an association.

Lollipop

A lollipop is a type of notation used to denote an offered interface. Itconsists of a named circle (the interface) and an relationship drawn asa solid line. This is also known as ball notation.

Page 55: Apollo for Eclipse : User Guide - Gentleware

Glossary

50

Merge A merge is a location in a state machine, activity diagram, or sequencediagram where two or more control paths come together.

Message A message refers to the transfer of information, such as a signal oroperation call, from one object to another with the expectation thatactivity will result. The receipt of a message instance is normallyconsidered an instance of an event.

Metaclass A metaclass is class whose instances are classes. Metaclasses aretypically used to construct metamodels. A metaclass can be modeledas a stereotype of a class using the keyword metaclass.

Method A method is an implementation of an operation that specifies thealgorithm or procedure.

Model A model is semantically complete abstraction of a system from aparticular viewpoint.

Multiplicity A multiplicity is a specification of the range of allowable cardinalityvalues. It can be an explicit value, a range of values, or an expressionthat resolves to one or more values.

Name A name is a string that is defined within a namespace and is used toidentify a model element.

Namespace A namespace is a part of the model in which names are defined andused, where each name has a unique meaning.

Navigation Pane The Navigation pane is located in the top left corner of the Poseidonwork area and displays model elements according to pre-determinedschemas which can be selected from a dropdown menu.

Node

A node is a physical object that exists at runtime and represents acomputational resource that executes components. It usually has atleast a memory and often processing capability. Nodes can include,but are not limited to, computing devices, human resources, ormechanical processing resources.

Note

The Note element has undergone a name change. See 'Comment'.

Object

An object is a discrete entity with a well-defined boundary and identitythat encapsulates state and behavior, an instance of a class.

Page 56: Apollo for Eclipse : User Guide - Gentleware

Glossary

51

Object Constraint Language(OCL)

Object Constraint Language (OCL) is a text language for specifyingconstraints, writing navigation expressions, boolean expressions, andother queries. It is not intended for writing actions or executable code

Object Flow State

An object flow state represents the existence of an object at a pointwithin a computation. It can also represent the flow of control amongoperations in target objects.

Operation An operation is the specification of a transformation on the state of anobject or a query that returns a value to the caller of the operation.

Overview Pane The Overview pane is located in the bottom left-hand corner of thePoseidon application and helps the user keep the big picture in mind.

Package

A package, like a file directory, is a general way to put like thingstogether to provide organization. Packages may be nested within otherpackages.

Parameter A parameter is the placeholder for an argument that can be changed,passed or returned.

Path A path is a graphical connection between symbols, usually used toshow a relationship.

Plug-in A Plug-in is a piece of code that extends the capabilities of Poseidon.It may or may not be authored by Gentleware.

Plug-in Key A Plug-in Key is the string given to Poseidon to activate the Plug-in.

Port A Port is a connectable element that specifies a set of required andprovided interfaces.

Profile A profile takes a part of the UML and extends it with stereotypes fora particular purpose.

Project A project is saved as a zipped .zuml file and contains all informationregarding the model, both textual and graphical.

Realization

A realization is the relationship between an element that specifiesbehavior and one that provides an implementation. A specificationdescribes a behavior or structure without specifying how the behaviorwill be implemented. An implementation provides the details abouthow to implement behavior in an effective way.

Page 57: Apollo for Eclipse : User Guide - Gentleware

Glossary

52

Relationship A relationship is reified semantic connection among model elements.Types of relationships include association, generalization, anddependency.

Role A role is a named slot within an object structure that represents thebehavior of an element as it participates in a given context (in contrastto the inherent qualitites of the element).

Socket

A socket is a notation for a required interface. It is denoted as a semi-circle.

Specialization A specialization produces a more specific description of a modelelement by adding children. A child element is the specialization ofa parent element.

State A state is a condition or situation during the life of an object duringwhich it satisfies a condition, performs an activity, or waits for anevent.

Stereotype A stereotype characterizes a type of element without specifying itsimplementation and assists in teh creation of a new model elementthat is derived from an existing model element.

System A system is collection of connected units organized to accomplish apurpose. A system can be described by one or more models, possiblyfrom different viewpoints.

Tagged Value A tagged value is consists of a tag-value pair and is attached to anelement to hold some piece of information.

Transition A transition is a relationship between two states within a state machinewhere an object in the first state will perform one or more actionsand then enter the second state when a certain event occurs and guardconditions are satisfied.

Trigger A trigger is an event whose occurrence makes a transition eligible tofire.

Type A type is a declared classifier that the value of an attribute, parameter,or variable must hold. The actual value must be an instance of thattype or one of its descendants.

Use Case A use case defines a piece of behavior of a classifier without revealingits internal structure by describing the behavior of a system from auser's standpoint, providing a functional description of a system andits major processes, and providing a graphical description of users andinteractions.

View A view is a collection of diagrams that describe a particular aspect ofthe project.

Visibility Visibility refers to an enumeration whose value determines whether amodel element may be seen outside its enclosing namespace.

Page 58: Apollo for Eclipse : User Guide - Gentleware

53

Appendix B. Hypersonic SQL GroupDatabase Engine License Agreement

[http://hsqldb.org/]

hsqldb - 100% Java Database

Lightweight 100% Java SQL Database Engine

COPYRIGHTS AND LICENSES

ORIGINAL LICENSE (a.k.a. "hypersonic_lic.txt")

For content, code, and products originally developed by Thomas Mueller and the Hypersonic SQL Group:

Copyright (c) 1995-2000 by the Hypersonic SQL Group. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted providedthat the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and thefollowing disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and thefollowing disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the Hypersonic SQL Group nor the names of its contributors may be used to endorseor promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "ASIS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HYPERSONIC SQL GROUP,OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OROTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IFADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This software consists of voluntary contributions made by many individuals on behalf of the HypersonicSQL Group.

For work added by the HSQL Development Group (a.k.a. hsqldb_lic.txt):

Copyright (c) 2001-2005, The HSQL Development Group All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted providedthat the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and thefollowing disclaimer.

Page 59: Apollo for Eclipse : User Guide - Gentleware

Hypersonic SQL Group DatabaseEngine License Agreement

54

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and thefollowing disclaimer in the documentation and/or other materials provided with the distribution.

Neither the name of the HSQL Development Group nor the names of its contributors may be used toendorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "ASIS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP,HSQLDB.ORG, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITEDTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, ORPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORYOF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.