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

ソフトウェア工学の学術研究を紹介しています。ここではソースコードなどのプロダクトが研究の主役です。

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

2019年の春から夏にかけてインターンシップソフトウェア工学研究室に来てくれた学生が2019年末のワークショップで発表を行いました.

How Do Contributors  Impact Code Naturalness An Exploratory Study of 50 Python Projects [ResearchGate.net]

Code Naturalness というのは言語モデルN-gram など)を使ってどのぐらいプログラムの中身が予測できるか,つまり「よくあるコード」か,というのを計測しようという考えです.OSS プロジェクトにおいて,人が集まっている度合いと Naturalness に相関のような関係があるのかを,開発がそれなりに長い Python プロジェクト50個で調査したものが以下の図になります.

f:id:ishiotakashi:20200131113113p:plain

論文 Fig.4 より引用.縦軸が予測のしにくさ.開発者数が多い(high),中間(medium),少ない(low) 3つのプロジェクト群のコードで,多いプロジェクトのコードのほうが内容が予測がしにくいという傾向が出ています.


 図を見ると,実は上から順に Hgih / Low / Medium と並んでいて,増えれば増えるほどばらつきが増えるというわけではないようでした.たとえば人数がある程度増えるとコーディング規約などが整備されて予測しやすくなるとか,大人数で開発するようなプロジェクトだと多様な機能を実装していくので(他にない独自の機能を作っていくので)予測しにくくなるとか,などの可能性があります.

 論文ではこれに加えて開発者の Python プロジェクトでの経験(GitHub上で見える活動量)との関係も調べてみたのですが,やはり単純に経験が増えれば予測しやすくなるというわけでもないようでした.

 ソフトウェアの機能や熟練度,開発体制など,ソースコードの内容に絡んでいそうな要因を切り分けていくこと,そして Naturalness という指標自体の性質を調べることが,今後の課題となっています.