Some aspects of software engineering for AI-based systems

V. V. Liubchenko

Abstract


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.

Prombles in programming 2022; 3-4: 99-106

 


Keywords


software engineering; artificial intelligence; machine learning; requirement engineering; design; implementation; integration; testing; deployment

References


CHALLA H., NIU N. & JOHNSON R. (2020) Faulty Requirements Made Valuable: On the Role of Data Quality in Deep Learning. IEEE 7th International Workshop on Artificial Intelligence for Requirements Engineering (AIRE), pp. 61-69. Available from: CrossRef

ALVAREZ‐RODRÍGUEZ J. M. et al. (2019) Challenges and opportunities in the integration of the Systems Engineering process and the AI/ML model lifecycle. INCOSE International Symposium. Vol. 29, No. 1, pp. 560-575. CrossRef

VOGELSANG A. & BORG M. (2019) Requirements Engineering for Machine Learning: Perspectives from Data Scientists. IEEE 27th International Requirements Engineering Conference Workshops (REW), pp. 245-251. CrossRef

WASHIZAKI H. et al. (2022) Software-Engineering Design Patterns for Machine Learning Applications. Computer. 55(3), pp. 30-39. CrossRef

MARTÍNEZ-FERNÁNDEZ S. et al. (2022) Software Engineering for AI-Based Systems: A Survey. ACM Transactions on Software Engineering and Methodology. 31(2), Article 37e. CrossRef

NISHI Y., MASUDA S., OGAWA H & UETSUKI K. (2018) A Test Architecture for Machine Learning Product. IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW). 2018. P. 273-278, CrossRef

PALEYES A., URMA R.-G. & LAWRENCE N. D. (2022) Challenges in Deploying Machine Learning: a Survey of Case Studies. ACM Computing Surveys. CrossRef

Code of Ethics. IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices. Available from: https://www. computer.org/education/code-of-ethics [Accessed 08/14/2022].




DOI: https://doi.org/10.15407/pp2022.03-04.099

Refbacks

  • There are currently no refbacks.