Skip to main content

Abstract

Regarding documentation as anything that supports understanding, we present two test-first scenarios of executable documentation that involve and support different roles during program development through concrete data visualizations. The first is a teaching scenario. Within classical programming, different stages of executable documentation provide faceted layers of self-learning and user-centric diagnostics. Students and teachers benefit from auto-didactic exploration, appropriate diagram syntheses for runtime visualization, and automated test case generation. The latter can be created using reference implementations provided by the teacher but can also be used to foster the dialog between students and tutors. The second scenario introduces a new approach to WYSIWYG GUI editing that is able to render the runtime GUI appearance in real-time within the editor. Using scenario-based test cases, users can seamlessly experience, inspect, and test the GUI while they are editing. The paper discusses the impact of the provided tangible experiences and their role in modern IDEs.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Institutional subscriptions

Notes

  1. 1.

    We acknowledge that such test cases can also provide additional information. However, the interpretation of this data is commonly tightly bound to the skill set of the developer and mostly not directly supported by the IDE.

  2. 2.

    https://code.visualstudio.com.

  3. 3.

    https://www.typescriptlang.org.

  4. 4.

    https://angular.io.

  5. 5.

    https://jupyter.org.

  6. 6.

    https://visualstudio.microsoft.com.

  7. 7.

    https://www.eclipse.org.

  8. 8.

    https://www.eclipse.org/modeling/emf.

  9. 9.

    https://github.com/kieler/klassviz.

  10. 10.

    https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml.

  11. 11.

    https://github.com/dongli0x00/python-preview.

  12. 12.

    https://docs.python.org/3/library/doctest.html.

  13. 13.

    https://flutterflow.io.

  14. 14.

    https://bubble.io.

  15. 15.

    https://developer.apple.com/xcode/swiftui.

  16. 16.

    https://storybook.js.org.

  17. 17.

    http://csapp.cs.cmu.edu/3e/labs.html.

  18. 18.

    https://reactjs.org/docs/introducing-jsx.html.

  19. 19.

    https://angular.io/guide/template-syntax.

  20. 20.

    https://www.overleaf.com.

References

  1. Bainczyk, A., Schieweck, A., Isberner, M., Margaria, T., Neubauer, J., Steffen, B.: ALEX: mixed-mode learning of web applications at ease. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9953, pp. 655–671. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47169-3_51

    Chapter  Google Scholar 

  2. Bainczyk, A., Schieweck, A., Steffen, B., Howar, F.: Model-based testing without models: the TodoMVC case study. In: Katoen, J.-P., Langerak, R., Rensink, A. (eds.) ModelEd, TestEd, TrustEd. LNCS, vol. 10500, pp. 125–144. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-68270-9_7

    Chapter  Google Scholar 

  3. Beck, K.: Aim, fire [test-first coding]. IEEE Softw. 18(5), 87–89 (2001)

    Article  Google Scholar 

  4. Beck, K.: Test-Driven Development: By Example. Addison-Wesley Professional (2003)

    Google Scholar 

  5. Bordihn, H., Lamprecht, A.L., Margaria, T.: Foundations of semantics and model checking in a software engineering course. In: FMSEE &T@ FM, pp. 19–26 (2015)

    Google Scholar 

  6. Boßelmann, S., et al.: DIME: a programming-less modeling environment for web applications. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9953, pp. 809–832. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-47169-3_60

    Chapter  Google Scholar 

  7. Breathnach, C., Murphy, R., Margaria, T.: Transcribathons as practice-based learning for historians and computer scientists. In: 2021 IEEE 45th Annual Computers, Software, and Applications Conference (COMPSAC), pp. 1131–1136 (2021)

    Google Scholar 

  8. Bryant, R.E., David Richard, O.: Computer Systems: A Programmer’s Perspective, vol. 2. Prentice Hall, Upper Saddle River (2003)

    Google Scholar 

  9. Causevic, A., Sundmark, D., Punnekkat, S.: Factors limiting industrial adoption of test driven development: a systematic review. In: 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation, pp. 337–346. IEEE (2011)

    Google Scholar 

  10. Cooper, S.: The design of Alice. ACM Trans. Comput. Educ. (TOCE) 10(4), 1–16 (2010)

    Article  Google Scholar 

  11. Desai, C., Janzen, D., Savage, K.: A survey of evidence for test-driven development in academia. ACM SIGCSE Bull. 40(2), 97–101 (2008)

    Article  Google Scholar 

  12. Edwards, S.H.: Rethinking computer science education from a test-first perspective. In: Companion of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 148–155 (2003)

    Google Scholar 

  13. Edwards, S.H.: Using software testing to move students from trial-and-error to reflection-in-action. In: Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education, pp. 26–30 (2004)

    Google Scholar 

  14. Friendly, L.: The design of distributed hyperlinked programming documentation. In: Fraïssé, S., Garzotto, F., Isakowitz, T., Nanard, J., Nanard, M. (eds.) Hypermedia Design. WORKSHOPS COMP., pp. 151–173. Springer, London (1996). https://doi.org/10.1007/978-1-4471-3082-6_17

    Chapter  Google Scholar 

  15. Gansner, E.R., Koutsofios, E., North, S.C., Vo, K.P.: A technique for drawing directed graphs. Softw. Eng. 19(3), 214–230 (1993)

    Article  Google Scholar 

  16. Gossen, F., Kühn, D., Margaria, T., Lamprecht, A.L.: Computational thinking: learning by doing with the Cinco adventure game tool. In: 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC), vol. 01, pp. 990–999 (2018)

    Google Scholar 

  17. von Hanxleden, R., et al.: SCCharts: sequentially constructive statecharts for safety-critical applications. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2014), Edinburgh, UK, pp. 372–383. ACM, June 2014

    Google Scholar 

  18. Kluyver, T., et al.: Jupyter notebooks–a publishing format for reproducible computational workflows. In: Loizides, F., Scmidt, B. (eds.) Positioning and Power in Academic Publishing: Players, Agents and Agendas, pp. 87–90. IOS Press (2016)

    Google Scholar 

  19. Lamprecht, A.L., Margaria, T.: Scientific workflows with XMDD: a way to use process modeling in computational science education. Procedia Comput. Sci. 51, 1927–1936 (2015)

    Article  Google Scholar 

  20. Lamprecht, A.L., Margaria, T., McInerney, C.: A summer computing camp using ChainReaction and jABC. In: 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC), vol. 2, pp. 275–280 (2016)

    Google Scholar 

  21. Lamprecht, A.L., Margaria, T., Neubauer, J.: On the use of XMDD in software development education. In: 2015 IEEE 39th Annual Computer Software and Applications Conference, vol. 2, pp. 835–844 (2015)

    Google Scholar 

  22. Lamprecht, A.L., Tiziana, M.: Process Design for Natural Scientists. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45006-2

    Book  Google Scholar 

  23. Maloney, J., Resnick, M., Rusk, N., Silverman, B., Eastmond, E.: The scratch programming language and environment. ACM Trans. Comput. Educ. (TOCE) 10(4), 1–15 (2010)

    Article  Google Scholar 

  24. Margaria, T., Steffen, B.: eXtreme model-driven development (XMDD) technologies as a hands-on approach to software development without coding. In: Tatnall, A. (ed.) Encyclopedia of Education and Information Technologies, pp. 1–19. Springer, Cham (2020). https://doi.org/10.1007/978-3-319-60013-0_208-1

    Chapter  Google Scholar 

  25. McInerney, C., Lamprecht, A.-L., Margaria, T.: Computing camps for girls – a first-time experience at the university of limerick. In: Tatnall, A., Webb, M. (eds.) WCCE 2017. IAICT, vol. 515, pp. 494–505. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-74310-3_50

    Chapter  Google Scholar 

  26. Myler, H.R.: Fundamentals of Engineering Programming with C and Fortran. Cambridge University Press, Cambridge (1998)

    Book  Google Scholar 

  27. Noone, M., Mooney, A.: Visual and textual programming languages: a systematic review of the literature. J. Comput. Educ. 5(2), 149–174 (2018). https://doi.org/10.1007/s40692-018-0101-5

    Article  Google Scholar 

  28. Schieweck, A., Murphy, R., Khan, R., Breathnach, C., Margaria, T.: Evolution of the historian data entry application: supporting transcribathons in the digital humanities through MDD. In: 2022 IEEE 46th Annual Computers, Software, and Applications Conference (COMPSAC), pp. 177–186 (2022)

    Google Scholar 

  29. Schulze, C.D., Hoops, G., von Hanxleden, R.: Automatic layout and label management for UML sequence diagrams. In: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2018) (2018)

    Google Scholar 

  30. Schulze, C.D., Spönemann, M., von Hanxleden, R.: Drawing layered graphs with port constraints. J. Vis. Lang. Comput. Spec. Issue Diagram Aesthetics Layout 25(2), 89–106 (2014)

    Article  Google Scholar 

  31. Schulze, C.D., Spönemann, M., Schneider, C., von Hanxleden, R.: Two applications for transient views in software development environments (showpiece). In: Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2014), Melbourne, Australia, July 2014

    Google Scholar 

  32. Smyth, S., Schulz-Rosengarten, A., von Hanxleden, R.: Guidance in model-based compilations. In: Proceedings of the 8th International Symposium on Leveraging Applications of Formal Methods, Verification and Validation (ISoLA 2018), Doctoral Symposium. Electronic Communications of the EASST, Limassol, Cyprus, vol. 78, November 2018

    Google Scholar 

  33. Steffen, B., Margaria, T.: METAFrame in practice: design of intelligent network services. In: Olderog, E.-R., Steffen, B. (eds.) Correct System Design. LNCS, vol. 1710, pp. 390–415. Springer, Heidelberg (1999). https://doi.org/10.1007/3-540-48092-7_17

    Chapter  Google Scholar 

  34. Steffen, B., Margaria, T., Braun, V., Kalt, N.: Hierarchical service definition. Ann. Rev. Commun. ACM 51, 847–856 (1997)

    Google Scholar 

  35. Steffen, B., Margaria, T., Claßen, A., Braun, V.: The METAFrame’95 environment. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 450–453. Springer, Heidelberg (1996). https://doi.org/10.1007/3-540-61474-5_100

    Chapter  Google Scholar 

  36. Steffen, B., Margaria, T., Claßen, A., Braun, V., Reitenspieß, M.: An environment for the creation of intelligent network services. In: Intelligent Networks: IN/AIN Technologies, Operations, Services and Applications - A Comprehensive Report, pp. 287–300. IEC: International Engineering Consortium (1996)

    Google Scholar 

  37. Steffen, B., Margaria, T., Nagel, R., Jörges, S., Kubczak, C.: Model-driven development with the jABC. In: Bin, E., Ziv, A., Ur, S. (eds.) HVC 2006. LNCS, vol. 4383, pp. 92–108. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-70889-6_7

    Chapter  Google Scholar 

  38. Tegeler, T., Boßelmann, S., Schürmann, J., Smyth, S., Teumert, S., Steffen, B.: Executable documentation: From documentation languages to purpose-specific languages. In: Margaria, T., Steffen, B. (eds.) ISoLA 2022, LNCS, vol. 13702, pp. 174–192. Springer, Cham (2022)

    Google Scholar 

  39. Zweihoff, P., Steffen, B.: Pyrus: an online modeling environment for no-code data-analytics service composition. In: Margaria, T., Steffen, B. (eds.) ISoLA 2021. LNCS, vol. 13036, pp. 18–40. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-89159-6_2

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Steven Smyth .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

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

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Smyth, S. et al. (2022). Executable Documentation: Test-First in Action. In: Margaria, T., Steffen, B. (eds) Leveraging Applications of Formal Methods, Verification and Validation. Software Engineering. ISoLA 2022. Lecture Notes in Computer Science, vol 13702. Springer, Cham. https://doi.org/10.1007/978-3-031-19756-7_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-19756-7_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-19755-0

  • Online ISBN: 978-3-031-19756-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics