~ ソースコード理解とパッチ適用判断問題で腕試し ~
森崎 修司 [著] 2009/09/11 16:00

1 2 →

ソースコード読解力は個人差が大きい

 コードレビューなどで、他の人のソースコードを読んだり理解したりする速度が気になることはありませんか? また、読む速度や理解する速度がとても速い人がいると感じたり、自分が周りの人よりも速いと思ったりすることがあるのではないでしょうか。私たちの研究グループで実施した観察でもソースコードを読む速度は個人差が大きいことを確認しており、同じソースコードを理解するための時間に6倍の差がある事例を確認しています。

 では、自分自身のソースコードを読む速度や理解する速度が、平均と比べて速いのか遅いのかを知るためにはどうしたらよいでしょうか? 最も簡単な方法は、社内などの身の周りの人とコードレビュー時間を比べてみることでしょう。他にも、参加者全員でソースコードを読むような社外勉強会に参加する方法もありそうです。

文献からは大まかな速度を知ることができる

 書籍、標準、論文の情報も参考になるでしょう。表1は国際標準や文献に掲載されているコードレビュー速度の一覧です。文献によっては、プログラミング言語が明記されていないものもあります。他にも、どのようなプロジェクト、前提、手順で実施したものかも勘案する必要があるので、これらのコードレビュー速度は大まかな指標として捉えるのがよいでしょう。

表1 標準や文献での参考値
文献名コードレビュー速度
(1時間あたり)
公開年
IEEE: IEEE Standard for Software Reviews and Audits(1028-2008)100~200行(Technical reviews)2008
ワッツハンフリー: TSPi ガイドブック(Introduction to the Team Software Process)、秋山義博 監訳、JASPIC TSP研究会訳、翔泳社200行以下(インスペクション)2008(1999: 原著)
M. Fagan: "Design and code inspection to reduce errors in program development", IBM Systems Journal, vol. 15, No. 3, p 181-211700~900行(問題発見)、500~700行(問題指摘)、(インスペクション、COBOL, コメント行含まず)1976

ハンズオンワークショップでの事例

 私たちの国際研究グループが主催した「ソフトウェアインスペクションワークショップ2009」では、レビュー観点をセキュリティに限定し、1時間10分で4,500行のJava言語から欠陥の発見をするハンズオンを実施しました(図1)。ワークショップ参加者は、実務でソフトウェア開発に携わる様々な企業に所属する方です。事後アンケートから、参加者93名のうち32名が普段の業務でのコードレビューのほうが速い(時間当たりに読み進めるソースコード量が多い)と回答しました。表1の値とはずいぶん異なりますが、特定の観点に限定することで読むべき部分を限定し、みかけ上の読む速度が上がることもあると考えることができそうです。

図1 ワークショップでのレビューの様子
(この後、参加者どうしでグループディスカッションをしました)
図1 ワークショップでのレビューの様子(この後、参加者どうしでグループディスカッションをしました)

オンラインでもハンズオンワークショップを

 紹介したハンズオンのアンケートをはじめ「オンラインでもできるものを」という要望をたくさんいただいています。そこで、対象ソースコード、読みすすめ方など、条件をある程度そろえ、参加者の結果を共有できる題材(ハンズオン題材)を用意することを考えました。ハンズオンは、参加者にとっては腕試し、私たち研究グループにとっては研究題材になります。題材の準備や研究テーマは奈良先端科学技術大学院大学 博士前期課程の保田 裕一朗氏が中心となって進めています。


1 2
→
INDEX
【読者参加型企画】2,000行のJavaソースコードを読むのに何分かかりますか?
Page1
ソースコード読解力は個人差が大きい
文献からは大まかな速度を知ることができる
ハンズオンワークショップでの事例
オンラインでもハンズオンワークショップを
ハンズオンの題材
ハンズオン結果の公開方法
オンラインハンズオンの結果をもとにした研究
プロフィール
森崎 修司 モリサキ シュウジ

国立大学法人 奈良先端科学技術大学院大学 情報科学研究科 助教

ソフトウェアレビュー/ソフトウェアインスペクション、ソフトウェア計測を専門とし、研究・教育活動をしている。奈良先端科学技術大学院大学にて工学博士を取得後、情報通信企業でソフトウェア開発、開発管理、レビューに従事。現在、同大学院に奉職。研究成果を業界に還元していくことをミッションの1つと位置付け、ソフトウェアレビュー研究の国際連携ワーキンググループの主導、多数の企業との共同研究、文部科学省「次世代IT基盤構築のための研究開発: StagEプロジェクト」に従事。研究グループのWebブログ


注目の求人情報
コンサルタント/ベンチャーファーム
PMOコンサルタント・業務コンサルタント
コンサルタント/外資系戦略ファーム
シニア・マネジャーまたはシニア・エグゼクティブ <シニア・マネジャー> プロジェクトの進捗管理...
システムエンジニア/ソーシャルアプリの未来を牽引していく、サーバーエンジニア募集!!
今後、爆発的な市場拡大が見込まれている、ソーシャルアプリの制作を現在強化しております。 Full Fl...

(最新日付順)
名前(ゲストの方もコメントをどうぞ):*
アイコン:
なし

内容(テキストのみ1200文字まで):*

投稿規定に同意して

スポンサーサイト

この記事のトラックバックURL: