Skip to main content
QUICK REVIEW

[논문 리뷰] Search-Based Software Re-Modularization: A Case Study at Adyen

Casper Schröder, Adriaan van der Feltz|arXiv (Cornell University)|2021. 02. 01.
Software Engineering Research인용 수 1
한 줄 요약

이 논문은 Adyen의 대규모 코드베이스(550만 이상 라인의 코드)에서 소프트웨어 재모듈화에 다중 목적 유전적 최적화를 적용한 사례 연구를 제시한다. 전이 결합성과 빌드 비용을 모델링하는 새로운 탐색 목표를 도입하여 확장성, 모듈화 품질 향상의 가시성, 개발자 검증을 입증하였지만, 모듈 이동 제안은 여전히 정밀도가 떨어진다.

ABSTRACT

Deciding what constitutes a single module, what classes belong to which module or the right set of modules for a specific software system has always been a challenging task. The problem is even harder in large-scale software systems composed of thousands of classes and hundreds of modules. Over the years, researchers have been proposing different techniques to support developers in re-modularizing their software systems. In particular, the search-based software re-modularization is an active research topic within the software engineering community for more than 20 years. This paper describes our efforts in applying search-based software re-modularization approaches at Adyen, a large-scale payment company. Adyen's code base has 5.5M+ lines of code, split into around hundreds of modules. We leveraged the existing body of knowledge in the field to devise our own search algorithm and applied it to our code base. Our results show that search-based approaches scale to large code bases as ours. Our algorithm can find solutions that improve the code base according to the metrics we optimize for, and developers see value in the recommendations. Based on our experiences, we then list a set of challenges and opportunities for future researchers, aiming at making search-based software re-modularization more efficient for large-scale software companies.

연구 동기 및 목표

  • 550만 이상 라인의 코드를 보유한 대규모 기업용 소프트웨어 시스템에서 검색 기반 소프트웨어 재모듈화의 효과성을 평가하는 것.
  • 모듈 경계가 종종 즉흥적으로 설정되는 빠르게 진행되는 팀 기반 개발 환경에서의 모듈화 과제를 해결하는 것.
  • 특히 전이 결합성과 빌드 비용을 포함한 도메인 특화의 기업 내부 메트릭을 재모듈화 최적화 과정에 통합하는 것.
  • 실제 산업 환경에서 알고리즘 기반 제안의 개발자 인식과 실용적 유용성을 평가하는 것.
  • 검색 기반 재모듈화를 산업 소프트웨어 시스템으로 확장하는 데 있어 향후 연구의 핵심 과제와 기회를 규명하는 것.

제안 방법

  • 수백 개의 모듈을 대상으로 다중 목적 유전적 최적화(NSGA-III를 구체적으로 활용)를 통해 재모듈화 솔루션을 탐색하였다.
  • Adyen의 모듈 캐싱 시스템에서의 실제 성능 영향을 반영하기 위해 전이 결합성과 빌드 비용을 조합한 새로운 최적화 목표를 정의하였다.
  • 기존의 소프트웨어 품질 메트릭인 응집도, 결합도, 변경 빈도를 파레토 최적 해 탐색에 추가 목적함수로 사용하였다.
  • 개발자 평가를 위해 알고리즘 제안을 대표성 있는 집합으로 필터링 및 군집화하였으며, 주로 클래스 이동 리팩터링을 중심으로 하였다.
  • 모듈 전문가와의 인터뷰를 통해 제안의 정확성과 인식된 가치에 대한 정성적 피드백을 수집하였다.
  • 개발자 인식을 향후 최적화 루프에 통합하기 위한 피드백 루프를 제안하였으며, 코드 리뷰 과정에서의 통합을 제안하였다.

실험 결과

연구 질문

  • RQ1검색 기반 재모듈화 기법은 550만 이상 라인의 코드와 수백 개의 모듈을 보유한 엔터프라이즈 코드베이스에 효과적으로 확장될 수 있는가?
  • RQ2특히 전이 결합성과 빌드 비용을 모델링하는 새로운 검색 목표는 모듈화 품질 향상에 얼마나 효과적인가?
  • RQ3개발자들은 알고리즘 기반 재모듈화 제안을 실제로 정확하고 유용하다고 얼마나 인식하는가?
  • RQ4산업 환경에 검색 기반 재모듈화를 구현할 때의 핵심 과제는 무엇이며, 어떻게 해결할 수 있는가?
  • RQ5개발자 피드백을 최적화 과정에 체계적으로 통합하여 제안의 정밀도를 향상시킬 수 있는 방법은 무엇인가?

주요 결과

  • 검색 기반 접근법은 Adyen의 대규모 코드베이스에 성공적으로 확장되었으며, 결합도와 응집도와 같은 최적화 메트릭 향상에 기여하였다.
  • 전이 결합성과 빌드 비용을 조합한 새로운 목표는 수렴성을 보였고, Adyen 개발자들에 의해 핵심적인 요소로 인식되어 모듈 캐싱 효율성 향상에 의미 있는 기여를 하였다.
  • 개발자들은 대부분의 제안된 클래스 이동 리팩터링이 정확하고 유용하다고 검증하였으며, 알고리즘 출력의 실용적 관련성이 높음을 시사하였다.
  • 알고리즘이 잘못된 모듈에 있는 클래스를 올바르게 식별하지만, 리팩터링 대상 모듈의 제안은 종종 정밀도가 떨어져, 향후 제안 로직의 개선이 필요함을 시사하였다.
  • 최적화 루프에 개발자 피드백을 통합하는 것은 필수적이지만 현재는 비용이 많이 들며, 향후 시스템은 코드 리뷰 과정에서 피드백 수집을 통합하여 확장성 있고 장기적인 개선을 가능하게 해야 한다.
  • 기존 연구는 종종 산업 현장에서의 실제 검증을 생략한다; 본 연구는 향후 연구에서 도메인 특화 목표와 인간-최적화 통합의 필요성을 강조한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.