Development of a toolkit for analyzing software debugging processes using the constructive approach
DOI:
https://doi.org/10.15587/1729-4061.2020.215090Keywords:
Process Mining, debugging, constructive-synthesizing modeling, training, software engineeringAbstract
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 courseReferences
- IEEE Standard Glossary of Software Engineering Terminology (1990). doi: https://doi.org/10.1109/ieeestd.1990.101064
- 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
- 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
- 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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Kuropiatnyk, O., Shynkarenko, V. (2020). Text borrowings detection system for natural language structured digital documents. In CEUR Workshop Proceedings, 2604, 294–305.
- 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
- 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
- Van der Aalst, W. (2016). Process mining: Data science in action. Springer. doi: https://doi.org/10.1007/978-3-662-49851-4
- 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
How to Cite
Issue
Section
License
Copyright (c) 2020 Viktor Shynkarenko, Oleksandr Zhevaho
This work is licensed under a Creative Commons Attribution 4.0 International License.
The consolidation and conditions for the transfer of copyright (identification of authorship) is carried out in the License Agreement. In particular, the authors reserve the right to the authorship of their manuscript and transfer the first publication of this work to the journal under the terms of the Creative Commons CC BY license. At the same time, they have the right to conclude on their own additional agreements concerning the non-exclusive distribution of the work in the form in which it was published by this journal, but provided that the link to the first publication of the article in this journal is preserved.
A license agreement is a document in which the author warrants that he/she owns all copyright for the work (manuscript, article, etc.).
The authors, signing the License Agreement with TECHNOLOGY CENTER PC, have all rights to the further use of their work, provided that they link to our edition in which the work was published.
According to the terms of the License Agreement, the Publisher TECHNOLOGY CENTER PC does not take away your copyrights and receives permission from the authors to use and dissemination of the publication through the world's scientific resources (own electronic resources, scientometric databases, repositories, libraries, etc.).
In the absence of a signed License Agreement or in the absence of this agreement of identifiers allowing to identify the identity of the author, the editors have no right to work with the manuscript.
It is important to remember that there is another type of agreement between authors and publishers – when copyright is transferred from the authors to the publisher. In this case, the authors lose ownership of their work and may not use it in any way.