Menu

Tree [3e5bd8] master /
 History

HTTPS access


File Date Author Commit
 Examples 2016-07-17 Michael Groß Michael Groß [fc8cab] fixed #1 dyeing example in how to doesn't match...
 Help 2020-06-19 Michael Groß Michael Groß [3735d3] updated the documentation to solve issue #4
 Homepage 2012-08-28 Michael Gross Michael Gross [c39f25] redirected homepage of JDecisiontable since I h...
 Test 2020-06-19 Michael Groß Michael Groß [afacd2] the JSON files are pretty-printed now
 src 2020-06-19 Michael Groß Michael Groß [38ab1d] Fix: The version was not shown in the about mes...
 .gitignore 2018-10-07 Michael Groß Michael Groß [36fdf0] cleaned .gitignore
 Changes.txt 2017-06-05 Michael Groß Michael Groß [8bd263] added Changes for Version 2.3.3
 LICENSE.txt 2020-06-19 Michael Groß Michael Groß [c72cff] Always generate pretty-printed JSON for decisio...
 LIESMICH.txt 2020-06-19 Michael Groß Michael Groß [3735d3] updated the documentation to solve issue #4
 NOTICE.txt 2014-05-08 Michael Groß Michael Groß [db563a] added notice.txt for Apache Software
 README.txt 2020-06-19 Michael Groß Michael Groß [3735d3] updated the documentation to solve issue #4
 Roadmap.txt 2016-02-14 Michael Groß Michael Groß [501981] documented version 2.2 features
 THIRD_PARTY_LICENSES.txt 2016-02-14 Michael Groß Michael Groß [051337] remoced (c) after copyright
 launch_jdecisiontable.sh 2017-06-05 Michael Groß Michael Groß [293eec] updated launch script for JDecisiontable 2.3.3
 pom.xml 2020-06-19 Michael Groß Michael Groß [2a11dc] updated maven plugins

Read Me

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.


Help/Examples
==============
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.

Download area:
The Help files for this project are located in the package JDecisiontable*_Help.
Examples are located in the package JDecisiontable*_Examples.

Known problems
===============
The project has a ticket system. Please go to http://sourceforge.net/projects/jdecisiontable/.


Licence
========
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.

Notes
======
User Interface
-----------------------------------
 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.

 3. If the fonts look ugly try to launch the program with

    java -Dawt.useSystemAAFontSettings=lcd -jar JDecisiontable-x.y.z.jar

    This problem was observed with Java 11 (OpenJdk 11) on Linux (Debian 10 with LxQt desktop).
    It affected all Java programs which were tried out.

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.


Usage
======
"x.y.z" means the version number of the software i.e. "2.2.0".

What you need
...............
For this way you need to install a Java Runtime Environment (JRE) version 7 or better on your system.
You may use the OpenJdk 7 if available.

How to run it
..............
 - unpack the archive containing JDecisiontable for Java

 - With Microsoft® Windows® double click on JDecisiontable-x.y.z.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 executable.
   If you like, you may create a new launcher which executes "java -jar JDecisiontable-x.y.z.jar".

For contributors
=================
Long years ago I decided to use tabs (0x09) rather than spaces (0x20) for indentation. Please keep on it to avoid a mess of different indentation.
As there is a need from the crowd I will accept a patch which changes to spaces.

== End
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.