Skip to main content
QUICK REVIEW

[論文レビュー] The Changing Nature of Computational Science Software

Huy Tu, Rishabh Agrawal|arXiv (Cornell University)|Mar 12, 2020
Software Engineering Research参考文献 45被引用数 5
ひとこと要約

本論文は、GitHub上の59のプロジェクトを対象とした定量的分析を通じて、計算科学(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の先行仮定のうち、今日の開発環境において依然として有効であるものがどれであるかを特定すること。
  • 進化するCSコミュニティのニーズに適合した新しいソフトウェア工学ツールおよび実践の設計を支援すること。
  • 特に要件、テスト、運用の分野において、現代のソフトウェア工学手法がCSプロジェクトにどの程度採用されているかを調査すること。
  • 科学的ソフトウェアは一般用途ソフトウェアよりも本質的に保守性が低く、形式的なSE実践に適さないという仮定を疑うこと。

提案手法

  • GitHubにホスティングされた59のオープンソース計算科学プロジェクトからデータを収集・分析した。
  • バージョン管理の実践、イシュー管理、貢献パターンなどのプロジェクト特徴を評価するために定量的マイニング技術を用いた。
  • GitHubデータ(コード品質メトリクス、テスト実践、開発者参加度など)を照合することで、13の先行仮定の各々を評価した。
  • 段階的データマイニングを適用し、CSコミュニティとSEコミュニティの間での用語やワークフローの違いを同定した。
  • データセットからの実証的証拠に基づき、各仮定を「支持される」「疑わしい」「支持されない」の3つに分類した。
  • コードベースの定性的分析を実施し、科学的テスト、要件、運用支援メカニズムの存在と質を評価した。

実験結果

リサーチクエスチョン

  • RQ1計算科学ソフトウェアに関する13の従来の信念が、現代のオープンソースプロジェクトにおいてどの程度有効であるか。
  • RQ2テスト、バージョン管理、要件管理などのソフトウェア工学実践に関して、現在の計算科学プロジェクトは一般ソフトウェア工学プロジェクトとどの程度類似しているか。
  • RQ3CS開発者が現代のソフトウェア工学手法をどの程度採用しているかを示す証拠は何か。特にどの分野で活発に取り組んでいるか。
  • RQ4現在のCSプロジェクトは、物理的法則やドメイン固有の制約に対する検証(科学的テスト)をどの程度実施しているか、あるいは欠如しているか。
  • RQ5用語の違いや形式的な訓練の欠如といった、CSにおけるソフトウェア工学の技術的・文化的な障壁が、現実の開発実践にどのように現れているか。

主な発見

  • GitHubデータからの現在の実証的証拠によると、計算科学ソフトウェアに関する13の仮定のうち、少数にとどまる。
  • 要件が不明瞭であるとか、ソフトウェア工学の訓練が不足しているといった仮定は、CS開発者が現代のSE実践を強く認識し、適用していることから、ほとんど支持されない。
  • 13の仮定の半数以上が、文化的・技術的障壁に関するものであり、現在のデータから見ると疑わしいか、支持されないものであると判断された。
  • CSプロジェクトは、コードの理解性と保守性が高く、一般的なSEプロジェクトよりも欠陥の導入率が低いことから、SEがCSから学ぶ余地があることが示唆された。
  • 科学的テスト(物理法則やドメイン固有の制約に対する検証)は、単体テストやシステムテストとは別個の、明確に分離されたテスト層として顕在しており、未だに開発が不十分である。
  • CSにおける開発と運用のワークフローは十分に調査されていないが、特にグルー・コードや複数チームにまたがる障害のトリアージ分野において、将来的なツール開発において高いインパクトをもつ。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。