Assisting End Users in Workflow Systems

In today's society, almost every company and institution employs some kind of workflow automation. Hospitals employ software that automates health care processes. The coastal guard uses workflow software to assist in search and rescue operations. Naval ships use workflow automation software to manage people, resources and mission goals. Before automation, users knew the process by heart, and knew how their choices influenced the process. Workflow systems hide the flow of processes behind interfaces. For end users, it is not always clear how decisions influence the progress of a task. Another factor in the decision process of an end user is the information available. How can a user be sure that he or she took all information into consideration before reaching a decision? One way to provide users with more information about their current situation is to provide them with next-step hints. These hints are based on their current situation: their position in the workflow and the data in the system. In this dissertation, I attempt to answer the question, how can we provide end users with next-step hints to aid them in making decisions? The answer to that question is found by applying of techniques from intelligent tutoring systems (ITS) and program analysis. Previous work on ITS strategies inspired the first approach to generate next-step hints. By extending the original program with additional information, it can be viewed as a rule-based problem, making it susceptible to generic AI search and solving algorithms. The second approach comes from program analysis. By employing symbolic execution, next-step hints are automatically calculated, without any changes to the original code. The application of both techniques results in two next-step hints systems. One system, aided by the programmer, the other fully automatic. In developing the automatic system, a formal Task-oriented Programming semantics is also developed, including a symbolic execution semantics. Both systems are proven to be sound and complete. They are both implemented, too, showing that they work in practice. Providing next-step hints to end users is crucial in improving the quality of decisions. It helps end users by giving insight into the effects of their choices, and makes sure that all data is taken into consideration.

[1]  Quirijn W. Bouts,et al.  Geographic graph construction and visualization , 2017 .

[2]  Willem Sonke Algorithms for river network analysis , 2019 .

[3]  Marinus J. Plasmeijer,et al.  Static and dynamic visualisations of monadic programs , 2015, IFL '15.

[4]  Thom Castermans,et al.  Algorithms for visualization in digital humanities , 2019 .

[5]  Wouter Swierstra,et al.  Data types à la carte , 2008, Journal of Functional Programming.

[6]  W. M. P. V. D. Aalsta,et al.  YAWL : yet another workflow language , 2015 .

[7]  Simon Peyton Jones,et al.  Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell , 2005 .

[8]  Tim Ophelders Continuous similarity measures for curves and surfaces , 2018 .

[9]  Philip Barker,et al.  Designing Electronic Performance Support Systems. , 1995 .

[10]  Mauricio Cano Grijalba Session-based concurrency: between operational and declarative views , 2020 .

[11]  Ruzica Piskac,et al.  Lazy counterfactual symbolic execution , 2019, PLDI.

[12]  Johan Jeuring,et al.  A Systematic Literature Review of Automated Feedback Generation for Programming Exercises , 2018, ACM Trans. Comput. Educ..

[13]  Robin Milner,et al.  Communication and concurrency , 1989, PHI Series in computer science.

[14]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[15]  Craig A. Knoblock,et al.  PDDL-the planning domain definition language , 1998 .

[16]  Johan Jeuring,et al.  Teachers and Students in Charge - Using Annotated Model Solutions in a Functional Programming Tutor , 2012, EC-TEL.

[17]  Wil M. P. van der Aalst,et al.  The Application of Petri Nets to Workflow Management , 1998, J. Circuits Syst. Comput..

[18]  J. R. Salamanca Tellez,et al.  Coequations and Eilenberg–type Correspondences , 2018 .

[19]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[20]  Waheed Ahmad,et al.  Green computing: efficient energy management of multiprocessor streaming applications via model checking , 2017 .

[21]  Önder Babur,et al.  Model analytics and management , 2019 .

[22]  Johan Jeuring,et al.  Specifying Rewrite Strategies for Interactive Exercises , 2010, Math. Comput. Sci..

[23]  U Ulyana Tikhonova,et al.  Engineering the dynamic semantics of domain specific languages , 2017 .

[24]  Marinus J. Plasmeijer,et al.  An Executable and Testable Semantics for iTasks , 2008, IFL.

[25]  Alexander Reinefeld,et al.  Complete Solution of the Eight-Puzzle and the Benefit of Node Ordering in IDA , 1993, IJCAI.

[26]  D. Landman,et al.  Reverse engineering source code: Empirical studies of limitations and opportunities , 2017 .

[27]  Sándor Kisfaludi-Bak,et al.  ETH-tight algorithms for geometric network problems , 2019 .

[28]  Marinus J. Plasmeijer,et al.  Maintaining Separation of Concerns Through Task Oriented Software Development , 2017, TFP.

[29]  Mahmoud Talebi,et al.  Scalable performance analysis of wireless sensor networks , 2018 .

[30]  L. Swartjes,et al.  Model-based design of baggage handling systems , 2018 .

[31]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.

[32]  Anastasia Izmaylova,et al.  Practical general top-down parsers , 2019 .

[33]  D. Fox Harrell,et al.  An approach to general videogame evaluation and automatic generation using a description language , 2014, 2014 IEEE Conference on Computational Intelligence and Games.

[34]  Marcus Gerhold,et al.  Choice and chance : model-based testing of stochastic behaviour , 2018 .

[35]  Hrishikesh Salunkhe Modeling and buffer analysis of real-time streaming radio applications scheduled on heterogeneous multiprocessors , 2017 .

[36]  Riemer van Rozen Languages of games and play: Automating game design & enabling live programming , 2020 .

[37]  Flemming Nielson,et al.  Semantics with applications - a formal introduction , 1992, Wiley professional computing.

[38]  Jorge A. Navas,et al.  TRACER: A Symbolic Execution Tool for Verification , 2012, CAV.

[39]  Pieter Koopman,et al.  A Task-Based DSL for Microcomputers , 2018, RWDSL2018.

[40]  Jeroen Meijer,et al.  Efficient learning and analysis of system behavior , 2019 .

[41]  Jean-François Lebeau,et al.  Automating Next-Step Hints Generation Using ASTUS , 2012, ITS.

[42]  M. Mehr,et al.  Faster algorithms for geometric clustering and competitive facility-location problems , 2018 .

[43]  Am Ana Sutii Modularity and reuse of domain-specific languages : an exploration with MetaMod , 2017 .

[44]  Henning Basold,et al.  Mixed Inductive-Coinductive Reasoning Types, Programs and Logic , 2018 .

[45]  Manuel Serrano,et al.  Hiphop: a synchronous reactive extension for hop , 2011, PLASTIC '11.

[46]  Koen Claessen,et al.  QuickCheck: a lightweight tool for random testing of Haskell programs , 2000, ICFP.

[47]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[48]  Richard Fikes,et al.  STRIPS: A New Approach to the Application of Theorem Proving to Problem Solving , 1971, IJCAI.

[49]  Dan Zhang,et al.  From concurrent state machines to reliable multi-threaded Java code , 2018 .

[50]  P. Fiterau-Brostean Active Model Learning for the Analysis of Network Protocols , 2018 .

[51]  Johan Jeuring,et al.  Feedback services for stepwise exercises , 2014, Sci. Comput. Program..

[52]  Yaron Goland,et al.  Web Services Business Process Execution Language , 2009, Encyclopedia of Database Systems.

[53]  Bas Lijnse,et al.  iTasks for a change: type-safe run-time change in dynamically evolving workflows , 2011, PEPM '11.

[54]  Dennis Guck,et al.  Reliable systems: fault tree analysis via Markov reward automata , 2017 .

[55]  Nico Naus,et al.  TopHat: A formal foundation for task-oriented programming , 2019, PPDP.

[56]  Judea Pearl,et al.  Probabilistic reasoning in intelligent systems - networks of plausible inference , 1991, Morgan Kaufmann series in representation and reasoning.

[57]  Efraim Turban,et al.  Decision Support and Expert Systems: Managerial Perspectives , 1990 .

[58]  Paul van Schaik,et al.  Designing Electronic Performance Support Systems to Facilitate Learning , 2002 .

[59]  Shriram Krishnamurthi,et al.  Flapjax: a programming language for Ajax applications , 2009, OOPSLA '09.

[60]  George Candea,et al.  Prototyping symbolic execution engines for interpreted languages , 2014, ASPLOS.

[61]  Marinus J. Plasmeijer,et al.  Tonic: An Infrastructure to Graphically Represent the Definition and Behaviour of Tasks , 2014, Trends in Functional Programming.

[62]  P. A. Inostroza Valdera Structuring languages as object-oriented libraries , 2018 .

[63]  Vincent Bloemen,et al.  Strong Connectivity and Shortest Paths for Checking Models , 2019 .

[64]  Juan Chen,et al.  Verifying higher-order programs with the dijkstra monad , 2013, PLDI.

[65]  Matthias Felleisen,et al.  Contracts for higher-order functions , 2002, ICFP '02.

[66]  Johan Jeuring,et al.  Communicate! - A Serious Game for Communication Skills - , 2015, EC-TEL.

[67]  Lars Birkedal,et al.  Ynot: dependent types for imperative programs , 2008, ICFP.

[68]  P. Griffioen,et al.  A unit-aware matrix language and its application in control and auditing , 2019 .

[69]  Eelco Visser,et al.  Building program optimizers with rewriting strategies , 1998, ICFP '98.

[70]  Johan Jeuring,et al.  An interactive functional programming tutor , 2012, ITiCSE '12.

[71]  Eta S. Berner,et al.  Overview of Clinical Decision Support Systems , 2016 .

[72]  James C. King,et al.  A new approach to program testing , 1974, Programming Methodology.

[73]  Stefan Thaler,et al.  Automation for information security using machine learning , 2019 .

[74]  Emina Torlak,et al.  Symbolic types for lenient symbolic execution , 2018, Proc. ACM Program. Lang..

[75]  Manuel Serrano,et al.  Hop and HipHop: Multitier Web Orchestration , 2013, ICDCIT.

[76]  Vincent Aleven,et al.  A New Paradigm for Intelligent Tutoring Systems: Example-Tracing Tutors , 2009, Int. J. Artif. Intell. Educ..

[77]  Tom Murray,et al.  An Overview of Intelligent Tutoring System Authoring Tools: Updated Analysis of the State of the Art , 2003 .

[78]  M. Alizadeh Auditing of user behavior: identification, analysis and understanding of deviations , 2018 .

[79]  Nikolaos Bezirgiannis Abstract behavioral specification: unifying modeling and programming , 2018 .

[80]  Diego de la Rosa,et al.  A land evaluation decision support system (MicroLEIS DSS) for agricultural soil protection: With special reference to the Mediterranean region , 2004, Environ. Model. Softw..

[81]  Allen B. Downey,et al.  The Little Book of Semaphores , 2009 .

[82]  V. Laz Faculty of Mathematics and Computer Science , 2011 .

[83]  Wil M. P. van der Aalst,et al.  Process Mining - Discovery, Conformance and Enhancement of Business Processes , 2011 .

[84]  Leslie Pack Kaelbling,et al.  Planning and Acting in Partially Observable Stochastic Domains , 1998, Artif. Intell..

[85]  Christer Carlsson,et al.  Past, present, and future of decision support technology , 2002, Decis. Support Syst..

[86]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[87]  Carl Hewitt,et al.  PLANNER: A Language for Proving Theorems in Robots , 1969, IJCAI.

[88]  Lars Birkedal,et al.  Polymorphism and separation in hoare type theory , 2006, ICFP '06.

[89]  Wouter Swierstra A Hoare Logic for the State Monad , 2009, TPHOLs.

[90]  Johan Jeuring,et al.  Ask-Elle: an Adaptable Programming Tutor for Haskell Giving Automated Feedback , 2017, International Journal of Artificial Intelligence in Education.

[91]  Jonathan Schaeffer,et al.  Sokoban: A Challenging Single-Agent Search Problem , 1997, IJCAI 1997.

[92]  Marinus J. Plasmeijer,et al.  A Distributed Dynamic Architecture for Task Oriented Programming , 2017, IFL.

[93]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[94]  Graham Hutton,et al.  Modularity and Implementation of Mathematical Operational Semantics , 2011, Electron. Notes Theor. Comput. Sci..

[95]  Robert W. Blanning,et al.  A Formal Approach to Workflow Analysis , 2000, Inf. Syst. Res..

[96]  Rinus Plasmeijer,et al.  Incidone: A Task-Oriented Incident Coordination Tool , 2012 .

[97]  Ramesh Sharda,et al.  Decision support system effectiveness: a review and an empirical test , 1988 .

[98]  S.M.J. de Putter,et al.  Verification of concurrent systems in a model-driven engineering workflow , 2019 .

[99]  Saeed Darabi,et al.  Verification of Program Parallelization , 2018 .

[100]  Konstantinos Sagonas,et al.  Concolic testing for functional languages , 2015, PPDP.

[101]  Sam Tobin-Hochstadt,et al.  Higher order symbolic execution for contract verification and refutation , 2017, J. Funct. Program..

[102]  William T. Hallahan,et al.  Building a Symbolic Execution Engine for Haskell , 2017 .

[103]  Alejandro Serrano Type Error Customization for Embedded Domain-Specific Languages , 2018 .

[104]  Daniel J. Power,et al.  Decision Support Systems: Concepts and Resources for Managers , 2002 .

[105]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[106]  Bas Lijnse,et al.  Task-oriented programming in a pure functional language , 2012, PPDP.

[107]  J. S. Moerman,et al.  Nominal Techniques and Black Box Testing for Automata Learning , 2019 .

[108]  M. Klinik,et al.  Dynamic Resource and Task Management , 2018 .

[109]  Tom Bylander,et al.  The Computational Complexity of Propositional STRIPS Planning , 1994, Artif. Intell..

[110]  F. Yang,et al.  A theory of executability : with a focus on the expressivity of process calculi , 2018 .

[111]  M. P. Konzack,et al.  Trajectory analysis : bridging algorithms and visualization , 2018 .

[112]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .

[113]  Frédéric Boussinot,et al.  The ESTEREL language , 1991, Proc. IEEE.

[114]  Jan Martin Jansen,et al.  The Sky is the Limit: Analysing Resource Consumption Over Time Using Skylines , 2017, IFL.

[115]  Moritz Marc Beller,et al.  An Empirical Evaluation of Feedback-Driven Software Development , 2018 .

[116]  W. Lueks,et al.  Security and Privacy via Cryptography Having your cake and eating it too , 2017 .