Nico has completed a Bachelor degree in Computer Science and a Masters degree in Programming Technology at Utrecht University. He has written his master thesis at Freiburg University, which also formed his first publication.
After graduating, he started working on domain specific languages for workflows as part of my PhD. Having just completed his thesis, he now works at Open University on a project on decompilation, in collaboration with Virginia Tech.
Software that models business workflows is omnipresent in today's society. These systems coordinate collaboration in hospitals, companies, and military institutions.
Unfortunately, workflow systems may obfuscate the influence of current user actions on the desired end result.
In order to make the right decision, users need to oversee the full process and all information available, both of which are usually buried in the system.
We have developed a way to automatically generate next step hints for task oriented programs.
Task oriented programming provides programmers with an abstraction over workflow software, while still being expressive enough to describe real world collaboration.
By leveraging symbolic execution, we can calculate these hints without modification of the original program.
To our knowledge, this is the first time that symbolic execution is used to automatically generate next step hints for end users.
We prove the generated hints to be sound and complete, and also demonstrate that the symbolic execution semantics we employ is correct for sequential input.
In addition, we have developed a Haskell implementation of our automatic next step hint generation system.
By providing next step hints, the chance of human error is reduced, while still allowing end users to intervene if required.
The overall performance is raised, since the quality of decisions will improve.