ЕКСПЕРИМЕНТАЛЬНІ ДОСЛІДЖЕННЯ ПРОЦЕСІВ НАЛАГОДЖЕННЯ КОМП'ЮТЕРНИХ ПРОГРАМ СТУДЕНТАМИ З ВИКОРИСТАННЯМ PROCESS MINING
Ключові слова:
Process Mining, налагодження, Visual Studio, експеримент, шаблон налагодження, навчання програмуваннюАнотація
Розуміння того, як студенти налагоджують програми та з якими проблемами вони стикаються, має велике значення для підвищення якості навчання програмуванню. Аналізуються процеси налагодження комп'ютерних програм з метою підвищення якості навчання студентів програмуванню. Наведено приклад оцінки поведінки й навичок налагодження студентів. Процес налагодження тексту програми розглядається як послідовність дій при роботі з інструментами в середовищі розробки. Для виявлення навичок налагодження застосовано метод підсіву помилок. Розроблено програми з типовими логічними помилками. Виконано експеримент в якому проведено оцінку дій 41 розробника, що виконує налагодження. В рамках експерименту студенти повинні були виправити типові логічні помилки, використовуючи інтегроване середовище розробки Visual Studio. Відстежувалися дії кожного розробника при виконанні поставлених завдань. Формування моделей процесів налагодження виконано методами Process Mining. На основі отриманих моделей процесів налагодження та найбільш часто повторювальних сесій вдалося виявити 4 шаблони поведінки учасників експерименту. Результати демонструють ефективність Process Mining для кращого розуміння того, як розробники виконують налагодження програм. Виявлено, що функції налагоджувача Visual Studio використовуються незадовільно. Учасники, які не використовували засоби налагодження натомість використовували метод спроб і помилок, а також використовували виведення значень на екран. Ці результати закликають посилити практичний досвід налагодження в навчальних програмах. Потребує подальший розвиток інструментальних та організаційних засобів навчання студентів налагодженню в курсах з програмної інженерії.
Посилання
LaToza, T. D., & Myers, B. A. (2010). Developers ask reachability questions. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering – ICSE'10 (Vol. 1, pp. 185–194). https://doi.org/10.1145/1806799.1806829
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
van der Aalst, W. (2012). Process mining: Overview and opportunities. ACM Transactions on Management Information Systems, 3(2), 1–17. https://doi.org/10.1145/2229156.2229157
Rubin, V., Günther, C. W., van der Aalst, W. M. P., Kindler, E., van Dongen, B. F., & Schäfer, W. (2007). Process Mining Framework for Software Processes. In Software Process Dynamics and Agility (pp. 169–181). Springer Berlin Heidelberg. http://doi.org/10.1007/978-3-540-72426-1_15
Ardimento, P., Bernardi, M. L., Cimitile, M., & Maggi, F. M. (2019). Evaluating Coding Behavior in Software Development Processes: A Process Mining Approach. In 2019 IEEE/ACM International Conference on Software and System Processes (ICSSP). IEEE. http://doi.org/10.1109/icssp.2019.00020
Shynkarenko, V., & Zhevago, O. (2019). Visualization of program development process. In 2019 IEEE 14th International Conference on Computer Sciences and Information Technologies (CSIT). IEEE. http://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 2020 IEEE 15th International Conference on Computer Sciences and Information Technologies (CSIT). IEEE. http://doi.org/10.1109/csit49958.2020.9322002
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. In The Art and Science of Analyzing Software Data (pp. 85–138). Elsevier. http://doi.org/10.1016/b978-0-12-411519-4.00005-7
Edwards, S. H., Snyder, J., Pérez-Quiñones, M. A., Allevato, A., Kim, D., & Tretola, B. (2009). Comparing effective and ineffective behaviors of student programmers. In Proceedings of the fifth international workshop on Computing education research workshop – ICER '09. ACM Press. http://doi.org/10.1145/1584322.1584325
Alqadi, B. S., & Maletic, J. I. (2017). An Empirical Study of Debugging Patterns Among Novices Programmers. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education. ACM. http://doi.org/10.1145/3017680.3017761
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. http://doi.org/10.1007/s11219-015-9294-2
Andreas Zeller (2009). Why Programs Fail, Second Edition: A Guide to Systematic Debugging. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2nd edition.
Ko, A. J., & Myers, B. A. (2008). Debugging reinvented. In Proceedings of the 13th international conference on Software engineering – ICSE '08. ACM Press. http://doi.org/10.1145/1368088.1368130
Bryce, R. C., Cooley, A., Hansen, A., & Hayrapetyan, N. (2010). A one year empirical study of student programming bugs. In 2010 IEEE Frontiers in Education Conference (FIE). IEEE. http://doi.org/10.1109/fie.2010.5673143
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. In Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications (pp. 60–75). Springer International Publishing. http://doi.org/10.1007/978-3-642-17722-4_5