Abstract
Task Oriented Programming is a programming paradigm that enhances ‘classic’ functional programming with means to express the coordination of work among people and computer systems, the distribution and control of data sources, and the human-machine interfaces. To make the creation process of such applications feasible, it is important to have separation of concerns. In this paper we demonstrate how this is achieved within the Task Oriented Software Development process and illustrate the approach by means of a case study.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Achten, P., Eekelen, M., Mol, M., Plasmeijer, R.: EditorArrow: an arrow-based model for editor-based programming. J. Funct. Program. 23, 185–224 (2013)
Achten, P.: Why functional programming matters to me. In: Achten, P., Koopman, P. (eds.) The Beauty of Functional Code. LNCS, vol. 8106, pp. 79–96. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-40355-2_7
Achten, P., Stutterheim, J., Domoszlai, L., Plasmeijer, R.: Task oriented programming with purely compositional interactive scalable vector graphics. In: Tobin-Hochstadt, S. (ed.) Proceedings of the 26th 2014 International Symposium on Implementation and Application of Functional Languages, IFL 2014, pp. 7:1–7:13. ACM, New York (2014)
Achten, P., Stutterheim, J., Lijnse, B., Plasmeijer, R.: Towards the layout of things. In: Schrijvers, T. (ed.) Proceedings 28th International Symposium Implementation and Application of Functional Languages, IFL 2016. ACM, Leuven (2016)
Alimarine, A., Plasmeijer, R.: A generic programming extension for clean. In: Arts, T., Mohnen, M. (eds.) IFL 2001. LNCS, vol. 2312, pp. 168–185. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-46028-4_11
Bjornson, J., Tayanovskyy, A., Granicz, A.: Composing reactive GUIs in F# using WebSharper. In: Hage, J., Morazán, M.T. (eds.) IFL 2010. LNCS, vol. 6647, pp. 203–216. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-24276-2_13
Courtney, A.A.: Modeling user interfaces in a functional language. Ph.D. thesis, Yale University, USA, May 2004
Czaplicki, E., Chong, S.: Asynchronous functional reactive programming for GUIs. In: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2013, pp. 411–422. ACM (2013)
Dahlström, E., Dengler, P., Grasso, A., Lilley, C., McCormack, C., Schepers, D., Watt, J.: Scalable vector graphics (SVG) 1.1, 2nd edn. Technical report, REC-SVG11-20110816, W3C Recommendation, 16 August 2011
Dijkstra, E.W.: Selected Writings on Computing: A Personal Perspective. Springer, New York (1982). https://doi.org/10.1007/978-1-4612-5695-3
Domoszlai, L., Lijnse, B., Plasmeijer, R.: Editlets: Type-based, client-side editors for iTasks. In: Tobin-Hochstadt, S. (ed.) Proceedings of the 26th 2014 International Symposium on Implementation and Application of Functional Languages, IFL 2014, pp. 6:1–6:13. ACM, New York (2014)
Domoszlai, L., Lijnse, B., Plasmeijer, R.: Parametric lenses: change notification for bidirectional lenses. In: Proceedings of the 26th 2014 International Symposium on Implementation and Application of Functional Languages, IFL 2014, pp. 9:1–9:11. ACM, New York (2014)
Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming (1997). http://conal.net/papers/icfp97/
Fowler, S., Denuzière, L., Granicz, A.: Reactive single-page applications with dynamic dataflow. In: Pontelli, E., Son, T.C. (eds.) PADL 2015. LNCS, vol. 9131, pp. 58–73. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-19686-2_5
Hinze, R.: A new approach to generic functional programming. In: Reps, T. (ed.) Proceedings of the 27th International Symposium on Principles of Programming Languages, POPL 2000, Boston, MA, USA, pp. 119–132. ACM Press (2000)
Koopman, P., Plasmeijer, R.: A shallow embedded type safe extendable DSL for the Arduino. In: Serrano, M., Hage, J. (eds.) TFP 2015. LNCS, vol. 9547, pp. 104–123. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-39110-6_6
Krasner, G.E., Pope, S.T.: A cookbook for using the model-view controller user interface paradigm in smalltalk-80. J. Object Oriented Program. 1(3), 26–49 (1988). http://dl.acm.org/citation.cfm?id=50757.50759
Lijnse, B., Jansen, J., Nanne, R., Plasmeijer, R.: Capturing the Netherlands coast guard’s SAR workflow with iTasks. In: Proceedings of the 8th International ISCRAM Conference - Lisbon, Portugal, May 2011, pp. 1–10. National Civil Engineering Laboratory, Lisbon (2011)
Lijnse, B.: TOP to the rescue - task-oriented programming for incident response applications. Ph.D. thesis, Institute for Computing and Information Sciences, Radboud University Nijmegen, The Netherlands (2013). ISBN 978-90-820259-0-3
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 2012
Piers, J.: Task-oriented programming for developing non-distributed interruptible embedded systems. Master’s thesis, Institute for Computing and Information Sciences, Radboud University, August 2016
Plasmeijer, R., Achten, P.: iData for the world wide web – programming interconnected web forms. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945, pp. 242–258. Springer, Heidelberg (2006). https://doi.org/10.1007/11737414_17
Plasmeijer, M.J., Achten, P.M., Koopman, P.W.M.: iTasks: executable specifications of interactive work flow systems for the web. In: Proceedings of the 12th International Conference on Functional Programming, ICFP 2007, pp. 141–152. ACM Press, Freiburg, 1–3 October 2007
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, pp. 195–206. ACM, Leuven, September 2012
Sommerville, I.: Software Engineering, 7th edn. Addison Wesley, Boston (2007)
Weelden, A.: Putting types to good use. Ph.D. thesis, Institute for Computing and Information Sciences, Radboud University Nijmegen, The Netherlands, 17 October 2007
Acknowledgements
This research is funded by the Royal Netherlands Navy and TNO. We thank the anonymous reviewers for their constructive comments.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Stutterheim, J., Achten, P., Plasmeijer, R. (2018). Maintaining Separation of Concerns Through Task Oriented Software Development. In: Wang, M., Owens, S. (eds) Trends in Functional Programming. TFP 2017. Lecture Notes in Computer Science(), vol 10788. Springer, Cham. https://doi.org/10.1007/978-3-319-89719-6_2
Download citation
DOI: https://doi.org/10.1007/978-3-319-89719-6_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-89718-9
Online ISBN: 978-3-319-89719-6
eBook Packages: Computer ScienceComputer Science (R0)