Розробка засобів для аналізу процесів відлагодження програм з використанням конструктивного підходу

Автор(и)

  • Viktor Shynkarenko Дніпровський національний університет залізничного транспорту імені академіка В. Лазаряна вул. Лазаряна, 2, м. Дніпро, Україна, 49010, Україна https://orcid.org/0000-0001-8738-7225
  • Oleksandr Zhevaho Дніпровський національний університет залізничного транспорту імені академіка В. Лазаряна вул. Лазаряна, 2, м. Дніпро, Україна, 49010, Україна https://orcid.org/0000-0003-0019-8320

DOI:

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

Ключові слова:

аналіз процесів, відлагодження, конструктивне моделювання, навчання, інженерія програмного забезпечення

Анотація

Застосовано конструктивно-продукційне моделювання та методи Process Mining у наборі інструментів для моніторингу та аналізу процесу відлагодження. Методи моніторингу процесів розробки і відлагодження є підґрунтям для підвищення рівня практичної підготовки студентів, зменшення часу, який використовуються нераціонально в процесі розробки програм студентом та при контролі процесів виконання завдань викладачем. Процес відлагодження програми розглядається як послідовність дій при роботі з відповідними інструментами. Використовуючи методологію конструктивно-продукційного моделювання, розроблений конструктор для формування журналу відлагоджувальних дій. На основі конструктивної моделі розроблено розширення до інтегрованого середовища розробки (ІСР) Microsoft Visual Studio, в якому всі дії по відлагодженню фіксуються в журналах подій. Під час відлагодження у ІСР збираються журнали подій, потім виконується перевірка відповідності цих журналів щодо еталонної моделі, для цього використовується ProM (Технічний університет Ейндговена, Нідерланди), платформа для методів Process Mining. Перевіряючи відповідність, можна порівнювати різні процеси виконання і розпізнавати поведінкові схожості і відмінності. Основна мета розробленого інструментарію – зібрати дії по відлагодженню з ІСР розробника. Завдяки кращому розумінню того, як студенти розуміють помилки і справляються з ними, можна допомогти новачкам в навчанні програмуванню. Знання про те, як програмісти відлагоджують, можуть спонукати дослідників розробляти більш практично спрямовані методи, викладачів поліпшити свої плани з навчання відлагодженню, а розробників інструментів адаптувати відлагоджувачі до справжніх потреб користувачів. Практично пропонується застосовувати підготовлені інструменти в курсі розробки програмного забезпечення

Біографії авторів

Viktor Shynkarenko, Дніпровський національний університет залізничного транспорту імені академіка В. Лазаряна вул. Лазаряна, 2, м. Дніпро, Україна, 49010

Доктор технічних наук, професор

Кафедра комп’ютерних інформаційних технологій

 

Oleksandr Zhevaho, Дніпровський національний університет залізничного транспорту імені академіка В. Лазаряна вул. Лазаряна, 2, м. Дніпро, Україна, 49010

Аспірант

Кафедра комп’ютерних інформаційних технологій

Посилання

  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

##submission.downloads##

Опубліковано

2020-10-31

Як цитувати

Shynkarenko, V., & Zhevaho, O. (2020). Розробка засобів для аналізу процесів відлагодження програм з використанням конструктивного підходу. Eastern-European Journal of Enterprise Technologies, 5(2 (107), 29–38. https://doi.org/10.15587/1729-4061.2020.215090