Machine learning (ML) environments offer a variety of methods and tools that help to solve problems in different areas, including software engineering (SE). Currently, a large number of researchers are interested in the possibilities of using various machine learning techniques in software engineering. This paper provides an overview of machine learning techniques used in each stage of the software development life cycle (SDLC). The contribution of this review is significant. Firstly, by analyzing sources from bibliographic and abstract databases, it was found that the topic of integrating machine learning techniques into software engineering is relevant. Secondly, the article poses questions and reviews the methodology of this research. In addition, machine learning methods are systematized according to their application at each stage of software development. Despite the vast amount of research work on the use of machine learning techniques in software engineering, further research is required to achieve comprehensive comparisons and synergies of the approaches used, meaningful evaluations based on detailed practical implementations that could be adopted by the industry. Thus, future efforts should be directed towards reproducible research rather than isolated new ideas. Otherwise, most of these applications will remain poorly realized in practice.
Идентификаторы и классификаторы
Nowadays, it’s difficult to pass a day without seeing or reading an article on machine learning (ML), data mining, big data analytics, artificial intelligence (AI), and the profound changes they are bringing to society, particularly after releasing ChatGPT in November 2022. Machine learning deals with the issue of how to build programs that improve their performance through experience. Machine learning algorithms have proven to be of great practical value in a variety of application domains. Machine learning has been successfully applied in many areas of software engineering, ranging from features extraction to testing to bug fixing. If software developers had a better grasp of machine learning approaches, their assumptions, and guarantees, they might adopt and select the best techniques for their intended applications. To meet the needs of changing approaches to software development, future software engineering (SE) techniques and tools will need to be much more automated, lightweight, adaptable, and scalable to keep pace with increased developer productivity. The increasing reliance on applications with machine learning (ML) components calls for mature engineering techniques that ensure these are built in a robust and future-proof manner.
Список литературы
1. Lwakatare, L.E., Raj, A., Bosch, J., Olsson, H.H. and Crnkovic, I. A taxonomy of software engineering challenges for machine learning systems: An empirical investigation. In Agile Processes in Software Engineering and Extreme Programming: 20th International Conference. 2019. pp. 227-243.
2. Shehab M, Abualigah L, Jarrah MI, Alomari OA, Daoud MS. Artificial Intelligence in Software Engineering and inverse.International Journal of Computer Integrated Manufacturing. 2020. vol. 33. no. 10-11. pp. 1129-1144. EDN: JALRLJ
3. Durelli, Vinicius HS, et al. “Machine learning applied to software testing: A systematic mapping study”. IEEE Transactions on Reliability. 2019. vol.68. no. 3. pp. 1189-1212.
4. Khomh, F., Adams, B., Cheng, J., Fokaefs, M., Antoniol, G., 2018. Software engineering for machine-learning applications: The road ahead. IEEE Softw.2018. vol. 35. no. 5. pp. 81-84.
5. Maneerat N, Muenchaisri P. Bad-smell prediction from software design model using machine learning techniques. In2011 Eighth international joint conference on computer science and software engineering (JCSSE). 2011. pp. 331-336.
6. Talele, P. and Phalnikar, R. Software requirements classification and prioritisation using machine learning. In Machine learning for predictive analysis. 2021. pp. 257-267.
7. Zou, J., Xu, L., Guo, W., Yan, M., Yang, D., and Zhang, X. Which non-functional requirements do developers focuson? An empirical study on stack overflow using topic analysis. In 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories. 2015. pp. 446-449.
8. Ahmad, A., li, K., Feng, C., and sun, T. “An empirical study on how iOS developers report quality Aspects on stack overflow”, international journal of machine learning and computing. 2018. vol. 8. no. 5. pp. 501-506.
9. Treude, C., Barzilay, O., and storey, M. A. How do programmers ask and answer questions on the web? Nier track. In 2011 33rd International Conference on Software Engineering (ICSE). 2011. pp. 804-807.
10. Zou, J., Xu, L., Yang, M., Zhang, X., and Yang, D. Towards comprehending the non-functional requirements through developers’ eyes: An exploration of stack overflow using topic analysis. Information and Software Technology.2017. vol. 84. pp.19-32.
11. Ahmad, A., Feng, C., li, K., Asim, S. M., and sun, T. Toward empirically investigating non-Functional requirements of iOS developers on stack overflow. IEEE Access. 2019. vol.7. pp.61145-61169.
12. Yin, H., and Pfahl, D. A preliminary study on the suitability of stack overflow for open innovation in requirements engineering. In Proceedings of the 3rd International Conference on Communication and Information Processing. 2017. pp. 45-49.
13. Bajaj, K., Pattabiraman, K., and Mesbah, A. Mining questions asked by web developers. In Proceedings of the 11th Working Conference on Mining Software Repositories.2014. pp. 112-121.
14. Pinto, G., Castor, F., and Liu, Y. D. Mining questions about software energy consumption. In Proceedings of the 11th Working Conference on Mining Software Repositories. 2014. pp. 22-31.
15. Xiao, M., Yin, G., Wang, T., Yang, C., and chen, M. Requirement acquisition from social q&a sites. In Requirements Engineering in the Big Data Era.2015. pp. 64-74.
16. Rosen, C., and Shihab, E. What are mobile developers asking about? A large-scale study using stack overflow. Empirical Software Engineering.2016. vol. 21. no.3. pp. 1192-1223. EDN: DIPOCY
17. Abad, Z. S. H., Shymka, A., Pant, S., Currie, A., and Ruhe, G. What are practitioners asking about requirements engineering? An exploratory analysis of social q&a sites. In 2016 IEEE 24th International Requirements Engineering Conference Workshops (REW). 2016. pp. 334-343.
18. Pinto, G. H., and Kamei, F. What do programmers say about refactoring tools? An empirical investigation of stack overflow. In Proceedings of the 2013 ACM workshop on Workshop on refactoring tools. 2013. pp. 33-36.
19. A. G. Jivani, “A comparative study of stemming algorithms”, International Journal of Computer Applications in Technology.2011. vol. 2. pp. 1930-1938.
20. A. Khan, B. Baharudin, L. H. Lee, and K. Khan, “A review of machine learning algorithms for text-documents classification”, Journal of Advances in Information Technology.2010. vol. 1, pp. 4-20.
21. Fernandes E, Oliveira J, Vale G, Paiva T, Figueiredo E. A review-based comparative study of bad smell detection tools. InProceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering. 2016. pp. 1-12.
22. Ferenc R, Beszedes A, Fulop L, Lele J. Design pattern mining enhanced by machine learning. In21st IEEE International Conference on Software Maintenance (ICSM’05) 2005. pp. 295-304.
23. Zanoni M, Fontana FA, Stella F. On applying machine learning techniques for design pattern detection. Journal of Systems and Software. 2015. vol. 103. pp. 102-17.
24. Selvarani R, Mangayarkarasi P. A Dynamic Optimization Technique for Redesigning OO Software for Reusability. ACM SIGSOFT Software Engineering Notes. 2015. vol. 40. no. 2. pp.1-6.
25. Agashe R, Iyer S, Zettlemoyer L. Juice: A large scale distantly supervised dataset for open domain context-based code generation. arXiv preprint arXiv:1910.02216. 2019.
26. Shin EC, Allamanis M, Brockschmidt M, Polozov A. Program synthesis and semantic parsing with learned code idioms. Advances in Neural Information Processing Systems. 2019. vol. 32.
27. Takahashi A, Shiina H, Kobayashi N. Automatic Generation of Program Comments based on Problem Statements for Computational Thinking. In2019 8th International Congress on Advanced Applied Informatics. 2019. pp. 629-634.
28. Shido Y, Kobayashi Y, Yamamoto A, Miyamoto A, Matsumura T. Automatic source code summarization with extended tree-lstm. In2019 International Joint Conference on Neural Networks. 2019. pp. 1-8.
29. Tufano M, Watson C, Bavota G, Penta MD, White M, Poshyvanyk D. An empirical study on learning bug-fixing patches in the wild via neural machine translation. ACM Transactions on Software Engineering and Methodology (TOSEM). 2019. vol. 28. no. 4. pp.1-29.
30. Zhu Z, Xue Z, Yuan Z. Automatic graphics program generation using attention-based hierarchical decoder. InAsian Conference. 2018. pp. 181-196.
31. Kim Y, Kim H. Translating CUDA to opencl for hardware generation using neural machine translation. In2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) 2019. pp. 285-286.
32. Gozalo-Brizuela R, Garrido-Merchan EC. ChatGPT is not all you need. A State of the Art Review of large Generative AI models. arXiv preprint arXiv:2301.04655. 2023.
33. Chen, M., Tworek, J., Jun, H., Yuan, Q., Pinto, H. P. d. O., Kaplan, J., Edwards, H., Burda, Y., Joseph, N., Brockman, G., et al. Evaluating large language models trained on code. arXiv preprint arXiv:2107.03374. 2021.
34. Li, Y., Choi, D., Chung, J., Kushman, N., Schrittwieser, J., Leblond, R., Eccles, T., Keeling, J., Gimeno, F., Dal Lago, A., et al.Competition-level code generation with alphacode. Science. 2022. Vol. 378. No. 6624. pp. 1092-1097.
35. Bhavya, B., Xiong, J., and Zhai, C. Analogy generation by prompting large language models: A case study of instructgpt. arXiv preprint arXiv:2210.04186.2022.
36. Dehaerne E, Dey B, Halder S, De Gendt S, Meert W. Code Generation Using Machine Learning: A Systematic Review. IEEE Access. 2022.
37. S. Ahmed, “Overview of software testing standard ISO/IEC/IEEE 29119”, Int. J.Comput. Sci.Netw. Secur.2018. vol. 18. no. 2. pp. 112-116.
38. Durelli VH, Durelli RS, Borges SS, Endo AT, Eler MM, Dias DR, Guimaraes MP. Machine learning applied to software testing: A systematic mapping study. IEEE Transactions on Reliability. 2019. vol. 68. no. 3. pp. 1189-212.
39. Baskiotis N, Sebag M, Gaudel MC, Gouraud SD. A Machine Learning Approach for Statistical Software Testing. InIJCAI. 2007.pp. 2274-2279.
40. Moghadam MH, Saadatmand M, Borg M, Bohlin M, Lisper B. Machine learning to guide performance testing: An autonomous test framework. In2019 IEEE international conference on software testing, verification and validation workshops (ICSTW) 2019. pp. 164-167.
41. Tuncali CE, Fainekos G, Ito H, Kapinski J. Simulationbased adversarial test generation for autonomous vehicles with machine learning components. In2018 IEEE Intelligent Vehicles Symposium (IV) 2018. pp. 1555-1562.
42. Battina DS. Artificial Intelligence in Software Test Automation: A Systematic Literature Review.International Journal of Emerging Technologies and Innovative Research (www.jetir.org| UGC and issn Approved), ISSN. 2019. pp. 2349-5162.
43. Rankin C. The software testing automation framework. IBM Systems Journal. 2002. vol. 41. no. 1. pp. 126-139. EDN: DVHPRT
44. Briand LC, Labiche Y, Bawar Z. Using machine learning to refine black-box test specifications and test suites. In2008 The Eighth International Conference on Quality Software 2008. pp. 135-144.
45. IEEE Standard I2 19- 1992. Sofrware Maintenance Standard. published by IEEE Standards Office. P.O. Box 1331. Piscataway. NJ 08855-1331.
46. Levin S, Yehudai A. Towards software analytics: Modeling maintenance activities. arXiv preprint arXiv:1903.04909. 2019 Mar 9.
47. Kukkar A, Mohana R, Kumar Y, Nayyar A, Bilal M, Kwak KS. Duplicate bug report detection and classification system based on deep learning technique. IEEE Access. 2020. vol. 8. pp. 200749-200763.
48. Immaculate SD, Begam MF, Floramary M. Software bug prediction using supervised machine learning algorithms. In2019 International conference on data science and communication (IconDSC) 2019. pp. 1-7.
49. Sidhu BK, Singh K, Sharma N. A machine learning approach to software model refactoring.International Journal of Computers and Applications. 2022. vol. 44. no. 2. pp. 166-177. EDN: IWLLCT
Выпуск
Другие статьи выпуска
The article presents the results of research on fractal (self-similar) graphs in relation to elastic computing. A characteristic feature of such graphs is their ability to unfold (increase dimensionality) and fold (decrease dimensionality). Two approaches to forming fractal graphs are considered: based on Kronecker product and fractal algebra. The interrelationship of algebraic operations of forming fractal graphs (linear graphs, grids, hypercubes, and trees) with tensor operations and tensor representation based on the integration of adjacency matrices and event vectors of elastic systems is presented. Definitions of corre-sponding types of dynamically changing tensors are introduced. An analysis of the properties of elastic fractal graphs and related tensor models is conducted
В статье рассматривается деятельность лесопромышленного предприятия без собственных источников сырья в лице делян, которое ставит себе целью найти оптимальное решение в конце горизонта планирования, основываясь на данных об уже реализованных сделках. В качестве источника сырья рассматривается товарно-сырьевая биржа, где лоты появляются каждый день в разных регионах добытчиках в случайном порядке. В работе представлена математическая модель, позволяющая оценить оптимальную траекторию значений прибыли на всем горизонте планирования и отличающуюся тем, что позволяет учитывать долю полезного объема сырья, которое по зачислению на склад можно использовать в производстве ОСБ плит и время лота в пути в условиях неопределенностей. Модель протестирована на данных товарно-сырьевой биржи России и одного из предприятий Приморского края. Проведен анализ полеченных решений.
В статье рассматриваются результаты работы наиболее распространенных алгоритмов стеганографии. Численным моделированием показана возможность противостоять атакам стегоанализа на различных этапах, связанных с объемом встраивания информации. Показано, что наиболее приемлемым можно считать адаптивные алгоритмы стеганографии.
Предлагается формальное определение компьютерной модели сложной системы, как рода структуры в смысле Н. Бурбаки - род структуры «модель». Класс математических объектов, определяемый этим родом структуры, обладает следующими двумя свойствами: комплекс, созданный объединением математических объектов рода структуры «модель» по определенным правилам, сам является математическим объектом этого рода структуры. Организация вычислительного процесса для всех математических объектов рода структуры «модель» однотипна и поэтому может быть реализована единой универсальной программой, притом ориентированной на параллельные вычисления. Наличие этих двух свойств позволяет построить сквозную технологию разработки, описания, синтеза и программной реализации моделей сложных систем - Модельно-ориентированное (МО) программирование.
В статье описывается разработанный программный сервис, предназначенный для автоматизации процесса предварительной обработки и фильтрации данных сигнала ЭЭГ с синхронизированной видеозаписью для анализа континуальных процессов мозга. Представление сигнала осуществляется в форме матрицы топографических карт распределения мощности сигнала по эпохам заданной длительности в заданных частотных диапазонах, позволяющей пользователю производить сравнительный анализ нескольких записей ЭЭГ во времени. Сервис предоставляет возможность детального анализа выбранного фрагмента записи, включающую оценку динамики изменения параметров фрагмента записи во времени. Сервис позволяет выполнять такой анализ с использованием синхронизированной видеозаписи участника с видеотрекингом его физиологических параметров, таких как частота дыхания, кровяное давление, пульс, насыщение крови кислородом, движения головы, открытость/закрытость рта и глаз. Данная аналитика обеспечивает гибкую систему фильтрации и предварительной обработки данных ЭЭГ. Апробация сервиса по обработке и анализу данных ЭЭГ выполнена на примере автоматизации метода распознавания медитативного состояния человека, характеризующегося направлением внимания в ощущения тела и абстрагированием от внешних стимулов.
Рассматриваются алгоритмические принципы внедрения нелинейных функций эффективности в когнитивную модель слабоформализованной системы. С точки зрения прозрачности теоретического взгляда в качестве такой нелинейной функции использовалась функция типа ReLU. Сложная система представляется в виде ориентированного графа, вершин и ребрамов, которым соответствуют настройки настроек. В определении нелинейная процедура расчета значений элементов системы (внутренних вершин) на графе в зависимости от внешних факторов (входных вершин) и, соответственно, расчета коэффициентов работы во всем мире. Показано, что в отличие от линейного случая, наблюдавшегося ранее, в нелинейном случае коэффициенты имеют лучшее развитие от результатов вершин - элементов системы. В связи с двумя простыми моделями, описывающими основные тенденции мировой энергетики и воздействия некоторых вирусных инфекций на производственный процесс, показаны проявления более богатого набора наблюдаемых ситуаций по сравнению с линейным развитием событий.
В статье рассмотрена актуальная проблема уязвимости технологий искусственного интеллекта на основе нейронных сетей в задаче распознавания образов. Показано, что применение нейронных сетей порождает множество уязвимостей. Приведены конкретные примеры таких уязвимостей: некорректная классификация изображений, содержащих вредоносный шум или заплатки, отказ распознающих систем при наличии на изображении особых узоров, в том числе нанесенных на объекты реального мира, отравление обучающей выборки и др. На основе проведенного анализа показана необходимость улучшения безопасности технологий искусственного интеллекта и даны предложения, способствующие этому улучшению
Предложены определения гибких и жестких документов, используемые в технологиях ввода в компьютер деловых документов. Рассмотрены особенности создания, оцифровки и анализа жестких форм и жестких документов. Описаны границы применимости модели привязки изображений жестких документов, искаженных при оцифровке. Рассмотрена модель для привязки гибких документов, основанная на распознанных словах и графических примитивах, связанных набором отношений порядка. Классификация основана на различных способах подготовки деловых документов для печати. Описаны особенности привязки полей и распознавания для нескольких типов документов, таких как условно-жесткие документы, гибкие документы, продуцированные одной формой, гибкие документы, продуцированные малым и большим числом форм. Рассмотрен случай распознавания условно-жестких документов с применением технологий ввода гибких документов. Проведенные эксперименты показывают, что для некоторых полей пометок в условиях сильного зашумления и значительных искажений доля ошибок уменьшается в два раза.
The paper presents a method for detecting false responses of localization and identification algorithms. The method considers matching image characteristics that cannot be described by local features stably and completely. It is proposed to use image zones containing such features, describe them and use them to assess the validity of the algorithm response. In the work we demonstrate how the algorithm works on ID documents. Possible features are images of the coats of arms and flags of countries, background filling and text unique to the considered document type. To illustrate the proposed algorithm, the MIDV-500 and MIDV-LAIT datasets were taken. The first is used to show that the rejector does not reject correct system responses, the second - that it rejects the incorrect ones. We test several methods of zone description. The experimental results show that false type selection decreases with the use of any description type and the local CNN-descriptor shows the best performance. The increase of classes with marked zones is shown to improve the filtration of false responses. The experiments show the improvement from by 13% with one type with zones to by 4 times with 10 types.
В статье предлагается методика оценки качества текстов машинных переводов на основе энтропийно-информационного подхода. Дается анализ дисперсионного и энтропийного коэффициентов конкордации, используемых для оценки согласованности мнений экспертов при близких ранжировках различных объектов. Обосновывается перспективность применения энтропийного коэффициента конкордации, позволяющего зафиксировать факт разделения мнений на две противоположные группы. Это положение важно для проводимого исследования, поскольку в данной методике экспертной оценки переводов текстов важен учет разных мнений нескольких экспертов, привлеченных к экспертизе. Приводятся примеры расчета энтропийного коэффициента конкордации с изменяющейся ранговой системой, числом экспертов и ранжируемых объектов оценивания.
В статье представлена распределенная система для организации потоковых вычислений. Система включает в себя сервер для управления данными, управляющий сервис (супервизор), набор узлов-рабочих, на которых производится выполнение задач, и базу данных. Для абстрагирования от конкретных языков программирования и инструментов, используемых при вычислениях, реализации алгоритмов (задачи) упаковываются и выполняются в контейнерах Docker. Для эффективной работы при высокой нагрузке система поддерживает несколько стратегий приоритизации задач. Для работы с системой пользователю достаточно построить образ docker-контейнера, описать набор входных данных в JSON-файле и загрузить их через веб-интерфейс. Система может быть развернута в любом общедоступном облаке. В статье подробно описана архитектура системы и приведены численные результаты, полученные при вычислениях на различных облачных и локальных платформах. В работе изучено влияние различных стратегий приоритизации на длительность вычислений при умеренной нагрузке.
Издательство
- Издательство
- ИУ РАН
- Регион
- Россия, Москва
- Почтовый адрес
- 119333, Москва, Вавилова, д.44, кор.2
- Юр. адрес
- 119333, Москва, Вавилова, д.44, кор.2
- ФИО
- Соколов Игорь Анатольевич (Директор)
- E-mail адрес
- frccsc@frccsc.ru
- Контактный телефон
- +7 (499) 1356274