Skip to main content
QUICK REVIEW

[論文レビュー] Modeling Library Dependencies and Updates in Large Software Repository Universes

Raula Gaikovina Kula, Coen De Roover|arXiv (Cornell University)|Sep 14, 2017
Software Engineering Research参考文献 26被引用数 5
ひとこと要約

本稿では、Maven や GitHub などの大規模なソフトウェアリポジトリ・ユニバースからライブラリの依存関係と更新パターンを抽出し、『群衆の知恵』のインサイトを用いて更新を推奨する、グラフベースのモデルである Software Universe Graph (SUG) を提案する。採用拡散および共依存メトリクスをモデル化することで、SUG は人気のバージョンや陳腐化したバージョンの可視的予測を可能にし、集団的使用に基づいた新規ライブラリの推薦や、共進化パターンの解明を実現する。Maven と GitHub 間で平均 79% の依存関係の重複が確認された。

ABSTRACT

Popular (re)use of third-party open-source software (OSS) is evidence of the impact of hosting repositories like maven on software development today. Updating libraries is crucial, with recent studies highlighting the associated vulnerabilities with aging OSS libraries. The decision to migrate to a newer library can range from trivial (security threat) to complex (assessment of work required to accommodate the changes). By leveraging the `wisdom of the software repository crowd' we propose a simple and efficient approach to recommending `consented' library updates. Our Software Universe Graph (SUG) models library dependency and update information mined from super repositories to provide different metrics and visualizations that aid in the update decision. To evaluate, we first constructed a SUG from 188,951 nodes of 6,374 maven unique artifacts. Then, we demonstrate how our metrics and visualizations are applied through real-world examples. As an extension, we show how the SUG can compare dependencies between different super repositories. From a sample of 100 GitHub applications, our method found that on average 79% similar overlapping dependencies combinations exist between the maven and github super repository universes.

研究の動機と目的

  • 大規模なソフトウェアシステムにおいて、セキュリティリスクが存在するにもかかわらずメンテナーよりも遅れて移行が行われるという、非効率なライブラリ更新意思決定の課題に対処すること。
  • スーパーリポジトリからの集団的使用パターンを活用し、データドリブンなインサイトによって「合意された」更新を推論すること。
  • 採用拡散および共依存メトリクスを用いてライブラリ依存関係の進化をモデル化し、実行可能な推奨を可能にすること。
  • 異なるスーパーリポジトリ(例:Maven 対 GitHub)間の依存関係ユニバースを比較し、その類似性を定量化すること。
  • システムメンテナーや意思決定を支援するための視覚的およびメトリクスベースのガイダンスを提供すること。

提案手法

  • 188,951 個のノード(6,374 個のユニークな Maven アーティファクト)を用いて、ライブラリの依存関係とバージョン更新をモデル化する Software Universe Graph (SUG) を構築する。
  • 3 つのコアメトリクス(人気度(使用頻度)、採用拡散(時間経過に伴うバージョン採用の広がり)、共依存(複数システムにおける2つのライブラリの同時進化))を定義し、計算する。
  • SUG を用いて移行トレンドの可視化、陳腐化または人気の高いバージョンの特定、ライブラリバージョン間の共進化パターンの検出を実施する。
  • 共依存メトリクスを用いて、Maven や GitHub といったスーパーリポジトリ間の依存関係ユニバースを比較し、重複する依存関係の組み合わせを分析する。
  • 100 個の GitHub アプリケーションからの実世界の例を用いて、モデルの実用性とインサイトの有効性を検証する。
  • 革新の拡散理論(Diffusion of Innovations, DoI)を適用し、採用パターンを段階(イノベーター、早期採用者、早期・後期多数派、遅れ者)として解釈する。

実験結果

リサーチクエスチョン

  • RQ1大規模なソフトウェアリポジトリ・ユニバースにおける集団的使用パターンをどのようにモデル化すれば、知的なライブラリ更新推奨を可能にするか?
  • RQ2Maven と GitHub 間の依存関係パターンはどの程度重複しており、ソフトウェアエコシステム行動の共通性を示唆しているか?
  • RQ3SUG における共依存および採用拡散メトリクスは、ライブラリバージョンの人気度や陳腐化の予測に有効か?
  • RQ4SUG モデルは、コミュニティの合意に基づいて、メンテナーや意思決定者が新しいライブラリバージョンに更新すべきかどうかを判断するのをどのように支援するか?
  • RQ5SUG から得られる視覚的およびメトリクスベースのインサイトは、依存関係管理意思決定をどのように支援できるか?

主な発見

  • SUG モデルは、188,951 個のノードおよび 6,374 個のユニークな Maven アーティファクトから得た大規模なデータセットを用い、人気度、採用拡散、共依存メトリクスを用いてライブラリ依存関係の進化を的確に捉え、可視化することに成功した。
  • Maven と GitHub の両方のスーパーリポジトリ・ユニバース間で、平均して 79% の依存関係の組み合わせが共有されており、ライブラリ使用パターンの強い整合性が示された。
  • 採用拡散トレンドの分析により、SUG は人気のバージョンおよび陳腐化したバージョンの可視的予測を可能にした。
  • 共依存分析により、ライブラリがどのように一緒に進化するかの安定したパターンが明らかとなり、連携的な更新推奨の根拠が得られた。
  • SUG は、広く採用されているか、類似システムで頻繁に更新されているライブラリを特定することで、メンテナーや意思決定者に実行可能なインサイトを提供した。
  • 実世界の事例を通じて、本アプローチの実用的妥当性が示された。セキュリティが深刻でないケースに対しても、コミュニティの合意が更新意思決定を支援できることを明らかにした。

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

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

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

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