このページの内容

Awesome Empirical Software Engineering

Empirical Software Engineeringを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

リポジトリー

データセット

  • AndroidTimeMachine - 実世界のAndroidアプリ8,431件のコミット履歴をグラフで表したデータセット。
  • AndroZoo - Androidアプリケーションのコレクション。
  • Bug Prediction Dataset - Eclipse JDT Core、PDE UI、Equinox Framework、Lucene、Mylynとその履歴のモデル・メトリクス集。
  • Code Reviews - OpenStack、LibreOffice、AOSP、Qt、Eclipseのコードレビュー。
  • CoREBench - Make、Grep、Findutils、Coreutilsの4オープンソースプロジェクトのリポジトリーとバグ報告から体系的に抽出された、70件の現実的な複雑回帰エラーのコレクション。
  • Cryptocurrency GitHub Activity and Market Cap Dataset - GitHub上の200超の暗号通貨プロジェクトについて、時系列のコミット、スター、価格、時価総額などを扱うデータセット。生の履歴データも利用可能
  • Defects4J - ソフトウェアテスト研究の発展を目的に収集された、395件の再現可能なバグのコレクション。
  • Eclipse AERI stacktraces - AERI報告システムにより取得された、Eclipse IDE利用者が遭遇した例外のスタックトレース集。
  • Enron Spreadsheets and Emails - 論文「Enron’s Spreadsheets and Related Emails: A Dataset and Analysis」で使用されたすべてのスプレッドシートとメール。
  • Findbugs-maven - MavenリポジトリーのJavaプロジェクトに対するFindBugs報告のセット。
  • GHTorrent - GitHub REST APIで提供されるデータの、スケーラブルでクエリ可能なオフラインミラー。
  • GitHub Bug Dataset - 静的ソースコードメトリクスで特徴づけられた、15件のJavaオープンソースプロジェクトのバグデータセット。
  • GitHub on Google BigQuery - GoogleのBigQueryプラットフォームを通じて利用できるGitHubデータ。
  • Grammar Zoo - DSLとGPLの文法のコレクション。一部はメタモデルとドキュメントスキーマから抽出されている。
  • KaVE - 開発者ツールのインタラクションデータ。
  • Linux Kernel 4.21 Call Graphs - CScoutで生成されたLinux Kernel 4.21のコールグラフ。
  • Maven metrics - Maven Repository向けのソフトウェア複雑度・規模メトリクス集。
  • Maven Dependency Graph - グラフデータベースに保存された、2018年9月6日に取得したMaven Central全体のスナップショット。
  • mzdata - Mozillaの課題追跡履歴を複数抽出・複数レベルで扱うデータセット。
  • npm-miner - eslint、escomplex、nsp、jsinspect、sonarjsという5つのオープンソースソフトウェア品質ツールによる、人気npmパッケージ2,000件の分析結果を含むデータセット。
  • OCL Expressions on GitHub - 系統的に選定したGitHubリポジトリー245件のEMFメタモデル504件に由来する、9,188個のOCL式のデータセット。
  • RepoReapers Data Set - GHTorrentから収集した_エンジニアリングされたソフトウェアプロジェクト_のコレクションを含むデータセット。
  • Software Heritage Graph Dataset - さまざまなforgeの8,000万超のソフトウェアプロジェクトについて、開発履歴とファイルメタデータを重複除去・統合して表現したグラフ(論文はこちら)。
  • STAMINA - (STAte Machine INference Approaches)決定性有限状態機械(FSM)を学習する手法のベンチマークに使うデータ。
  • Stack Exchange - Stack Exchangeネットワークの、利用者が投稿したすべてのコンテンツを匿名化したダンプ。
  • SWE-bench - オープンソースコードリポジトリーで発見された課題の修正を生成することで、AIモデルが実世界のソフトウェア工学問題を解決する能力を評価するために設計されたベンチマーク。
  • TravisTorrent - 無償で使いやすいTraivs CIビルド分析を提供する。
  • Ultimate Debian Database (UDD) - 同じSQLデータベースでDebianのさまざまな側面(パッケージ、バグ、メンテナーなど)に関するデータを扱う。
  • Unified Bug Dataset - Bugcatchers Bug Dataset、Bug Prediction DatasetEclipse Bug DatasetGitHub Bug DatasetPROMISEリポジトリーの一部データセットを含む、静的ソースコードベースのデータセット。
  • Unix history - Unixの46年間の進化を含むGitリポジトリー。

ツール

  • astminer - ASTから導出されるコードやその他のデータのパスベース表現をマイニングするライブラリ・ツール。
  • Boa - ソフトウェアリポジトリーのマイニングを容易にするドメイン固有言語とインフラストラクチャ。
  • buckwheat - ソースコードから識別子を抽出する多言語トークナイザー。
  • ckjm - Chidamber and Kemerer Java Metrics。
  • Coming - コード変更を分析し、Gitリポジトリーから変更パターンのインスタンスをマイニングするJavaフレームワーク。
  • CryptOSS - 暗号通貨プロジェクトのGitHubアクティビティと時価総額データをマイニングする。
  • DbDeo - 埋め込みSQL文を抽出し、データベーススキーマのスメルを検出する。
  • Designite - C#のソースコードメトリクスを計算し、多様な実装、設計、アーキテクチャのスメルを検出する。
  • DesigniteJava - Javaのソースコードメトリクスを計算し、多様な実装・設計スメルを検出する。
  • Diggit - Gitリポジトリーを分析するアジャイルRubyツール。
  • GitEvo - Gitリポジトリーのコード進化分析。
  • GrimoireLab - ソフトウェア開発分析向けのFree/Libre/Open Sourceツール。
  • MetricMiner - GitとSVNリポジトリーからコミット、開発者、変更、差分などのデータをマイニング・抽出する軽量Java DSL。
  • Maven-miner - Maven CentralにホストされたMaven依存関係グラフ全体を、Neo4jグラフの形で解決するJavaツール・インフラストラクチャ。
  • Perceval - 数十のバックエンドからリポジトリーデータを取得する。
  • Puppeteer - Puppetコードの設定スメルを検出する。
  • PyDriller - Gitリポジトリーを分析するPythonフレームワーク。
  • qmcalc - Cソースコードから品質メトリクスを計算する。
  • reaper - GHTorrentからリポジトリーのスコアを計算するPythonツール。このスコアは、リポジトリー内のプロジェクトがどの程度_エンジニアリングされているか_を定量化する。
  • RefactoringMiner - Javaコードの変更におけるリファクタリング検出用ライブラリ/API。
  • TestMiner - GitHubリポジトリーのソフトウェアテスト分析。
  • VulData7 - NVDに報告された脆弱性を修正するコミットを自動収集できるJavaフレームワーク(NVDとGitを接続する)。

研究発表先

ライセンス

CC0

法律で可能な範囲において、Diomidis Spinellisは本作品に対するすべての著作権および関連・隣接する権利を放棄しています。