Програмні системи з елементами AI/ML мають деякі відмінні характеристики у порівнянні з традиційними програмними системами. Таким чином, для розробників програмного забезпечення з’являється кілька проблем і факторів ризику щодо розробки застосувань цього типу. В роботі проаналізовано загальні проблеми розробки AI/ML-застосувань з точок зору інженерії програмного забезпечення та машинного навчання. Оскільки AI/ML-застосування потребують чітко визначеного процесу розробки програмного забезпечення, розглянуто виклики та рекомендації для різних етапів життєвого циклу розробки програмного забезпечення. Оскільки розробка моделей AI/ML має певні аспекти, які слід розглядати як проєкт розробки програмного забезпечення, розглянуто характеристики та рекомендації щодо різних діяльностей для її розробки.
AI-based software systems are rapidly spreading in various business areas. In this context, the unavoidable convergence of the Software Engineering and Artificial Intelligence and Machine Learning (AI/ML) disciplines is considered an obvious and one of the following significant challenges within the engineering process. The life cycle, models, and technologies of AI/ML elements are pretty specific, and this should be considered in software engineering to ensure their performance and compliance with business needs. AI/ML applications have some distinct characteristics compared to traditional software applications. Thus, several challenges and risk factors regarding AI/ML applications appear to software developers. To study the common challenges in AI/ML application development, we used two different perspectives: software engineering and machine learning. AI/ML applications, like other software systems, need a well-defined software engineering process for their development and maintenance. We discussed challenges and recommendations for different phases of the software development life cycle for ML applications, particularly requirement engineering, design, implementation, integration, testing, and deployment. AI/ML application development has specific aspects to consider as a software development project. We discussed the characteristics and recommendations concerning problem formulation, data acquisition, preprocessing, feature extraction, model building, evaluation, model integration and deployment, model management, and ethics in AI/ML development. In the work, there were formulated recommendations for each analyzed challenge that should be useful for software developers. The next stage of this research is the compilation of detailed systematic guidelines for the software development process for AI/ML systems.