Tonic: An Infrastructure to Graphically Represent the Definition and Behaviour of Tasks
In Task Oriented Programming (TOP), tasks, as performed by both humans and computers, are the core concept. TOP is implemented by the iTask system (iTasks) as a shallowly embedded Domain Specific Language (DSL) in the functional programming language Clean. iTasks is used in industry for rapid prototyping in complex sociotechnical domains. However, for non-technical stakeholders, an iTask specification is too difficult to understand. Stakeholders like to communicate their ideas informally, using drawings and natural language, while TOP programmers model tasks in Clean. We propose a way to eliminate this communication gap by translating a textual iTasks specification into a graphical one, called a blueprint, which should be understandable by non-technical stakeholders. Blueprints abstract from Clean language details as much as possible, yet contain enough information to be understandable independently. Furthermore, we show how blueprints are instantiated at runtime, resulting in an animated trace, showing how end-users progress with which tasks. The Clean compiler has been adjusted to generate blueprints, as well as inject wrapper code that relates run-time information to the compile time specification. A Tonic viewer application, written in iTasks, uses this wrapper code to visualize the traces.
KeywordsDomain Expert Task Function Functional Programming Task Structure Task Application
Unable to display preview. Download preview PDF.
- 1.Plasmeijer, R., Lijnse, B., Michels, S., Achten, P., Koopman, P.: Task-oriented programming in a pure functional language. In: Proceedings of the 2012 ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, PPDP 2012, Leuven, Belgium, pp. 195–206. ACM, September 2012Google Scholar
- 2.Plasmeijer, R., Achten, P., Koopman, P., Lijnse, B., Van Noort, T., Van Groningen, J.: iTasks for a change: type-safe run-time change in dynamically evolving workflows. In: PEPM 2011: Proceedings Workshop on Partial Evaluation and Program Manipulation, Austin, TX, USA, pp. 151–160. ACM, New York (2011)Google Scholar
- 3.Plasmeijer, R., van Eekelen, M.: Clean language report (version 2.1) (2002). http://clean.cs.ru.nl
- 4.Jansson, P., Jeuring, J.: PolyP — a polytypic programming language extension. In: Conference Record of POPL 1997: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 470–482. ACM Press (1997)Google Scholar
- 8.Lijnse, B., Jansen, J., Plasmeijer, R.: Incidone: a task-oriented incident coordination tool. In: Rothkrantz, L., Ristvej, J., Franco, Z. (eds.) Proceedings of the 9th International Conference on Information Systems for Crisis Response and Management, ISCRAM 2012, Vancouver, Canada, April 2012Google Scholar
- 9.Object Modeling Group: OMG Unified Modeling Language Specification. Technical report, March 2000Google Scholar
- 10.Object Modeling Group: OMG Unified Modeling Language (OMG UML), Infrastructure. Technical report, March 2012Google Scholar
- 11.Achten, P.: Clean for Haskell98 programmers - a quick reference guide, 13 July 2007Google Scholar
- 13.Reekie, H.J.: Visual Haskell: a first attempt. Technical report (1994)Google Scholar
- 17.Petri, C.A.: Communication with Automata. Technical Report RADC-TR-65-377, January 1966Google Scholar
- 18.White, S.A.: Business Process Model and Notation, V1.1, pp. 1–318, January 2008Google Scholar
- 19.Fuhs, J., Cannady, J.: An automated approach in reverse engineering Java applications using Petri Nets. In: IEEE SoutheastCon, 2004, Greensboro, North Carolina, pp. 90–96. IEEE, March 2004Google Scholar