Development of a toolkit for analyzing software debugging processes using the constructive approach

Authors

DOI:

https://doi.org/10.15587/1729-4061.2020.215090

Keywords:

Process Mining, debugging, constructive-synthesizing modeling, training, software engineering

Abstract

Constructive-synthesizing modeling and the Process Mining methods in a toolkit to monitor and analyze the software debugging process were applied. Methods for monitoring the development and debugging processes are the basis for improving the level of practical training of students, reducing the time that is used irrationally in the process of software development by a student, and in monitoring the processes of performance of tasks by a teacher. The process of software debugging is seen as a sequence of actions when dealing with relevant tools. Using the methodology of constructive-synthesizing modeling, a constructor for forming a debugging actions log was developed. Based on the constructive model, the extension to the integrated development environment (IDE) Microsoft Visual Studio, in which all debugging actions are recorded in an event log, was designed. During debugging in the IDE, event logs are collected and then a conformance checking of these logs with regard to the reference model is performed. To do this, the ProM (Eindhoven Technical University, Netherlands), a platform for Process Mining methods, is used. By checking compliance, it is possible to compare different debugging processes and recognize behavioral similarities and differences. The main purpose of the developed toolkit is to collect debugging actions from the developer’s IDE. By better understanding how students grasp and deal with errors, one can help novices learn to program. Knowing how programmers debug can encourage researchers to develop more practically directed methods, enable teachers to improve their debugging curricula and allow tool developers to adapt the debugger to the actual needs of users. It is practically suggested to use the prepared tools in the software engineering course

Author Biographies

Viktor Shynkarenko, Dnipro National University of Railway Transport named after Academician V. Lazaryan Lazaryana str., 2, Dnipro, Ukraine, 49010

Doctor of Technical Sciences, Professor

Department of Computer and Information Technologies

Oleksandr Zhevaho, Dnipro National University of Railway Transport named after Academician V. Lazaryan Lazaryana str., 2, Dnipro, Ukraine, 49010

Postgraduate Student

Department of Computer and Information Technologies

References

  1. IEEE Standard Glossary of Software Engineering Terminology (1990). doi: https://doi.org/10.1109/ieeestd.1990.101064
  2. LaToza, T. D., Myers, B. A. (2010). Developers ask reachability questions. Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - ICSE ’10. doi: https://doi.org/10.1145/1806799.1806829
  3. Shynkarenko, V., Zhevago, O. (2019). Visualization of program development process. 2019 IEEE 14th International Conference on Computer Sciences and Information Technologies (CSIT). doi: https://doi.org/10.1109/stc-csit.2019.8929774
  4. Shynkarenko, V., Zhevaho, O. (2020). Constructive modeling of the software development process for modern code review. In IEEE 2020 15th International Scientific and Technical Conference on Computer Sciences and Information Technologies, CSIT 2020.
  5. Denny, P., Luxton-Reilly, A., Tempero, E., Hendrickx, J. (2011). Understanding the syntax barrier for novices. Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education - ITiCSE ’11. doi: https://doi.org/10.1145/1999747.1999807
  6. Denny, P., Luxton-Reilly, A., Carpenter, D. (2014). Enhancing syntax error messages appears ineffectual. Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education - ITiCSE ’14. doi: https://doi.org/10.1145/2591708.2591748
  7. Pegoraro, M., van der Aalst, W. M. P. (2019). Mining Uncertain Event Data in Process Mining. 2019 International Conference on Process Mining (ICPM). doi: https://doi.org/10.1109/icpm.2019.00023
  8. Bers, M. U., Flannery, L., Kazakoff, E. R., Sullivan, A. (2014). Computational thinking and tinkering: Exploration of an early childhood robotics curriculum. Computers & Education, 72, 145–157. doi: https://doi.org/10.1016/j.compedu.2013.10.020
  9. Lee, G. C., Wu, J. C. (1999). Debug It: A debugging practicing system. Computers & Education, 32 (2), 165–179. doi: https://doi.org/10.1016/s0360-1315(98)00063-3
  10. Maalej, W., Tiarks, R., Roehm, T., Koschke, R. (2014). On the Comprehension of Program Comprehension. ACM Transactions on Software Engineering and Methodology, 23 (4), 1–37. doi: https://doi.org/10.1145/2622669
  11. Yamamoto, R., Noguchi, Y., Kogure, S., Yamashita, K., Konishi, T., Itoh, Y. (2016). Design of a learning support system and lecture to teach systematic debugging to novice programmers. In ICCE 2016 – 24th International Conference on Computers in Education: Think Global Act Local – Main Conference Proceedings, 276–281.
  12. Alqadi, B. S., Maletic, J. I. (2017). An Empirical Study of Debugging Patterns Among Novices Programmers. Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. doi: https://doi.org/10.1145/3017680.3017761
  13. Gouws, L. A., Bradshaw, K., Wentworth, P. (2013). Computational thinking in educational activities. Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE ’13. doi: https://doi.org/10.1145/2462476.2466518
  14. Bryce, R. C., Cooley, A., Hansen, A., Hayrapetyan, N. (2010). A one year empirical study of student programming bugs. 2010 IEEE Frontiers in Education Conference (FIE). doi: https://doi.org/10.1109/fie.2010.5673143
  15. Ghosh, D., Singh, J. (2019). A Systematic Review on Program Debugging Techniques. Smart Computing Paradigms: New Progresses and Challenges, 193–199. doi: https://doi.org/10.1007/978-981-13-9680-9_16
  16. Bottcher, A., Thurner, V., Schlierkamp, K., Zehetmeier, D. (2016). Debugging students’ debugging process. 2016 IEEE Frontiers in Education Conference (FIE). doi: https://doi.org/10.1109/fie.2016.7757447
  17. Altadmri, A., Brown, N. C. C. (2015). 37 Million Compilations. Proceedings of the 46th ACM Technical Symposium on Computer Science Education - SIGCSE ’15. doi: https://doi.org/10.1145/2676723.2677258
  18. Perscheid, M., Siegmund, B., Taeumel, M., Hirschfeld, R. (2016). Studying the advancement in debugging practice of professional software developers. Software Quality Journal, 25 (1), 83–110. doi: https://doi.org/10.1007/s11219-015-9294-2
  19. Petrillo, F., Mandian, H., Yamashita, A., Khomh, F., Gueheneuc, Y.-G. (2017). How Do Developers Toggle Breakpoints? Observational Studies. 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS). doi: https://doi.org/10.1109/qrs.2017.39
  20. Beller, M., Spruit, N., Spinellis, D., Zaidman, A. (2018). On the dichotomy of debugging behavior among programmers. Proceedings of the 40th International Conference on Software Engineering. doi: https://doi.org/10.1145/3180155.3180175
  21. Snipes, W., Murphy-Hill, E., Fritz, T., Vakilian, M., Damevski, K., Nair, A. R., Shepherd, D. (2015). A Practical Guide to Analyzing IDE Usage Data. The Art and Science of Analyzing Software Data, 85–138. doi: https://doi.org/10.1016/b978-0-12-411519-4.00005-7
  22. Yamashita, A., Petrillo, F., Khomh, F., Guéhéneuc, Y.-G. (2018). Developer interaction traces backed by IDE screen recordings from think aloud sessions. Proceedings of the 15th International Conference on Mining Software Repositories - MSR ’18. doi: https://doi.org/10.1145/3196398.3196457
  23. Bellman, C., Seet, A., Baysal, O. (2018). Studying developer build issues and debugger usage via timeline analysis in visual studio IDE. Proceedings of the 15th International Conference on Mining Software Repositories - MSR ’18. doi: https://doi.org/10.1145/3196398.3196463
  24. Damevski, K., Chen, H., Shepherd, D., Pollock, L. (2016). Interactive exploration of developer interaction traces using a hidden Markov model. Proceedings of the 13th International Workshop on Mining Software Repositories - MSR ’16. doi: https://doi.org/10.1145/2901739.2901741
  25. Piech, C., Sahami, M., Koller, D., Cooper, S., Blikstein, P. (2012). Modeling how students learn to program. Proceedings of the 43rd ACM Technical Symposium on Computer Science Education - SIGCSE ’12. doi: https://doi.org/10.1145/2157136.2157182
  26. Petrillo, F., Soh, Z., Khomh, F., Pimenta, M., Freitas, C., Gueheneuc, Y.-G. (2016). Understanding interactive debugging with Swarm Debug Infrastructure. 2016 IEEE 24th International Conference on Program Comprehension (ICPC). doi: https://doi.org/10.1109/icpc.2016.7503740
  27. Luxton-Reilly, A., McMillan, E., Stevenson, E., Tempero, E., Denny, P. (2018). Ladebug: an online tool to help novice programmers improve their debugging skills. Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education - ITiCSE 2018. doi: https://doi.org/10.1145/3197091.3197098
  28. Lin, Y.-T., Wu, C.-C., Hou, T.-Y., Lin, Y.-C., Yang, F.-Y., Chang, C.-H. (2016). Tracking Students’ Cognitive Processes During Program Debugging – An Eye-Movement Approach. IEEE Transactions on Education, 59 (3), 175–186. doi: https://doi.org/10.1109/te.2015.2487341
  29. Van der Aalst, W. (2012). Process Mining. ACM Transactions on Management Information Systems, 3 (2), 1–17. doi: https://doi.org/10.1145/2229156.2229157
  30. Van der Aalst, W., Adriansyah, A., de Medeiros, A. K. A., Arcieri, F., Baier, T., Blickle, T. et. al. (2012). Process Mining Manifesto. Lecture Notes in Business Information Processing, 169–194. doi: https://doi.org/10.1007/978-3-642-28108-2_19
  31. Rubin, V. A., Mitsyuk, A. A., Lomazova, I. A., van der Aalst, W. M. P. (2014). Process mining can be applied to software too! Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement - ESEM ’14. doi: https://doi.org/10.1145/2652524.2652583
  32. Poncin, W., Serebrenik, A., Brand, M. van den. (2011). Process Mining Software Repositories. 2011 15th European Conference on Software Maintenance and Reengineering. doi: https://doi.org/10.1109/csmr.2011.5
  33. Sebu, M. L., Ciocarlie, H. (2014). Applied process mining in software development. 2014 IEEE 9th IEEE International Symposium on Applied Computational Intelligence and Informatics (SACI). doi: https://doi.org/10.1109/saci.2014.6840098
  34. Ardimento, P., Bernardi, M. L., Cimitile, M., Maggi, F. M. (2019). Evaluating Coding Behavior in Software Development Processes: A Process Mining Approach. 2019 IEEE/ACM International Conference on Software and System Processes (ICSSP). doi: https://doi.org/10.1109/icssp.2019.00020
  35. Caldeira, J., Abreu, F. B. e. (2016). Software Development Process Mining: Discovery, Conformance Checking and Enhancement. 2016 10th International Conference on the Quality of Information and Communications Technology (QUATIC). doi: https://doi.org/10.1109/quatic.2016.061
  36. Verbeek, H. M. W., Buijs, J. C. A. M., van Dongen, B. F., van der Aalst, W. M. P. (2011). XES, XESame, and ProM 6. Lecture Notes in Computer Science, 60–75. doi: https://doi.org/10.1007/978-3-642-17722-4_5
  37. Shynkarenko, V. I., Ilman, V. M. (2014). Constructive-Synthesizing Structures and Their Grammatical Interpretations. I. Generalized Formal Constructive-Synthesizing Structure. Cybernetics and Systems Analysis, 50 (5), 655–662. doi: https://doi.org/10.1007/s10559-014-9655-z
  38. Shynkarenko, V. I., Ilman, V. M. (2014). Constructive-Synthesizing Structures and Their Grammatical Interpretations. II. Refining Transformations. Cybernetics and Systems Analysis, 50 (6), 829–841. doi: https://doi.org/10.1007/s10559-014-9674-9
  39. Shynkarenko, V. I., Ilman, V. M., Skalozub, V. V. (2009). Structural models of algorithms in problems of applied programming. I. Formal algorithmic structures. Cybernetics and Systems Analysis, 45 (3), 329–339. doi: https://doi.org/10.1007/s10559-009-9118-0
  40. Shynkarenko, V. I., Ilman, V. M., Skalozub, V. V. (2009). Structural models of algorithms in problems of applied programming. II. Structural-algorithmic approach to software simulation. Cybernetics and Systems Analysis, 45 (4), 544–550. doi: https://doi.org/10.1007/s10559-009-9122-4
  41. Shinkarenko, V. I., Zhevago, O. O. (2019). Generating university course timetable using constructive modeling. Radio Electronics, Computer Science, Control, 3, 152–162. doi: https://doi.org/10.15588/1607-3274-2019-3-17
  42. Shynkarenko, V., Lytvynenko, K., Chyhir, R., Nikitina, I. (2019). Modeling of Lightning Flashes in Thunderstorm Front by Constructive Production of Fractal Time Series. Advances in Intelligent Systems and Computing, 173–185. doi: https://doi.org/10.1007/978-3-030-33695-0_13
  43. Shynkarenko, V. I. (2019). Constructive-Synthesizing Representation of Geometric Fractals. Cybernetics and Systems Analysis, 55 (2), 186–199. doi: https://doi.org/10.1007/s10559-019-00123-w
  44. Shynkarenko, V. I., Vasetska, T. M. (2015). Modeling the Adaptation of Compression Algorithms by Means of Constructive-Synthesizing Structures. Cybernetics and Systems Analysis, 51 (6), 849–862. doi: https://doi.org/10.1007/s10559-015-9778-x
  45. Kuropiatnyk, O., Shynkarenko, V. (2020). Text borrowings detection system for natural language structured digital documents. In CEUR Workshop Proceedings, 2604, 294–305.
  46. Skalozub, V., Ilman, V., Shynkarenko, V. (2017). Development of ontological support of constructive-synthesizing modeling of information systems. Eastern-European Journal of Enterprise Technologies, 6 (4 (90)), 58–69. doi: https://doi.org/10.15587/1729-4061.2017.119497
  47. Skalozub, V., Ilman, V., Shynkarenko, V. (2018). Ontological support formation for constructive-synthesizing modeling of information systems development processes. Eastern-European Journal of Enterprise Technologies, 5 (4 (95)), 55–63. doi: https://doi.org/10.15587/1729-4061.2018.143968
  48. Van der Aalst, W. (2016). Process mining: Data science in action. Springer. doi: https://doi.org/10.1007/978-3-662-49851-4
  49. Leemans, S. J. J., Fahland, D., van der Aalst, W. M. P. (2018). Scalable process discovery and conformance checking. Software & Systems Modeling, 17 (2), 599–631. doi: https://doi.org/10.1007/s10270-016-0545-x

Downloads

Published

2020-10-31

How to Cite

Shynkarenko, V., & Zhevaho, O. (2020). Development of a toolkit for analyzing software debugging processes using the constructive approach. Eastern-European Journal of Enterprise Technologies, 5(2 (107), 29–38. https://doi.org/10.15587/1729-4061.2020.215090