What can you do with this application?
How to get some logic (logic in the meaning of IF ... THEN ...) from one persons brain in
another persons brain? We need a way to tell it. You can name this way a protocol or even
a language. What kind of protocols do we have:
1. Telling in English fails because English does not have "END IF").
2. Drawing diagrams (e.g. UML) is an option but diagrams with nested conditions quickly
grow out of what a scree can display.
3. Pseudo code is more dense but still hard to read when it comes to complex logic.
4. Traditional decision tables (that one where you make a "x" when a condition is true)
provide a way to tell logic in a very dense form. But they lack a way or method how
to develop the logic while writing and worser, there is no way to proof them
mathematically. No wonder that they are unpopular.
This tool is about a method called "process-oriented decision tables".
It fixes all flaws of traditional decision tables making it a joy to work with.
But they keep all benefits of traditional decision tables. First of all they present the
logic in a very dense form.
1. Explore all possible combinations of conditions and actions by question-and-answer.
2. Have a compact one-sheet-view on complex logic.
3. Have abandoned combinations documented.
4. Make sure that your decision table is (formally) neither incomplete nor inconsistent
with one click. And the mathematics behind it is very easy and well documented ;-)
5. Get the test cases necessary to test your piece of logic with one click.
6. Other than in traditional decision tables, you can mix conditions and actions.
=> Stop to rack your brain - start using process-oriented decision tables! <=
Scrum: Get clear, doable and testable requirements to pin at your product backlog.
ISTQB: The way of creating decision tables as told in the ISTQB course I had in
August 2014 was a complete pain for me. Please have a look at
process-oriented decision tables before you try to use the other method.
Why is it important to present logic in compact/dense form?
It reduces the probability of errors. If you can display a document on your screen at
once an error is less probably than if you would need scroll between the pages.
This makes density so important.
What if I don't have or don't want Java?
There is a binary for Microsoft® .NET® 4.0 available!
It was compiled and tested using IKVM (http://www.ikvm.net) using
IKVM.NET 7.4 Release Candidate 0, version 7.4.5196.0 (ikvmbin-7.4.5196.0.zip),
downloaded via http://weblog.ikvm.net/default.aspx?date=2014-03-24
So you can run JDecisiontable even if there is no Java available on your system!
There is a lot of documentation and examples!
Please go to http://sourceforge.net/projects/jdecisiontable/files/ to enjoy!
You may visit http://sourceforge.net/projects/jdecisiontable/ for updates.
There is a blog too.
Source code repository:
The Help files for this project are located in the folder Help.
Examples are located in the folder Examples.
The Help files for this project are located in the package JDecisiontable*_Help.
Examples are located in the package JDecisiontable*_Examples.
Java version: The entire software was build using Java 7.
This software contains the following libraries:
- Apache Commons IO, http://commons.apache.org/io/
- Google google-gson, http://code.google.com/p/google-gson
- Awtomat, http://sourceforge.net/projects/awtomat/
- JDecisiontableLib, http://sourceforge.net/projects/jdtlib/
- myflipflops, http://sourceforge.net/projects/myflipflops/
- JDecisiontable for Microsoft® .NET® comes with files from project IKVM
This work is licensed under the MIT licence. For details see LICENSE.txt.
Licences of software from third parties are kept in the file THIRD_PARTY_LICENSES.txt.
1. If you're just start typing in column "Description" there is no cursor.
Work around by pressing F2 key when you marked the cell you wish to edit.
Same in field successor (last field of ech rule).
2. You may mark any range of cells of a decision table and the press Ctrl + c.
This will copy the content of the marked cell to the clipboard.
If you want to copy the whole decision table to the clipboard you need either to use
the menu or to click on the label on top of the tab first and then press Ctrl + c.
Linefeed in CSV files
1. The linefeed in the CSV files is LF (decimal 10, hexadecimal 0x0a)
on Linux®, *BSD, Mac OS and other Unix-based operation systems.
For Microsoft® Windows® it is CR LF (decimal 13 10, hexadecimal 0x0d 0x0a).
This is the usual behaviour and not a bug.
Microsoft® .NET® related
1. Shortcut Ctrl-# does not work. Please use Ctrl-t or your mouse instead.
2. Entering "don't care"-decisions by typing "-" does not work. Please type "d" instead.
3. Shortcuts like Ctrl-Alt-R doesn't work. Please use the menu instead.
"x.y.z" means the version number of the software i.e. "2.2.0".
JDecisiontable for Java
*Please read the Security Advices below.*
What you need
For this way you need to install a Java Runtime Environment version 7 or better
on your system. You may use the OpenJdk if available.
=> Please read the Security advices below. <=
How to run it
- unpack the archive containing JDecisiontable for Java
- With Microsoft® Windows® double click on JDecisiontable-x.y.z-jar-with-dependencies.jar
to run it.
- With Linux® it is the most easy way to make the file launch_jdecisiontable.sh executable
and then double click on it.
You do not need to make Decisiontable-x.y.z-jar-with-dependencies.jar executable.
If you like, you may create a new launcher which must execute
"java -jar JDecisiontable-x.y.z-jar-with-dependencies.jar".
JDecisiontable for Microsoft® .NET®
To run JDecisiontable with Microsoft® .NET® you do not need any Java installed
on your system.
What you need
All you need is to have Microsoft® .NET® 4 or better on your system.
It is available for every Microsoft® Windows® from XP and above:
- Microsoft® Windows7®: Microsoft® .NET® 4 is available without any additional installation
if you keep your Microsoft® Windows7® up to date.
- Microsoft® Windows Vista®: Microsoft® .NET® is available without any additional installation.
If you kept your Microsoft® Windows Vista® up to date it should be Microsoft® .NET® 4.
Ortherwise you need to update to Microsoft® .NET® 4 by downloading it from Microsoft® and install it.
- Microsoft® Windows XP®: Microsoft® .NET® was not installed by default.
You need to install Microsoft® .NET® 4 by downloading it from Microsoft® and install it.
JDecisiontable 2.1.0 was proved to run properly with Microsoft® Windows XP®.
How to run it
- unpack the archive containing JDecisiontable for Microsoft® .NET®
- double click on JDecisiontable-x.y.z.exe to run it
Java is often bundled with two browser plug-ins which both suffered serious security
flaws in the past. Usually there are two plug-ins. One is for running Java application
in the browser (Java Browser Plug-in). The other one is used to run a Java application
on your desktop when you click on a prepared link (Java Web Start Plug-in).
Java for Microsoft® Windows® by Oracle® does always install both plug-ins.
On Linux® these plug-ins are provided as separate packages.
You can them install and remove without affecting the files needed for OpenJdk.
Some Linux® distributions are installing them when you install Linux®.
I found Linux Mint Debian Edition to do so.
Please check your system if these Plugins are installed and if they are installed if they
- If you did not run Java application in the browser window there are good
reasons to remove the Java Browser Plug-in.
- If you did not launch Java applications out of the browser window there are good
reasons to remove the Java Web Start Plug-in.
If you need these plug-ins, it is a good idea to use two browsers:
One with plug-ins activated for launching/running Java applications but never surfing in the internet
and a second browser with these plug-ins deactivated for the internet.
JDecisiontable for Microsoft® .NET® does not need any Java installed on your machine.
Security advice for Microsoft® Windows®
As fas as I know it is not possible to remove these plug-ins.
So you may only deactivate these plug-ins system-wide.
See http://www.java.com/en/download/help/disable_browser.xml how it can be done.
Please check you browser hereafter to see if the change took effect.
Security advice for Linux®
Please use the package manager for your system (like Synaptics for Debain, Ubuntu, Mint).
Please check if there are packages named "icedtea" are installed.
It is a good idea to check this on every fresh installed Linux.
On my Xubuntu 14.04 these are named "icedtea-netx-common", "icedtea-plugin",
"icedtea-6-plugin" and, "icedtea-7-plugin".
While "icedtea-netx-common" contains the Java Web Start Plugin,
the others contain the Java Browser Plugin.
You can remove them ("Mark for Removal") using i.e. Synaptic without trouble.
I have no idea how Java is handled here thus I can not give any advice about.