COMP242 Assignment v0.3-3 README Last Revised: 24 October 2008 ================================================================================ This represents the state of v0.3 development at the time of tagging (24 October 2008). This release contains project files for NetBeans 5.5 which can be used to compile the code. Contents: /src -- Source code /bin -- Compiled JAR file /test -- JUnit unit tests for LTS, LTSNode and LTSTransition classes. /doc -- Test document in ODF and PDF formats /examples -- Example LTS. 1-4 are from the first assignment sheet. Two large LTS are provided, large.txt and huge.txt. /nbproject -- The netbeans project directory Requirements: Sun Java 1.5 compatible runtime environment or better NetBeans 5.5 or better to compile the code Supported Platforms: The program has been found to work correctly on the following platforms: - Microsoft Win32 compatible/Windows NT Workstation 5.1 [ Sun Java 1.6 ] - POSIX compatible/Kubuntu Linux 7.04 [ Sun Java 1.6 ] - OpenVMS Alpha 8.3 with DECwindows [ Digital FastVM Java 1.5 ] System Requirements for OpenVMS: 256MB RAM Digital Alpha EV5 at 400MHz or better (slower will work too but may be unusable) Using Composition (and parallel reach): 1) Load the first LTS using either File>Open or the Open toolbar button. 2) Select "Edit>Compose With..." or use the tool bar button 3) Select the file to compose the current LTS with 4) Enter the synchronization set (if any) as a comma-separated list of nodes Rendering the LTS: - View>Refresh (F5) renders the LTS. If it gets stuck while rendering (total kinetic energy does not approach 50) select refresh again to stop. - The tool bar button "Redraw" does the same as View>Refresh - "View>Sim Iterate" does one iteraton of the rendering loop allowing you to step through the rendering process. - The tool bar button "Iterate" does the same as "View>Sim Iterate" - "View>Reset Layout" (and the "Reset Layout" tool bar button) resets all node positions to random values allowing the LTS to be re-rendered. Use this if the renderer arrives at an unoptimal solution. - "View>Show colours" Switches modes to show the results of the node colouring algorithm Known Issues: - Anchor point may cause rendering of large LTS to become distorted Whats new in Version 0.3-3: - Minor upgrade in the way status and debug messages are handled. The only visible change should be that one or two messages (errors or warnings) should end up on stderr instead of stdout. Whats new in Version 0.3-2A: - All source code now contains the GPL License header and copyright information. This licensing information also applies to all older versions which do not already contain it. Whats new in Version 0.3-2: - Some additional input format checking when loading a file. This should catch most attempts to load an invalid file (#5). Whats new in Version 0.3-1: - OpenVMS is now an officially supported platform. Requirements are Java 1.5 and DECwindows. - Bug affecting operation on OpenVMS has been fixed. The bug prevented the UI from redrawing when no LTS was loaded and output a stack trace to the console when ever an attempt to redraw the UI was made without an LTS loaded. Whats New in Version 0.3: - An "Ultra LTS" example - ultra.txt in the examples directory. This LTS contains 34992 transitions and consumes 2.6MiB of disk space in ASCII form. It took a 3.3GHz P4 somewhere between 40 and 60 minutes to compose this from the huge LTS. Loading and rendering it could take hours. - LTS node colouring (enable from the view menu) - Bisimulation equality - loop-back transitions (eg, Node1/a/Node2) are now drawn (#43) ChangeLog: ---------------------------------------------------------------------------- Version 0.3-3: Minor internal changes: - Status messages and logging are handled differently. This results in one or two messages that can be considered as errors or warnings being sent to stderr instead of stdout. Version 0.3-2A: License Changes: - All source code now includs the GPL license header and copyright information. This applies to all older versions which lack the information too. Version 0.3-2: Fixed Bugs: - Program now checks the input format of strings more closely when loading a file. This should stop it from loading invalid files (#5). Version 0.3-1: New Features: - HP OpenVMS is now a supported platform. The software should work with all versions of OpenVMS that support Java 1.5 or later. DECwindows is required for operation. Fixed Bugs: - Fixed bug which prevented UI from redrawing on OpenVMS systems when no LTS was loaded. Version 0.3: New Features: - Node coloring (#57) - Bisimulation Equality (#59) - Node colors can be shown graphically (#63) - loop-back transitions (eg, Node1/a/Node2) are now drawn (#43) - Deselect tool: Clears current selection Fixed Bugs: - Creating a new LTS does not properly reset the LTS renderer leaving bits of the previous node behind (#56) - Node selection now works properly - Loops in an LTS can cause a stack overflow in the renderer (#64) - Editing an LTS does not cause it to be recoloured (#66) - Line drawn in add transition mode is offset from start node (#67) - Canceling a new transition does not update the display leaving the line behind (#68) - After canceling a new transition the start node is left green (#69) - Start node in transition operation mode does not show as selected when node colours are shown (#70) Version 0.2: New Features: - Parallel Reach has been implemented and is available under the edit menu. It is used in the same way as parallel composition. (#27) - Menus have been rearranged: - Compose and Reach are now under the Edit menu - A help menu has been created for future use - Initial work on graphical LTS editing is visible: - Create Node - Node move tool - Set start node tool - Remove node tool - Create Transition tool - Select node tool: if you can manage to grab a node with this while the layout algorithm is still running you can interact with the algorithm. The node will turn red when selected. Fixed Bugs: - Loop-back transition crash has been fixed (#24) - Correct file name is now displayed in the title-bar after composition and reach (#46) - Sync Set input dialog now allows node names that include a comma provided that the first character of the nodes name is a '(' and the last character is a ')' (#20). For example, the following would be valid input: a,b,(c,d,e),f,g where (c,d,e) would be interpreted as 1 node, not 3. - Cancel button for parallel compose now actually cancels the compose operation (it didnt before) (#39) - The file chooser is now reused - this means that if you wish to open a second file (eg, during composition) you will start at the same folder you opened the first file in. (#49) - Compile warnings fixed (#50) Version 0.1: New Features: - Initial version - LTS classes implemented - Parallel Composition implemented - Force based layout algorithm implemented - GUI implemented Fixed Bugs: - none ================================================================================ David Goodwin