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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 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.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
References
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
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
Beck, K.: Aim, fire [test-first coding]. IEEE Softw. 18(5), 87–89 (2001)
Beck, K.: Test-Driven Development: By Example. Addison-Wesley Professional (2003)
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)
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
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)
Bryant, R.E., David Richard, O.: Computer Systems: A Programmer’s Perspective, vol. 2. Prentice Hall, Upper Saddle River (2003)
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)
Cooper, S.: The design of Alice. ACM Trans. Comput. Educ. (TOCE) 10(4), 1–16 (2010)
Desai, C., Janzen, D., Savage, K.: A survey of evidence for test-driven development in academia. ACM SIGCSE Bull. 40(2), 97–101 (2008)
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)
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)
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
Gansner, E.R., Koutsofios, E., North, S.C., Vo, K.P.: A technique for drawing directed graphs. Softw. Eng. 19(3), 214–230 (1993)
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)
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
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)
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)
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)
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)
Lamprecht, A.L., Tiziana, M.: Process Design for Natural Scientists. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-45006-2
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)
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
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
Myler, H.R.: Fundamentals of Engineering Programming with C and Fortran. Cambridge University Press, Cambridge (1998)
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
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)
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)
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)
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
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
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
Steffen, B., Margaria, T., Braun, V., Kalt, N.: Hierarchical service definition. Ann. Rev. Commun. ACM 51, 847–856 (1997)
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
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)
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
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)
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
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
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)