[논문 리뷰] The application of artificial intelligence in software engineering: a review challenging conventional wisdom
이 논문은 1975~2017년 기간 동안 소프트웨어 공학(SE) 생애주기 전반에 걸쳐 인공지능(AI)의 통합을 검토하며, 요구사항, 테스팅, 유지보수와 같은 단계에서 150개 이상의 AI 기반 방법을 규명한다. 기존의 통념을 도전하며, AI 영역과 SE 단계 간의 겹침을 분석함으로써 현재의 관행을 재평가하고 AI-SE 통합 분야에서의 전환적 혁신을 촉구한다.
The field of artificial intelligence (AI) is witnessing a recent upsurge in research, tools development, and deployment of applications. Multiple software companies are shifting their focus to developing intelligent systems; and many others are deploying AI paradigms to their existing processes. In parallel, the academic research community is injecting AI paradigms to provide solutions to traditional engineering problems. Similarly, AI has evidently been proved useful to software engineering (SE). When one observes the SE phases (requirements, design, development, testing, release, and maintenance), it becomes clear that multiple AI paradigms (such as neural networks, machine learning, knowledge-based systems, natural language processing) could be applied to improve the process and eliminate many of the major challenges that the SE field has been facing. This survey chapter is a review of the most commonplace methods of AI applied to SE. The review covers methods between years 1975-2017, for the requirements phase, 46 major AI-driven methods are found, 19 for design, 15 for development, 68 for testing, and 15 for release and maintenance. Furthermore, the purpose of this chapter is threefold; firstly, to answer the following questions: is there sufficient intelligence in the SE lifecycle? What does applying AI to SE entail? Secondly, to measure, formulize, and evaluate the overlap of SE phases and AI disciplines. Lastly, this chapter aims to provide serious questions to challenging the current conventional wisdom (i.e., status quo) of the state-of-the-art, craft a call for action, and to redefine the path forward.
연구 동기 및 목표
- 소프트웨어 공학 생애주기 내에 AI 통합을 뒷받침할 만한 충분한 지능이 존재하는지 평가하기.
- AI 영역과 SE 단계 간의 겹침을 측정하고, 형식화하며, 평가하기.
- 현재의 AI-SE 연구 및 실무에서 지배적인 가정을 질문함으로써 현재의 방향성을 재평가하기.
- AI 소프트웨어 공학 분야의 미래 방향을 재정의하기 위한 비판적 기초 제공하기.
- 요구사항, 설계, 개발, 테스팅, 릴리스, 유지보수 단계 전반에 걸친 AI 기반 솔루션의 격차와 기회 규명하기.
제안 방법
- 신경망, 머신러닝, 지식 기반 시스템, 자연어 처리(NLP)와 같은 기존의 AI 패러다임을 중점으로 1975년부터 2017년까지 소프트웨어 공학에서의 AI 응용에 대한 체계적 리뷰 수행.
- SE 단계별 AI 방법 분류 및 수치적 집계: 요구사항 46건, 설계 19건, 개발 15건, 테스팅 68건, 릴리스 및 유지보수 15건.
- AI 영역과 SE 생애주기 단계 간의 개념적 및 기술적 겹침 분석을 통해 통합의 깊이와 일관성을 평가.
- 기존의 SE 과제를 해결하는 데 있어 AI 방법의 성숙도와 적용 가능성 평가를 위한 체계적 프레임워크 활용.
- 기존 연구 결과를 통합하여, 이전 작업(예: arXiv:1611.09934)과의 겹침을 고려함으로써 발견 결과의 맥락화.
- 현재의 AI-SE 연구 및 도구 개발에 내재된 가정을 도전하고, 현 상태를 재평가하기 위한 비판적 통합 분석 수행.
실험 결과
연구 질문
- RQ1소프트웨어 공학 생애주기 내에 AI 적용을 정당화할 수 있을 정도로 충분한 지능이 내재되어 있는가?
- RQ2AI가 소프트웨어 공학의 다양한 단계에 실제로 어떻게 통합되고 있는가?
- RQ3AI 영역과 소프트웨어 공학 단계 간의 겹침은 얼마나 광범위한가? 이는 도구 개발 및 연구에 어떤 함의를 지닌다?
- RQ4현재의 AI-SE 실무에 기반한 가정은 무엇이며, 최근의 발전을 고려할 때 여전히 타당한가?
- RQ5최근의 AI 소프트웨어 공학 상태를 어떻게 재평가하여 향후 혁신을 이끌고 정체를 피할 수 있는가?
주요 결과
- 소프트웨어 공학 생애주기 전반에 걸쳐 총 150개의 AI 기반 방법이 규명되었으며, 그 중 가장 높은 비중은 테스팅(68개)이며, 그 다음으로 요구사항(46개), 유지보수/릴리스(15개) 순이다.
- 특히 머신러닝과 NLP와 같은 주요 AI 영역과 SE 단계 간에 상당한 겹침이 존재하며, 요구사항 및 테스팅 단계에서 두드러진다.
- 연구는 AI 응용이 널리 퍼져 있음에도 불구하고, 핵심 SE 프로세스와 깊이 있는 통합이 이루어지지 않은 채 산발적이거나 표면적인 방식으로 적용되고 있음을 드러낸다.
- 기존의 통념인 'AI는 SE에 자연스럽게 어울린다'는 주장은 도전받으며, 많은 응용 사례가 변혁적인 것이 아니라 단순한 개선 사례에 머물러 있음을 확인한다.
- AI-SE 분야에 표준화된 프레임워크나 평가 지표의 부재로 인해 연구 및 도구 개발이 일관성 없이 진행되고 있음을 확인한다.
- 이 논문은 기존 도구에 산발적인 AI 기능을 통합하는 것이 아니라, 보다 통합적이고 이론 기반이며 종합적인 AI-SE 시스템으로의 패러다임 전환을 촉구한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.