Skip to main content
QUICK REVIEW

[논문 리뷰] The Changing Nature of Computational Science Software

Huy Tu, Rishabh Agrawal|arXiv (Cornell University)|2020. 03. 12.
Software Engineering Research참고 문헌 45인용 수 5
한 줄 요약

이 논문은 59개의 GitHub 프로젝트를 대상으로 한 정량적 분석을 통해 계산 과학(CS) 소프트웨어에 관한 13개의 오랫동안 지속된 신념을 조사한다. 대부분의 이전 가정—특히 요구사항, 테스팅, 문화적 장벽에 관해—는 오래된 것으로 드러나, CS 개발이 이전에 생각한 것보다 현대 소프트웨어 공학 관행과 더 유사하게 진전되고 있음을 보여주며, CS 워크플로우에 맞는 새로운 도구 설계에 대한 함의를 지닌다.

ABSTRACT

How should software engineering be adapted for Computational Science (CS)? If we understood that, then we could better support software sustainability, verifiability, reproducibility, comprehension, and usability for CS community. For example, improving the maintainability of the CS code could lead to: (a) faster adaptation of scientific project simulations to new and efficient hardware (multi-core and heterogeneous systems); (b) better support for larger teams to co-ordinate (through integration with interdisciplinary teams); and (c) an extended capability to model complex phenomena. In order to better understand computational science, this paper uses quantitative evidence (from 59 CS projects in Github) to check 13 published beliefs about CS. These beliefs reflect on (a) the nature of scientific challenges; (b) the implications of limitations of computer hardware; and (c) the cultural environment of scientific software development. What we found was, using this new data from Github, only a minority of those older beliefs can be endorsed. More than half of the pre-existing beliefs are dubious, which leads us to conclude that the nature of CS software development is changing. Further, going forward, this has implications for (1) what kinds of tools we would propose to better support computational science and (2) research directions for both communities.

연구 동기 및 목표

  • 오픈소스 레포지터리에서의 실증적 데이터를 활용해 계산 과학(CS) 소프트웨어 개발에 관한 오랫동안 지속된 신념을 재평가한다.
  • CS 소프트웨어에 관해 이전에 제기된 13가지 신념 중 오늘날의 개발 환경에서 여전히 타당한 것이 무엇인지 규명한다.
  • evolving한 CS 커뮤니티의 요구에 맞는 소프트웨어 공학 도구와 관행을 설계하는 데 정보를 제공한다.
  • 특히 요구사항, 테스팅, 운영 분야에서 현대 소프트웨어 공학 방법론이 CS 프로젝트에 어떻게 도입되고 있는지 탐색한다.
  • 과학 소프트웨어가 일반 목적 소프트웨어보다 본질적으로 유지보수가 어렵거나 공식적인 SE 관행에 덜 적합하다는 가정을 도전한다.

제안 방법

  • GitHub에 호스팅된 59개의 오픈소스 계산 과학 프로젝트에서 데이터를 수집하고 분석한다.
  • 버전 관리 관행, 이슈 추적, 기여 패턴과 같은 프로젝트 특성 평가를 위해 정량적 마이닝 기법을 사용한다.
  • GitHub 데이터(코드 품질 메트릭, 테스팅 관행, 개발자 참여도 포함)를 대조하여 13가지 이전 신념 각각을 평가한다.
  • 점진적 데이터 마이닝을 적용해 CS 및 SE 커뮤니티 간 용어와 워크플로우의 차이를 식별한다.
  • 데이터셋에서의 실증적 증거를 바탕으로 각 신념을 지지됨, 의심됨, 지지되지 않음으로 분류한다.
  • 코드베이스의 정성적 분 析를 수행하여 과학적 테스팅, 요구사항, 운영 지원 메커니즘의 존재 여부와 품질을 평가한다.

실험 결과

연구 질문

  • RQ1이전에 지속된 계산 과학 소프트웨어에 관한 13가지 신념이 현대의 오픈소스 프로젝트에서 얼마나 여전히 타당한가?
  • RQ2현재의 계산 과학 프로젝트는 테스팅, 버전 관리, 요구사항 처리와 같은 소프트웨어 공학 관행에서 일반 소프트웨어 공학 프로젝트와 어떻게 비교되는가?
  • RQ3CS 개발자들이 현대 소프트웨어 공학 방법론을 얼마나 적극적으로 도입하고 있으며, 어떤 분야에서 가장 활발한가에 대한 증거는 무엇인가?
  • RQ4현재의 CS 프로젝트는 과학적 테스팅—즉, 물리 법칙이나 도메인 특화 제약 조건에 대한 검증—을 어떻게 구현하거나 부족하게 구현하고 있는가?
  • RQ5용어 차이 또는 공식적인 교육 부족과 같은 소프트웨어 공학의 기술적·문화적 장벽이 실제 개발 관행에서 어떻게 나타나는가?

주요 결과

  • GitHub 데이터에서의 현재 실증적 증거로 볼 때, 계산 과학 소프트웨어에 관해 이전에 제기된 13가지 신념 중 다수는 지지되지 않는다.
  • 요구사항이 명확하지 않거나 소프트웨어 공학 교육이 부족하다는 신념은 대부분 지지되지 않으며, CS 개발자들이 현대 SE 관행을 강력하게 인식하고 적용하고 있음을 보여준다.
  • CS 개발자들이 현대 소프트웨어 공학 관행을 도입하고 있음을 보여주는 증거는 존재하지만, 특히 문화적·기술적 장벽에 관한 이전 신념 중 절반 이상이 현재 데이터로는 의심되거나 지지되지 않는다.
  • CS 프로젝트는 낮은 결함 유입률을 보이며 높은 수준의 코드 이해도와 유지보수성을 보이며, 이는 SE 분야가 CS로부터 배울 수 있음을 시사한다.
  • 과학적 테스팅—물리 법칙이나 도메인 제약 조건에 대한 검증—은 단일한 테스팅 레이어로 나타나며, 단위 테스팅과 시스템 테스팅과는 구분되며, 아직 개발이 부족한 영역이다.
  • CS의 개발 및 운영 워크플로우는 아직 충분히 연구되지 않았지만, 향후 도구 개발의 고려 대상으로서 높은 영향력을 지닌 분야이며, 특히 글루 코드와 다팀 간 장애 트리iage 분석 분야에서 두각을 나타낸다.

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

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

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

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