Looking for the latest version? Download JDecisiontable_2.0.1.zip (18.6 MB)
Name Modified Size Downloads / Week Status
Totals: 7 Items   18.7 MB 6
Apply 2014-04-11 2 weekly downloads
Examples 2014-03-15 1 weekly downloads
Help 2014-03-15 5 weekly downloads
LegacyVersions 2014-03-15 6 weekly downloads
JDecisiontable_2.0.1.zip 2014-03-15 18.6 MB 22 weekly downloads
checksums.txt 2014-03-15 137 Bytes 11 weekly downloads
README.txt 2013-02-19 27.1 kB 33 weekly downloads
What can you do with this application? ======================================= Requirements engineering is a two-fold task. Writing down an application flow you're already know (= having the whole flow in your head, just "print it") is completely different from the task of _creating_ an application flow. The latter means that don't know anything about the flow so you need to explore it step by step by permutation. This tool was build around this task. It let you use your "slow thinking" which leads to better results. Slower - but better! . 1) Explore all possible combinations of conditions and actions by question-and-answer 2) Don't forget a combination conditions and actions 3) Abandoned combinations are still documented 4) Easy mathematics to find any incomplete or inconsistent decision table 5) Get a set of valid rules which are your test cases . Scrum: Get clear, doable and testable requirements to pin at your product backlog. . There is a lot of documentation and examples! Please go to http://sourceforge.net/projects/jdecisiontable/files/ to enjoy! Java version: The entire software is build using Java 7. Microsoft® .NET®: NEW!!! Since version 1.1.2 there is a binary for Microsoft® .NET® 4.0 available! It was compiled and tested using Microsoft® Windows7® and IKVM (http://www.ikvm.net) version 7.2.4630.5 (ikvmbin-7.2.4630.5.zip). Please see file What_is_in_the_zip.txt how to run JDecisiontable for Microsoft® .NET®! Known problems =============== Microsoft® Windows® related ----------------------------- (These problems both versions of JDecisiontable, JDecisiontable for Microsoft® .NET® and JDecisiontable for Java.) 1. The linefeed for CSV files is always LF (decimal 10, hexadecimal 0x0a) regardless of operation system. This is correct for all Un*x Systems like Linux, *BSD, Mac OS and so on, but not for Microsoft® Windows® where CR LF (decimal 13 10, hexadecimal 0x0d 0x0a) is expected. But every spread sheet application should import it correct. I don't own a copy of Microsoft® Excel® (because I would need an expensive license for companies) so I can not proof. I will do further research for this point. 2. You need to provide resource files (currently there are two, StringResource.json and StringResource_de.json) in the same folder with the JDecisiontable*.jar/JDecisiontable*.exe file. Otherwise the German localisation doesn't display umlauts as it should. This should affect all non-ASCII chars. This problem doesn't occur with Linux. Technical background: If there is a resource file named "StringResource.json" in same folder as the JDecisiontable*.exe or JDecisiontable*.jar file _all_ resource files inside the jar file will be ignored and the resource files outside the jar or exe file will be used instead. They are exactly the same as in the jar file but displayed correctly. 3. For translators: Do not use Windows® Editor (aka notepad.exe) to save the StringResource files. Please use an advanced editor such as Notepad++ or JEdit to save resource files as UTF-8 encoded text files. Technical background: Windows® Editor (aka notepad.exe) adds a few bytes add the very beginning of UTF-8 encoded text files (the so called "BOM"). If you alter a local language string resource such as StringResource_de.json in that way this resource will be ignored. If you alter the default language string resource StringResource.json in that way JDecisiontable crashes. If you launch it from DOS commandline you will see "MissingResourceException". Said bytes (the BOM) are invisible in usual edit mode, only a hex editor shows them. Removing the BOM (the first three bytes before the "{") solves this problem. Using an advanced editor such as Notepad++ or JEdit avoids it. Microsoft® .NET® related ----------------------------- 1. One time I got a crash when filling a new decision table with data and hereafter saving it first time. Since creating a new decision table, then save it (before filling in data) and hereafter fill in data worked always for me I recommend you to do so. Please save your data often. Use Ctrl + s, this is faster and works. 2. Shortcut Ctrl-# does not work. Please use Ctrl-t instead. 3. Entering "don't care"-decisions by typing "-" does not work. Please type "d" instead. Product Roadmap ================ Version 2.? -------------- - Why does JDecisiontable produce csv files with linefeed 0x0a under Microsoft® Windows XP® and Microsoft® Windows7®? - Testspecification -> export to csv -check: Tell that this is meant for intermediate results; "NOT VALID" (always provided because the dt is never checked using this menu) should give a hint because the dt is not finished yet. Otherwise use " Testspecification -> export to csv +check". - Write document about how to use probabilities basing on http://sourceforge.net/p/jdecisiontable/blog/2012/10/use-of-probability-in-decision-tables/. - show numbers for nodes as rules already have numbers; while rules have their numbers in a column header nodes needs it in a list next to most left column - add "Recent Files" to menu Decisiontable -> Open Version ? -------------- - evaluate options for an undo facility - Find and implement a way to switch between different tabs by keyboard _without_ using the same keys as used for switching between running programs or from desktop to desktop. - open a bunch of files at once using menu Decisiontable -> Open - have a menu point "Open -> Recent files" to remember files used recently Release Notes ============== Version 2.0.1 -------------- Use of other libraries from same author (you will find them all at http://sourceforge.net/users/mgmechanics): - JDecisiontableLib 1.3.1 - myflipflops 1.0.9 - Awtomat 1.0.0 1) Solved the problem with german umlauts and other non-ASCII chars in the version for Microsoft® .NET®. The solution was to change the class de.mgmechanics.myflipflops.File.TextResource. Now it is possible to read _all_ resource files either from outside the jar or exe file XOR from inside. Which one will be used - those from inside or outside jar/exe? While launching JDecisiontable looks for a file StringResource.json in the same folder as the jar/exe is. If found it used it as default resource file and tries to read all other resource files from same place. If they are not there they are considered to be not available. So we ship the resource files for the Microsoft® .NET® - version of JDecisiontable in same folder as JDecisiontable*.exe and IKVM*.dlls. For the Java version this is not needed so all you need to run JDecisiontable is the JDecisiontable*jar file. 2) Ctrl + "#" does not work in JDecisiontable for Microsoft® .NET®. Use Ctrl + T instead. 3) Ctrl + "-" does not work in JDecisiontable for Microsoft® .NET®. Type "d" to get a "don't care" - decision. 4) Catching letters to know which key user typed does not work in JDecisiontable for Microsoft® .NET®. Thus, I removed the feature to use custom type keys and get displayed custom letters for non-editable cells, i.e. German localisation type an "j" and get a "J" for a Yes-decision. Now all localisations use same keys and get same letters displayed (as in English version). For this reason version 2.0.0 is considered broken and removed from download. Version 2.0.0 -------------- Use of other libraries from same author (you will find them all at http://sourceforge.net/users/mgmechanics): - JDecisiontableLib 1.3.1 - myflipflops 1.0.8 - Awtomat 1.0.0 1) JDecisiontable may now translated into every language of the world *without* touching the source code. This done using the class de.mgmechanics.myflipflops.File.TextResource. In brief, it uses UTF-8 encoded JSON files containing merely a HashMap. It always need a file named "StringResource.json". It contains all available keys and (thus) also all available strings using the default language (English because this is the common language of computer people around the world). Then it reads the strings for language and country from your system. (Both will printed on STDOUT). If there is a file "StringResource_<language>.json" with <language> matching the string read from your system it will replace the values from "StringResource.json" if keys are equal. If it can not find a matching keyy it keeps the value from "StringResource.json". At last it looks for a file named "StringResource_<language>_<country>.json" with <language> and <country> matching the strings from your system. As with "StringResource<language>.json" before it overrides matching keys in both, "StringResource.json" and "StringResource<language>.json". Conclusion: "StringResource_<language>_<country>.json" overrides "StringResource_<language>.json" overrides "StringResource.json" which must keep complete. Translation is provided for JUST EVERYTHING even Strings shown in the tables or printed to CSV files. The only exception are strings printed on STDERR and STDOUT which were not translated. 2) JDecisiontable was translated to German using "StringResource_de.json". 3) There is a new Option, "Use English". Checking this option and restart JDecisiontable is all you need to use English language as provided by the file "StringResource.json". What is it good for? Imagine you wan't to teach someone who doesn't speak your mother tongue or create a presentation in English and need screenshots. With "Use English" you see menus, messages and even Characters to display the decisions as if your system language would set to English while your systems still speaks your mother tongue. It's also fine to run the test suites because they relay on that the buttons are labeled in English. 4) The functionality behind the menu items in menu Testspecification has changed (with JDecisiontableLib 1.3.0). Now there are always teststep rules created, regardless if you decided to run all checks before creating the teststep rules or nor and whether these checks passed or failed. 5) BUGFIX: Fixed that bug which let label on top of each tab change it's size when user points with mouse on tab button (after file was changed with different name). 6) BUGFIX: If one cell was put in edit mode by mouseclick it was possible to edit all other cells too. 7) Field Comparison is not editable any longer: You need to type either 1, 2, 3, 4 or 5 (as numbers) to get the Comparison you want displayed. '1' => '>=' '2' => '<=' '3' => '=' '4' => '>' '5' => '<' Do you see the pattern? '3' is in the middle and give you '='. '1' and '2' are left from '=' while '4' + '5' are right from '='. The reason to use number is that I can not use only key types which include holding Ctrl or Alt key because the selected cell would becomne editable when we type Ctrl+s to save the file. On German keyboards '<' '>' are located on same key. Thus, using Shift + '<' would give us only two keys; '=' the third. What about '>=' and '<='?! On other hand using 1,2,3,4,5 doesn't require holding Shift. So once you know that you only have to use 1,2,3,4,5 you will be much more productive. Version 1.1.3 -------------- Use of other libraries from same author (you will find them all at http://sourceforge.net/users/mgmechanics): - JDecisiontableLib 1.2.2 - myflipflops 1.0007 1) Bugfix: Fixed problem related to new feature "create a new decision table using a list of node descriptions as input". If you use "New from Node Descriptions" and hit "Save" it will save the decision table as file with suffix .txt rather than .5dt. Sorry for being "betriebsblind"! Version 1.1.2 -------------- Use of other libraries from same author (you will find them all at http://sourceforge.net/users/mgmechanics): - JDecisiontableLib 1.2.2 - myflipflops 1.0007 1) Added a facility to create a new decision table using a list of node descriptions as input. See JDecisiontable_Manual chapter "New from Node Descriptions". 2) Adjusted position of split pane divider at start to make the horizontal scrollbar on left side disappear. It will appear again if the the table on left side is made wider. 3) Added tests which prove that JDecisionstable reads *.5dt files created/altered using Windows(R) "Editor" editor (notepad.exe) to save it as "UTF-8" as expected. These tests were successful even for JDecisionstable version 1.1.1. If interested you may have a look at the documentation JDecisionstable_Manual at chapter "File Formats". Version 1.1.1 -------------- Use of other libraries from same author (you will find them all at http://sourceforge.net/users/mgmechanics): - JDecisiontableLib 1.2.1 - myflipflops 1.0006 1) BUGFIX: When clicking on menu Verify D.Table -> Check Rules_Disjunct the background colour for non-disjunct rules changed right after the message box was closed. Now the red background colour appears when the message box appears. 2) Change: Changed text of message boxes raised by menu Verify D.Table -> Check Rules_Disjunct: a) "Check failed! Some rules are not unique." => "Check failed! Some rules are not disjunct." b) "Check passed! Each rule is unique." => "Check passed! All rules are disjunct." The reason for this change is that in all documents the term "disjunct" is used. This is the correct term. 3) Change: Menu "Tools" and "Options": Menu items are written in Capitals now (as in other applications i.e. LibreOffice). "Show Nodes w/o Y in a Valid Rule" lost the "a" and is now "Show Nodes w/o Y in Valid Rule". 4) Change: Changed text in message boxes raised by menu "Verify D.table" -> "Check Rules_Number", "Show actual num. of th. rules" and "Show expected num. of th. rules" by adding the word "theoretical" to "rules" i.e. "actual number of rules" => "actual number of theoretical rules". 5) Change: Changed menu "Verify D.table" -> "Show actual number of rules" to "Show actual num. of th. rules" and "Verify D.table" -> "Show expected number of rules" to "Show expected num. of th. rules" to introduce this term from theory to practice. Version 1.1.0 -------------- Use of other libraries from same author (you will find them all at http://sourceforge.net/users/mgmechanics): - JDecisiontableLib 1.2.1 - myflipflops 1.0006 Changes: 0) If you used this software in version 1.1-PRE-5 and earlier: Since version 1.1-PRE-5 some checks moved from menu "Verify Dt" to menu "Tools" to avoid confusion. "Verify Dt" now contains menu items for the "run all checks" function and for such checks which are part of "run all checks". Other checks moved to "Tools". 1) You do not need to press the F2 key before typing some test into field "description" or successor no more! I found a simple and reliable solution, much simpler as expected. 2) New Feature: If the check if all rules are disjunct fails JDecisiontable shows the first two rules which are not disjunct with pink background. It also displays these two rules (= their positions) in the message. This was a suggestion of one the users. Thank you! With the menu "clear results" you may reset the flags which were set during the check if all rules are disjunct (used to mark the first not-disjunct rules with pink background) causing the the pink background disappears. This may be important for disabled users. 3) BUGFIX: The column "Probability" on left side of the table does now displaying really percent values i.e. "12%"! You may insert "19" or "19%" to set make it displaying "19%". BUT NOW PROBABILITY IS ALSO STORED AS PERCENT. That means "100%" is stored as float value 1.0f, "10%" is stored as 0.1f ("f" for "float"), "1%" => 0.01f. The reason is that calculating with these number should work without further conversion: 100% of 100% => 1.0 * 1.0 = 1.0 => 100%; 10% of 10% => 0.1 * 0.1 = 0.01 => 1%. If 100% would be stored as 100.0f calculating with this numbers would fail: 100 * 100 = 10,000 => wrong! Thus this feature is now working as it should while the behavior of former versions is now considered to be a bug. It shows up to two decimal places. If you insert more than two decimal places it will round to two decimal places and store that number. I.e. your input of "123.456" will be shown and stored as "1.2346". 4) BUGFIX: Menu "copy rule" did not work by it's original shortcut Ctrl+C. Thus it was replaced it with new shortcut Ctrl+Shift+C. 5) New Feature: New menu "sum probabilities" which let raises a message showing you the sum of the probabilities for all nodes which has the isCondition flag set and for all other nodes as two numbers. This enables you to say "how probably will this condition raise?" or "how probably will this action run?" guessing importance of features or how expensive certain operations will be. 6) New Feature but a Feature less: I inserted a few command line options in version 1.0-PRE-4 as quick-and-dirty replacement for saving user settings. This options are now gone - but we have real saving of user preferences now! Please remove this options from desktop launchers and so on because they lead to an unnecessary error message "Could not open this file! ...". This does not harm, you may go on with your work. Instead of --debug switch the application will behave as if this switch is used (= print some messages i.e. if it could not open a file to STDOUT). 7) New feature: You may give any number of file names as parameters at command line causing that JDecisiontable tries to open them at launch. If one file does not exists the error message "Could not open this file! ...". This is not a problem, you can go on opening another table or creating a new one. 8) Improvement: When you insert a new rule and the last Yes-decision is replaced by a No-decision then the focus will be on that cell where replacing happened because this is in most cases the cell from which you will go on with setting decisions. 9) BUGFIX: Fixed that bug which made the application ask if you want to save the changes right after you saved it by "Save As". 10) I altered the "This file already exists" message because listing the complete path in it makes the message box too broad; thus I list the file name only now. (If you can breake things by overwriting the wrong file I recommend the use of some version control software. See FAQ.) 11) New feature: You may use Ctrl + # to switch between both tables. Please read the FAQ above in this file for details. 12) New feature: Behaviour of past versions: When the last rule is removed then a new rule is created automatically. All decisions of this new rule are "don't care" decisions. Change: Now the the first decision is a Yes - decision. (Note that this does not happens if you remove the last node with intend because it could overwrite data which the user would like to preserve.) 13) BUGFIX: Double-clicking with the mouse did not cause the fields "Description", "Probability", "Comparison" and "Successor" switch into edit mode to take the text the user just typed in. 14) New feature: Allow Backspace to clear fields "isCondition" and "isValid". 15) New feature: Now there is a check if all nodes have at least one Yes-decision in a valid rule. If this check fails JDecisiontable displays a message which nodes do not have at least one Yes-decision in any valid rule. Important: Any decision table for which this check fails can be still valid! Therefore this check is meant for detecting possible flaws in a decision table. Of course a decision table for which this check passes can be still invalid. 16) The update of the version 1.2.0 of the library JDecisiontableLib causes the file format *.5dt to change back to the same format as in version 1.0.x. But you should be able to work with any version of JDecisiontable using *.5dt files prepared with any version of JDecisiontable. This was successfully tested with *.5dt files made with version 1.0.2, 1.1-PRE-<earlier than 5> and 1.2.0. For more details please visit project JDecisiontable at http://sourceforge.net/users/mgmechanics from same author and read the README file there. Version 1.0.1 -------------- 1) BUGFIX: In one place in the sources, the decision table was cloned but the clone was used there a reference was expected. This could have serious odd effects in relation with checking and saving decision tables. - I'm glad that this software is released under the terms of the Apache License 2.0 ;-) Version 1.0 ------------ 1) BUGFIX: When the user saved a decision table and then closes it, JDecisiontable told the user that there are unsaved changes. Of course, there were no changes to save in this use case. 2) BUGFIX: Running Node -> Remove Node always removed the last node. I don't really understand what happened because I found the piece of code what caused the bug and I'm sure it did work in the past since I insert it to fix the problem that the wrong node was selected. 3) BUGFIX: Running Node -> Copy Node always copied the last node. Same cause as (2). Version 1.0-PRE-6 ------------------ 1) Now all files will be stored UTF-8 encoded. Reason: I discovered that json files were not UTF encoded. Thus tried to encode them with UTF-16 but was not able to open this files. I can not fix this problem with UTF-16 because I do not understand the error message which Java gave me. Thus I changed to UTF-8. 2) Disallowed to reorder all columns. Reason: When you change column 1 and 2 and type something in column 1, row 1 the value in column 2, row 1 will change. You're typing to the right cell but the wrong cell is shown as focused. Version 1.0-PRE-5 ------------------ 1) Changed the icons on each tab. There are only three icons: red circle/cross: running all checks failed, green circle/black circle: running all checks passed, yellow circle/triangle: decision table was changed. Version 1.0-PRE-4 ------------------ 1) Switched to OpenJDK 7 (as provided by Fedora Linux) because some behavior of javax.swing.JTable and javax.swing.table.* seemed odd to me so I wanted to make sure that this is not an issue with openJDK 6. (No it doesn't - same 'strange' behavior in OpenJDK 7 as with OpenJDK 6.) Currently it is: $ /usr/bin/java -version $ java version "1.7.0_b147-icedtea" $ OpenJDK Runtime Environment (fedora-2.1.fc16.1-x86_64) $ OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode) 2) Fixed all bugs I could find around add/remove nodes/rules. 3) When running single checks (no node with dontcare only, rules needs to be disjunct, compare actual and expected number of rules) where are now specific icons indicating which check was done and what the result was. I.e. one icon if "rules needs to be disjunct" passed, another icon if "rules needs to be disjunct" failed, and so on. 4) User can toggle an alternative icon set for the icons shown in each tab. If you switch from one icon set to another the icon in all tabs are immediately set to "attention icon" (same icon is shown when the decision table was changed). It is also meant to be helpful for people who struggle to distinguish between different colors, i.e. red and green. 5) User may set parameters at startup: --debug print some debug messages (was already there) --iconset2 use alternative icon set --rowheight2 use alternative row height (higher than default height) 6) Removed some debug messages. 7) The dialogs File -> Open, File -> Save and Export -> (all) suggests now a path and (beside "Open") a file name from path and file name of current active tab. This works of course only if there is a tab open and if the file from active tab was already saved. 8) Change file name extension for decision tables to ".5dt" and ".5ts" for test specifications. This will (1) prevent users from accidently overwriting their decision tables with test specifications (suggested file name - including extension - for a test specification was the same as for the decision table it was build from), (2) users don't mix up decision tables and test specifications when open a decision table, (3) when decision tables and test specifications has same file name but different file name extension users may order them by name - having each test specification right below it's decision table - or order it by file name extension having all decision tables first/last and all test specifications below/above. The number "5" is meant to avoid using a file name extension which is used by another application again (and means "luck" somewhere). You may rename existing files or open them using "all files '*'". 9) Please use the "F2" key - or double-click with your mouse - to edit the content of free-text cells (columns Description, Probability and Comparison on left side / row successor on right side). We apologize that we have to disable the old behavior (just focus the cell and type any key to edit the content but this ability was in conflict with the ability to use shortcuts (aka "hotkeys") for the menus. 10) Create a file + change it + close it: JDecisiontable now asks "Do you want to save your work?" (focus on button Yes) instead of "Do you really want to close it?" (focus on button No). 11) Bug Fix: (10) Now works also when (a) Save a file + change it, (b) Open a file and change it. Version 1.0-PRE-3 ------------------ 1) When editing the decisions in the right hand table the corresponding description in the left hand table gets a yellow background. When you return to the left hand table the yellow background disappears. This is a great improvement because it is difficult in more complex tables to see for which condition you're setting the decisions now. Version 1.0-PRE-2 ------------------ 1) When editing a cell and hitting enter the next cell get the focus now. 2) Bugfix: Inserting and removing a rule was done with Ctrl+R => this was wrong. Now: Insert a new rule by making a (independent) copy of the current marked rule and setting the last Yes to No: Ctrl+I. Insert an empty new rule by Ctrl+Shift+I. 3) Added a menue "Options" with an option to make the rows higher; unsetting the option will remove the extra height. 4) Made horizontal scrollbars appear and work. Right table: There is still a problem: All column has some fixed width. This wastes space if no successor is given and is not enough space to show full successor if some longer name is given. Left table: There may be not enough space to show longer descriptions. I'm working on this. Version 1.0-PRE-1 ------------------ 1) JDecisiontable now uses JDecisiontableLib-1.0-RC-3. See http://sourceforge.net/projects/jdtlib/. There is a detailled blog entry from today describing a change wich affects the way you create new rules with Rule -> New Rule. 2) When creating a new rule by Rule -> New Rule the new rule will be set to be invalid. In most cases it is invalid so this change saved work and is less prone to errors.
Source: README.txt, updated 2013-02-19