[論文レビュー] A Comprehensive Survey of Benchmarks for Automated Improvement of Software's Non-Functional Properties
本論文は、ソフトウェアの非機能的特性の自動的改善に用いられるベンチマークの包括的サーベイを提示しており、主要リポジトリから抽出された386編の関連論文を分析している。その結果、実行時間の改善が最も重視されており(62%)、静的解析が支配的(53%)であり、SPECが最も人気のあるベンチマーク(33本の論文で使用)であることが判明した。一方、マルチオブジェクティブ最適化や多様な言語サポート(例:Python、JavaScript)は依然として未開拓の分野である。
Performance is a key quality of modern software. Although recent years have seen a spike in research on automated improvement of software's execution time, energy, memory consumption, etc., there is a noticeable lack of standard benchmarks for such work. It is also unclear how such benchmarks are representative of current software. Furthermore, frequently non-functional properties of software are targeted for improvement one-at-a-time, neglecting potential negative impact on other properties. In order to facilitate more research on automated improvement of non-functional properties of software, we conducted a survey gathering benchmarks used in previous work. We considered 5 major online repositories of software engineering work: ACM Digital Library, IEEE Xplore, Scopus, Google Scholar, and ArXiV. We gathered 5000 publications (3749 unique), which were systematically reviewed to identify work that empirically improves non-functional properties of software. We identified 386 relevant papers. We find that execution time is the most frequently targeted property for improvement (in 62% of relevant papers), while multi-objective improvement is rarely considered (5%). Static approaches are prevalent (in 53% of papers), with exploratory approaches (evolutionary in 18% and non-evolutionary in 14% of papers) increasingly popular in the last 10 years. Only 40% of 386 papers describe work that uses benchmark suites, rather than single software, of those SPEC is most popular (covered in 33 papers). We also provide recommendations for choice of benchmarks in future work, noting, e.g., lack of work that covers Python or JavaScript. We provide all programs found in the 386 papers on our dedicated webpage at https://bloa.github.io/nfunc_survey/ We hope that this effort will facilitate more research on the topic of automated improvement of software's non-functional properties.
研究の動機と目的
- ソフトウェアの非機能的特性(NFPs)の自動的改善に用いられるベンチマークを特定・分析すること。具体的には、実行時間、メモリ使用量、エネルギー消費量などを対象とする。
- 既存の実証的研究におけるソフトウェアのターゲット、プログラミング言語、ベンチマークスイートの普及状況と多様性を評価すること。
- NFP改善に用いられるアプローチの種別(静的解析、進化的、探索的など)とその採用傾向を評価すること。
- 現在の研究におけるギャップを浮き彫りにすること。特に、現代的な言語(例:Python、JavaScript)、モバイルプラットフォーム、マルチオブジェクティブ最適化の支援が不十分である点。
- 今後の研究の標準化を支援するため、全386件の調査対象プログラムおよびベンチマークを収集した公開リポジトリを提供すること。
提案手法
- ACM Digital Library、IEEE Xplore、Scopus、Google Scholar、arXivの5つの主要リポジトリを対象とした体系的文献レビューにより、5,000件の出版物を収集した。
- 段階的フィルタリングを経て3,749件の固有の論文を特定し、その後、手作業によるレビューにより、NFP改善に関する386件の関連する実証的研究を選定した。
- 選定された論文を以下の基準で分類した:(1) 対象とする非機能的特性、(2) 改善アプローチ(静的解析、進化的、探索的)、(3) ベンチマークの種別(単一ソフトウェアまたはスイート)、(4) ソフトウェアの特徴。
- キーワードベースの検索と初期の手作業選定により、100件の論文を選出し、検索語を精緻化し、関連分野を網羅することを確認した。
- ベンチマーク使用パターンの集約と分析を行い、再利用頻度や言語多様性を評価した。
- 全386件の識別済みプログラムおよびベンチマークを、専用ウェブサイト(https://bloa.github.io/nfunc_survey/)を通じて公開した。
実験結果
リサーチクエスチョン
- RQ1RQ1: ソフトウェアの非機能的パフォーマンスの自動的改善に関する実証的研究はどの程度普及しているか。また、どの非機能的特性が最も頻繁にターゲットとされているか?
- RQ2RQ2: 非機能的特性の改善を検証するために最も一般的に使用されているソフトウェアおよびベンチマークは何か?
- RQ3RQ3: 実世界のソフトウェアの多様性(プログラミング言語、アプリケーション分野など)を考慮した場合、使用されているベンチマークはどれほど代表的か?
- RQ4RQ4: 静的解析、進化的手法など、主なアプローチの種別はどれが最も頻繁に使用されており、その傾向は時間経過とともにどのように変化しているか?
- RQ5RQ5: 現在のベンチマーク手法における主なギャップは何か。特に、マルチオブジェクティブ最適化や現代的なソフトウェアスタックへの対応が不十分である点。
主な発見
- 実行時間は、調査された386件の論文の62%で最も頻繁にターゲットとされている非機能的特性である。
- マルチオブジェクティブ最適化を検討した論文はわずか5%にとどまり、潜在的なトレードオフを考慮しても、単一特性の改善に集中している傾向が強い。
- 静的解析アプローチが支配的であり(論文の53%)、次に探索的アプローチ(18%が進化的、14%が非進化的)が続く。過去10年間でその傾向は上昇している。
- 386件の論文のうち40%しかベンチマークスイートを使用しておらず、その中で最も人気なのはSPECで、33件の論文で使用されている。
- 学術的なベンチマークと実世界のソフトウェアの間には顕著な乖離が認められる。Python、JavaScript、モバイルプラットフォームは現在の研究で著しく不足している。
- 本サーベイでは、特に実行時間以外の非機能的特性を対象とした標準的かつ代表的なベンチマークの欠如が顕著であると判明した。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。