Advertisement

Maintaining Separation of Concerns Through Task Oriented Software Development

  • Jurriën Stutterheim
  • Peter AchtenEmail author
  • Rinus Plasmeijer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10788)

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.

Notes

Acknowledgements

This research is funded by the Royal Netherlands Navy and TNO. We thank the anonymous reviewers for their constructive comments.

References

  1. 1.
    Achten, P., Eekelen, M., Mol, M., Plasmeijer, R.: EditorArrow: an arrow-based model for editor-based programming. J. Funct. Program. 23, 185–224 (2013)MathSciNetCrossRefGoogle Scholar
  2. 2.
    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_7CrossRefzbMATHGoogle Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    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)Google Scholar
  5. 5.
    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_11CrossRefGoogle Scholar
  6. 6.
    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_13CrossRefGoogle Scholar
  7. 7.
    Courtney, A.A.: Modeling user interfaces in a functional language. Ph.D. thesis, Yale University, USA, May 2004Google Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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 2011Google Scholar
  10. 10.
    Dijkstra, E.W.: Selected Writings on Computing: A Personal Perspective. Springer, New York (1982).  https://doi.org/10.1007/978-1-4612-5695-3CrossRefzbMATHGoogle Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    Elliott, C., Hudak, P.: Functional reactive animation. In: International Conference on Functional Programming (1997). http://conal.net/papers/icfp97/
  14. 14.
    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_5CrossRefGoogle Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    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_6CrossRefGoogle Scholar
  17. 17.
    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.50759Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    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-3Google Scholar
  20. 20.
    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
  21. 21.
    Piers, J.: Task-oriented programming for developing non-distributed interruptible embedded systems. Master’s thesis, Institute for Computing and Information Sciences, Radboud University, August 2016Google Scholar
  22. 22.
    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_17CrossRefGoogle Scholar
  23. 23.
    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 2007Google Scholar
  24. 24.
    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 2012Google Scholar
  25. 25.
    Sommerville, I.: Software Engineering, 7th edn. Addison Wesley, Boston (2007)zbMATHGoogle Scholar
  26. 26.
    Weelden, A.: Putting types to good use. Ph.D. thesis, Institute for Computing and Information Sciences, Radboud University Nijmegen, The Netherlands, 17 October 2007Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Jurriën Stutterheim
    • 1
  • Peter Achten
    • 1
    Email author
  • Rinus Plasmeijer
    • 1
  1. 1.Institute for Computing and Information SciencesRadboud University NijmegenNijmegenThe Netherlands

Personalised recommendations