Skip to main content

A Domain-Specific Language for Payroll Calculations: An Experience Report from DATEV

  • Chapter
  • First Online:

Abstract

We review our experience developing a domain-specific language at DATEV, a large payroll service provider. The language enables business programmers to efficiently implement, test, and validate payroll calculations independent of downstream deployment considerations. It is fundamentally functional and addresses core domain challenges such as versioning of calculation rules and data and the processing of temporal data. We evaluate the language regarding reduction of complexity in payroll programs, the impact on quality, its suitability for use by domain experts, as well as the integration into the IT infrastructure. The chapter concludes with general learnings about building business DSLs.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Anh, B.T.M., Stinckwich, S., Ziane, M., Roche, B., Vinh, H.T.: Kendrick: A domain specific language and platform for mathematical epidemiological modelling. In: The 2015 IEEE RIVF International Conference on Computing & Communication Technologies-Research, Innovation, and Vision for Future (RIVF), pp. 132–137. IEEE, Piscataway (2015)

    Google Scholar 

  2. Antao, T., Hastings, I.M., McBurney, P.: Ronald: A domain-specific language to study the interactions between malaria infections and drug treatments. In: BIOCOMP, pp. 747–752 (2008)

    Google Scholar 

  3. Barrett, C., Tinelli, C.: Satisfiability modulo theories. In: Handbook of Model Checking, pp. 305–343. Springer, Berlin (2018)

    Google Scholar 

  4. Barzdins, J., Cerans, K., Kalnins, A., Grasmanis, M., Kozlovics, S., Lace, L., Liepins, R., Rencis, E., Sprogis, A., Zarins, A.: Domain specific languages for business process management: A case study. In: Proceedings of DSM, vol. 9, pp. 34–40 (2009)

    Google Scholar 

  5. Broy, M., Kirstan, S., Krcmar, H., Schätz, B., Zimmermann, J.: What is the benefit of a model-based design of embedded software systems in the car industry? In: Software Design and Development: Concepts, Methodologies, Tools, and Applications: Concepts, Methodologies, Tools, and Applications, p. 310. IGI Global, Pennsylvania (2013)

    Google Scholar 

  6. Bruckhaus, T., Madhavii, N., Janssen, I., Henshaw, J.: The impact of tools on software productivity. IEEE Softw. 13(5), 29–38 (1996)

    Article  Google Scholar 

  7. Chinosi, M., Trombetta, A.: BPMN: An introduction to the standard. Comput. Stand. Interfaces 34(1), 124–134 (2012)

    Article  Google Scholar 

  8. Christiansen, D.R., Grue, K., Niss, H., Sestoft, P., Sigtryggsson, K.S.: An actuarial programming language for life insurance and pensions. In: Proceedings of 30th International Congress of Actuaries (2013)

    Google Scholar 

  9. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fix points. In: Proceedings of the 4th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 238–252. ACM, NewYork (1977)

    Google Scholar 

  10. Cousot, P., Cousot, R.: Abstract interpretation frameworks. J. Logic Comput. 2(4), 511–547 (1992)

    Article  MathSciNet  Google Scholar 

  11. De Moura, L., Bjørner, N.: Z3: An efficient SMT solver. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, Berlin, (2008)

    Google Scholar 

  12. Erdweg, S., Giarrusso, P.G., Rendel, T.: Language composition untangled. In: Proceedings of the Twelfth Workshop on Language Descriptions, Tools, and Applications, p. 7. ACM, New York (2012)

    Google Scholar 

  13. Erdweg, S., Van Der Storm, T., Völter, M., Boersma, M., Bosman, R., Cook, W.R., Gerritsen, A., Hulshout, A., Kelly, S., Loh, A., et al.: The state of the art in language workbenches. In: International Conference on Software Language Engineering, pp. 197–217. Springer, Berlin (2013)

    Google Scholar 

  14. Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, Boston (2004)

    Google Scholar 

  15. Faerber, M., Jablonski, S., Schneider, T.: A comprehensive modeling language for clinical processes. In ECEH, pp. 77–88. Citeseer (2007)

    Google Scholar 

  16. Feurzeig, W., Lukas, G.: LOGO - a programming language for teaching mathematics. Educat. Technol. 12(3), 39–46 (1972)

    Google Scholar 

  17. Florence, S.P., Fetscher, B., Flatt, M., Temps, W.H., Kiguradze, T., West, D.P., Niznik, C., Yarnold, P.R., Findler, R.B., Belknap, S.M.: POP-PL: A patient-oriented prescription programming language. In: ACM SIGPLAN Notices, vol. 51, pp. 131–140. ACM, New York (2015)

    Google Scholar 

  18. Hermans, F., Pinzger, M., Van Deursen, A.: Domain-specific languages in practice: A user study on the success factors. In: International Conference on Model Driven Engineering Languages and Systems, pp. 423–437. Springer, Berlin (2009)

    Google Scholar 

  19. Huber, G., Wälzlein, R.: Problem und lösung beschreiben. Java Mag. 2017(1) (2017)

    Google Scholar 

  20. Iu, M.-Y.: Programming basics: A website teaching people how to program. http://www.programmingbasics.org/en/ (2018)

  21. Johnston, T.: Bitemporal Data: Theory and Practice. Newnes (2014)

    Google Scholar 

  22. Jürgens, E., Feilkas, M.: Domain Specific Languages (2006)

    Google Scholar 

  23. Kärnä, J., Tolvanen, J.-P., Kelly, S.: Evaluating the use of domain-specific modeling in practice. In: Proceedings of the 9th OOPSLA Workshop on Domain-Specific Modeling (2009)

    Google Scholar 

  24. Kieburtz, R.B., McKinney, L., Bell, J.M., Hook, J., Kotov, A., Lewis, J., Oliva, D.P., Sheard, T., Smith, I., Walton, L.: A software engineering experiment in software component generation. In: Proceedings of the 18th International Conference on Software Engineering, pp. 542–552. IEEE Computer Society, Washington (1996)

    Google Scholar 

  25. Kolk, H., Voelter, M.: Democratizing software creation. Presentation at OOP 2008 Conference http://voelter.de/data/presentations/KolkVoelter_IntentionalSoftware.pdf, (2008)

  26. Liebel, G., Marko, N., Tichy, M., Leitner, A., Hansson, J.: Assessing the state-of-practice of model-based engineering in the embedded systems domain. In: International Conference on Model Driven Engineering Languages and Systems, pp. 166–182. Springer, Berlin (2014)

    Google Scholar 

  27. Liggesmeyer, P., Trapp, M.: Trends in embedded software engineering. IEEE Softw. 26(3), 19–25 (2009)

    Article  Google Scholar 

  28. Maloney, J., Resnick, M., Rusk, N., Silverman, B., Eastmond, E.: The scratch programming language and environment. ACM Trans. Comput. Education (TOCE) 10(4), 16 (2010)

    Google Scholar 

  29. McDirmid, S.: Usable live programming. In: Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, pp. 53–62. ACM, New York (2013)

    Google Scholar 

  30. Mediratta, A.: A generic domain specific language for financial contracts. PhD Thesis, Rutgers University-Graduate School-New Brunswick (2007)

    Google Scholar 

  31. Metacase Consulting. DSM examples. https://metacase.com/cases/dsm_examples.html (2019)

  32. Object Management Group. Decision model and notation specification version 1.2. https://www.omg.org/spec/DMN (2019)

  33. Pace, G.J., Rosner, M.: A controlled language for the specification of contracts. In: International Workshop on Controlled Natural Language, pp. 226–245. Springer, Berlin (2009)

    Google Scholar 

  34. Pepels, B., Zanten, G.V.v.: Model driven software engineering in the large: Experiences at the Dutch tax and customs service (industry talk). In: Proceedings of the 1st Industry Track on Software Language Engineering, ITSLE 2016, pp. 2–2. ACM, New York (2016)

    Google Scholar 

  35. Peyton Jones, S., Eber, J.-M., Seward, J.: Composing contracts: An adventure in financial engineering (functional pearl). In: ACM SIGPLAN Notices, vol. 35, pp. 280–292. ACM, New York (2000)

    Google Scholar 

  36. Simonyi, C., Christerson, M., Clifford, S.: Intentional software. In: ACM SIGPLAN Notices, vol. 41, pp. 451–464. ACM, New York (2006)

    Google Scholar 

  37. Stenberg, J.: Domain-driven design with onion architecture. https://www.infoq.com/news/2014/10/ddd-onion-architecture (2014)

  38. Stoel, J., Storm, T.v.d., Vinju, J., Bosman, J.: Solving the bank with rebel: On the design of the rebel specification language and its application inside a bank. In: Proceedings of the 1st Industry Track on Software Language Engineering, pp. 13–20. ACM, New York (2016)

    Google Scholar 

  39. van Deursen, A.: Domain-specific languages versus object-oriented frameworks: A financial engineering case study. In: Smalltalk and Java in Industry and Academia, STJA 97, pp. 35–39. CiteSeer (1997)

    Google Scholar 

  40. Van Deursen, A., Klint, P., Visser, J.: Domain-specific languages: An annotated bibliography. ACM Sigplan Notices 35(6), 26–36 (2000)

    Article  Google Scholar 

  41. Voelter, M.: Language and IDE development, modularization and composition with MPS. In: GTTSE 2011. Lecture Notes in Computer Science. Springer, Berlin (2011)

    Google Scholar 

  42. Voelter, M.: The design, evolution, and use of KernelF. In: International Conference on Theory and Practice of Model Transformations, pp. 3–55. Springer, Berlin (2018)

    Google Scholar 

  43. Voelter, M.: Fusing modeling and programming into language-oriented programming. In: International Symposium on Leveraging Applications of Formal Methods, pp. 309–339. Springer, Berlin (2018)

    Google Scholar 

  44. Voelter, M.: Programming basics: How to think like a programmer. https://markusvoelter.github.io/ProgrammingBasics/ (2018)

  45. Voelter, M.: The hidden layer between the fachlichkeit and the -ilities. https://medium.com/@markusvoelter/the-hidden-layer-between-the-fachlichkeit-and-the-ilities-7d850fde00bf (2019)

  46. Voelter, M., van Deursen, A., Kolb, B., Eberle, S.: Using c language extensions for developing embedded software: A case study. In: OOPSLA 2015 (2015)

    Google Scholar 

  47. Voelter, M., Kolb, B., Szabó, T., Ratiu, D., van Deursen, A.: Lessons learned from developing mbeddr: A case study in language engineering with MPS. Softw. Syst. Model. 18, 585–630 (2017)

    Article  Google Scholar 

  48. Voelter, M., Szabó, T., Lisson, S., Kolb, B., Erdweg, S., Berger, T.: Efficient development of consistent projectional editors using grammar cells. In: Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, pp. 28–40. ACM, New York (2016)

    Google Scholar 

  49. Voelter, M., Kolb, B., Birken, K., Tomassetti, F., Alff, P., Wiart, L., Wortmann, A., Nordmann, A.: Using language workbenches and domain-specific languages for safety-critical software development. Softw. Syst. Model. 18, 1–24 (2018)

    Google Scholar 

  50. Weintrop, D., Afzal, A., Salac, J., Francis, P., Li, B., Shepherd, D.C., Franklin, D., Evaluating coblox: A comparative study of robotics programming environments for adult novices. In: Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, p. 366. ACM, New York (2018)

    Google Scholar 

  51. Wing, J.M.: Computational thinking. Commun. ACM 49(3), 33–35 (2006)

    Article  Google Scholar 

Download references

Acknowledgements

We thank Bastian Kruck and the reviewers of the book for detailed and very useful feedback on this chapter. Our thanks also goes to the anonymous reviewers of the MPS book.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Markus Voelter .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Voelter, M., Koščejev, S., Riedel, M., Deitsch, A., Hinkelmann, A. (2021). A Domain-Specific Language for Payroll Calculations: An Experience Report from DATEV. In: Bucchiarone, A., Cicchetti, A., Ciccozzi, F., Pierantonio, A. (eds) Domain-Specific Languages in Practice. Springer, Cham. https://doi.org/10.1007/978-3-030-73758-0_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-73758-0_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-73757-3

  • Online ISBN: 978-3-030-73758-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics