ソフトウェア工学研究の日々

ソフトウェア工学の学術研究を紹介しています。ソフトウェア開発に関する調査と実験が大好きです。

調査系研究

コードレビューはコーディングスタイルも整えている

タイトル通りですが、そんな調査をやってみた結果を5月のリポジトリマイニングの国際会議 (MSR) で発表しました。 ieeexplore.ieee.org 論文の内容をまとめると、以下の通りです。 投稿されたパッチ(Pull Request) の最初の版と、最後の版で、n-gram ベース…

習熟度の高いプログラマは、瞬間的にプログラムの内容を把握する

ソフトウェア工学研究室の幾谷吉晴さんがプログラム理解に関する実験結果を論文として発表しました。論文自体は英語ですが、内容の概略を日本語プレスリリースとして出してもらいました。 www.naist.jp 実験は、1画面に収まる程度の長さの Java のソースコ…

開発者数が増えたときのソースコードの書き方のばらつきの増減

2019年の春から夏にかけてインターンシップでソフトウェア工学研究室に来てくれた学生が2019年末のワークショップで発表を行いました. How Do Contributors Impact Code Naturalness An Exploratory Study of 50 Python Projects [ResearchGate.net] Code N…

コードレビューのコメント量はプロジェクトによる

コードレビューで開発者はどのぐらいコメントをしているのか、私たちの研究室で調べた論文が電子情報通信学会の英文誌に掲載されました。J-STAGEからどなたでもダウンロードすることができます。 www.jstage.jst.go.jp この論文では、Chromium、AOSP、Qt、Ec…

ソースコード差分を集めるための git diff では --histogram を使うべき

当研究室博士後期課程の Yusuf Sulistyo Nugroho さんが発表した、言いたいことは論文のサブタイトル("Use --histogram for code changes")で終わっている論文です。オープンアクセスとなっているので、どなたでも全文をダウンロードできます。 link.sprin…

SES 2019 にてポスター・インタラクティブ賞を受賞しました

前回の記事から時間があいてしまいましたが、前回の投稿 エンジニア研修によるプログラムの質の向上を計測する試み - ソフトウェア工学研究の日々 の最初の成果を、情報処理学会ソフトウェア工学研究会のフラグシップイベントであるソフトウェアエンジニアリ…

コードレビューは活発に活動している人ほど引き受けてくれる

今月末に開催されるソフトウェア工学の国際会議 ICSE にて、Journal-First Track という「論文誌に採択されたが国際会議では未発表」という原稿について、私たちの研究室から1件発表があります。 arxiv.org この論文は、オープンソースソフトウェアプロジェ…

OSS プロジェクトに寄付をした人に「親しみを感じる」ことの影響

オープンソースソフトウェアプロジェクトの運営において、寄付は重要な要素であると言われています。Eclipse では、寄付した人に対する特典として、バグ報告等を行うための Issue Tracking System において、寄付をした人の名前の横に "Friends of Eclipse" …

パッチ投稿経験が増えてもパッチに含まれる軽微な問題の個数は減らない

パッチを投稿してコードレビューを経験するほど、自分でパッチの問題に気付くことができるようになり、投稿パッチに含まれる間違いが減っていくのではないか。そんな仮説に基づいて、開発者のパッチ投稿回数(=経験値)と、パッチに含まれる軽微な問題の件…

コードレビューの修正内容は開発者の勉強に役立ちそう

コードレビューはソースコードの潜在的な問題を取り除き、読みやすさを向上するために重要な活動だと言われています。私たちの研究室では、将来的にコードレビューをある程度自動化したいという考えを持っていて、コードレビューがどんな修正を行っているの…

ライブラリのセキュリティ問題がアプリケーションに影響しないケースも多い

ライブラリの名前とバージョン番号を指定するだけで自動的にダウンロード等を完了してくれる依存性管理ツールのおかげで、どのライブラリを使っているかが機械的にチェックできるようになり、古いバージョンのライブラリを使っているとセキュリティ問題のあ…

開発者は使用するライブラリを更新しない

ソフトウェア開発では、画像の読み書きやネットワーク接続など、基本的な処理を提供するライブラリを土台にして、開発したいソフトウェアに固有の機能を作っていきます。 ほとんどの人は、開発を始めるとき、あるいはライブラリを必要とするような機能を実装…

ソースコードのコメントに登場する URL の役割

プログラミングの最中に、ライブラリの使い方やアルゴリズムの書き方など、様々な情報をインターネット上から集めてくることが一般的になっています。プログラムを書いたときに参考にした情報の URL をコメントとして一緒に記述しておけば、あとで参照できる…