ソフトウェア工学研究室2014

ソフトウェア工学研究室では、ソフトウェア開発に関わる様々な問題を研究しています。幅広い問題に取り組むため、国内外の研究者との連携に力を入れています(ソフトウェア工学研究室2013)。今回は現在取り組んでいる研究課題をいくつか紹介します。

ソフトウェア開発者の作業改善支援
本研究では、Personal Software Process(PSP)というソフトウェア開発者の作業を改善手法の研究に取り組んでいます。PSPでは開発者の作業履歴を記録し、実装(プログラミング)、テスト、ソフトウェア設計、会議といった個々の開発作業にどれだけの時間を費やしているか分析し、効率の改善やプロセス改善に役立てます。

我々はこのPSPに用いられるソフトウェア開発者の作業履歴を自動計測するためのツールTaskPitを開発しています。TaskPitでは、あらかじめPC上で動作するアプリケーション(例えば,Eclipse,Visual Studio,Word,Excel,SQLサーバ,コマンドプロンプトなど)とタスク(例えば,文章編集,表計算,実装,テストなど)を紐付けて、アプリケーションのアクティブ/非アクティブ状態を検知することで各タスクに費やした時間や作業量(クリック数、タスク数)を計測できます。

estimate

また、PSPでは「開発作業」という単位での作業記録が必要であるため、文書編集,表計算といったタスクを,その前後のタスクの実施状況から判断して「実装」「テスト」「設計」等の開発作業に自動的にマッピング(推定)する研究にも取り組んでいます。

人的リソースから見るオープンソースソフトウェアの健全性評価
オープンソースソフトウェア(OSS)は、ソースコードが無償で公開されている、だれでも改良や再配布が可能なソフトウェアです。OSSの普及に伴い、OSSを導入する企業が増加しています。企業がOSSを導入するメリットとして、経費を大幅に削減できるという点があります。しかし一方で、ボランティアが有志で開発を行っているというOSSの性質上、バグがすぐに修正されないという問題や、開発が突然打ち切られるというリスクがあります。そのため、企業は健全性の高いOSSを導入する必要があります。我々は人的リソースの観点からOSSの健全性を測ろうと試みています。

homebrew

次の図は、OSSプロジェクトの貢献者を、コメントやバグ報告などの議論を行う貢献者とコーディングを行う貢献者に分けて、貢献者の分布を人口ピラミッドで表したものです。このように可視化することで、プロジェクトが貢献者の獲得・維持ができているかが分かりやすくなります。

脳血流計測装置を用いたプログラム理解難度の測定
ソフトウェア開発において、プログラムのソースコードや設計書を読み、そのふるまいを理解すること(プログラム理解)は重要な作業のひとつです。たとえば、

  • ソフトウェアから欠陥を取り除く(デバッグ)ため
  • ソフトウェアの改良を行うため
  • 他者の書いたプログラムを再利用するため

などの工程において、開発者はプログラム理解を行う必要があります。

開発者がプログラム理解をうまく行えるかどうかは、対象となるプログラムの複雑さ開発者の能力などにかかっています。
したがって、経験年数が短い場合や新しい分野での開発において、開発者はしばしばプログラム理解が困難な状況に直面します。

このような開発者に対しては、適切なタイミングで手助けや教育を施したり、現在の仕事の割り振りを見直すことで作業の効率を上げることが出来る可能性があります。
また、プログラムが万人にとって理解しづらいようであれば設計を見直す必要があるとも考えられます。
しかしながら、プログラム理解とは開発者の頭の中で行われる処理であり、「困難な状況にある開発者」を見つけることはそう簡単ではありません。時によっては、開発者が困難を抱えているときに管理者が「開発者はうまく仕事に取り組んでいる」と勘違いするようなこともあるでしょう(図1)。

intro1

図1. プログラム理解に取り組む開発者の内心を知ることは難しい

本研究ではこの問題に取り組むため、プログラム理解を行う開発者の脳活動を観察するという率直なアプローチを採用しました。我々は、ウェアラブルNIRS(Near-InfraRed Spectroscopy; 近赤外分光法)装置(図2)と呼ばれる小型軽量な脳活動計測装置を用い、プログラム読解中の脳活動の推移や難度ごとの差を見ることで、プログラム理解の困難さを測定出来るのではないかと考えています。

intro2

図2. NIRS装置と原理

NIRS装置は、頭表面に向かって近赤外光のレーザーを射出し、その反射を捉えることで脳内の血中酸素濃度を測定し、そこから脳活動を推定する装置です。fMRIやPETのような他の脳活動計測機器と比べて精度は落ちますが、計測時の手間や身体動作への制約が少なく、また長時間の計測にも耐えうるという特徴があり、本研究に採用されました。

現在我々は、様々なレベルの難読化(プログラムをわざと理解しにくくするための処理)を施したプログラムをプログラミング経験者に読んでもらい、その理解中の脳活動を測定するという実験を行っています。実験の途中ではありますが、開発者にとって極端な困難が生じている間プログラム理解中の脳活動が強く活発化する傾向が確認できています。

Automated framework for bug report categorization

This Automated framework focuses on reducing the amount of human effort required to obtain information from bug reports.

While bug report categorization can greatly help in understanding software development and improving its process, it is a daunting task because of the required amount of human effort to complete this task.

We propose a framework of automatic bug report categorization. It first applies topic modeling techniques to discover “topics” in the collection of bug reports, and then classifies them with the features of existing topics.

Result from our experiments demonstrated that our framework could automatically categorize bug reports with good results and much less human effort.

国際会議IWESEP2014を主催

10806318_852020818164601_5971084601057743100_n

実証的ソフトウェア工学(ソフトウェア開発における開発者の経験・ノウハウを観測し、将来のソフトウェア開発にフィードバックすることを目的とした学問)に関する研究を対象に、研究分野の発展や若手研究者育成を目指す国際会議International Workshop on Empirical Software Engineering in Practice (IWESEP) 2014を開催しました。若手研究者がオーガナイズする本会議は今年で6回目を迎えます.本研究室からも中川さん(D1)がChairメンバーの一人として活躍しています。また、本研究室から2件の論文発表(Limsetthoさん(D2)、伊原助教)、ポスター発表(湯月さん(M2)、藤原さん(M1)、藤野さん(M1)、若本さん(M1)、Jiarpakdeeさん(研究生)、伊原助教)があり、藤野さんらのポスターはBest Poster Awardを受賞しています!

10268412_852023471497669_667558884949701036_n

サミットMSR Asia Summit 2014を主催

35fb3ec8b65b475989f24f9cfd77c1d9

ソフトウェア工学分野において注目されているマイニングソフトウェアリポジトリ(MSR: ソフトウェア開発中にデータベースに蓄積される開発資産をデータマイニングし、開発者の感や経験に依存しない知識を見出すことを目的とした学問)分野で活躍するスーパースターを多数招聘し、プレゼンテーション、議論を通して日本のMSR研究の発展を目指すサミットです。ソフトウェア工学研究室の伊原助教、NAIST修了生の亀井助教(九州大学)がオーガナイザーとなり開催されています。今年で2回目の開催となるMSR Asia Summit 2014は、世界5カ国から研究者を招聘し、世界最先端の研究を学び、ソフトウェア工学の未来について思いを馳せました。

6230296cfe6a42dd9694d7364703cb0e

ソフトウェア工学研究室の最新情報はこちらから
http://se-naist.jp/
https://www.facebook.com/selabnaist

ソフトウェア工学研究室2013

ソフトウェア工学研究室では、ソフトウェア開発に関わる様々な問題を研究しています。幅広い問題に取り組むため、国内外の研究者との連携に力を入れています。そんなソフトウェア工学研究室の2013年を振り返ってみます。

5月

3月14日から5月20日には、カセサート大学(タイ)のJirayus Jiarpakdeeさんがインターンシップにやってきました。オープンソースソフトウェア開発のリリースと開発者のサポートについて研究し、インターンシップ成果報告会では、「When Should We Move to the Next Version?」というタイトルで発表しました。写真は小笠原研究科長からインターンシップ修了証書を受け取るJirayusさんです。辛いものが苦手でビールが大好きなJirayusさんは、いつも元気いっぱいでした。Jirayusさんは帰国後インターンシップでの成果等が認められ、見事に国費外国人留学生(大使館推薦)に選ばれました。2014年10月に本学へ入学予定です。また一緒に研究できる日が楽しみです。

6月

6月18日から8月21日には、ミネソタ大学(アメリカ)のErik S. SteinmetzさんがJSPSサマープログラムでやってきました。Erikさんは囲碁の研究をしています。コンピュータ将棋はかなり強くなりましたが、囲碁はまだまだ発展中のようです。四国八十八夜を全て巡ったほどの日本好きで、日本語もお上手でした。

6月5日から16日には、本研究室博士前期課程2年の中川尊雄さんが共同研究で九州大学へ行ってきました。中川さんは、脳血流を計測してプログラム理解行動を定量化する研究をしています。この共同研究の成果は、ソフトウェア工学の基礎ワークショップで発表しました。

7月

7月10日から12日に開催された、マルチメディア、分散、協調とモバイル(DICOMO2013)シンポジウムで、本研究室博士前期課程2年の林宏徳さんが「OSS開発における一般開発者の協調作業と不具合の再修正に関する一考察」という発表を行い、最優秀プレゼンテーション賞(301件中4件受賞)、優秀論文賞を受賞しました。

8月

6月24日から8月30日まで、カセサート大学(タイ)から2013年第2期のインターンシップとして、Natthakul PingclasaiさんとRattamont Teekavanichさんがやってきました。Natthakulさんは、ソフトウェア開発プロジェクトで作成される大量の課題リポートをバグとそれ以外(機能追加やドキュメント更新依頼など)に自動的に分類する研究をしました。Rattamontさんは、課題レポートから修正すべきソースコードを特定する研究をしました。インターンシップ成果報告会でもしっかり発表を行い、修了証書を受け取りました。どちらの研究もその後国際会議で発表しました。

9月

9月13日から12月14日までの3か月間、本研究室博士前期課程2年のChakkrit Tantithamthavornさんが、今年(2013年)に本校と学術交流協定を締結したクィーンズ大学(カナダ)へインターンシップとして訪問しました。Chakkritさんはインターンシップ期間中にソフトウェアの欠陥混入箇所を自動特定するための研究を行い、国際会議論文を執筆しました。現在も共同研究は進行中です。

9月17日から10月1日まで、九州大学から大阪陽さんがインターンシップにやってきました。大阪さんは、インターンシップ期間中に、オープンソースソフトウェア開発でのパッチ採択の実情調査を研究しました。今後もこの内容で共同研究をしていきます。

10月

10月28日に、本研究室助教の伊原彰紀先生が共同企画したMSRアジア・サミットが京都で開催されました。MSR(Mining Software Repositories)とは、多様かつ大量にあるソフトウェア開発データのリポジトリから有用な知見を発掘することを目指す、近年ホットな研究分野です。この分野で活躍する若手の研究者に講演してもらうMSR スクール・アジアというイベントを本研究室が中心となって毎年開催しています。今年は、10人のトップ研究者を招待するMSRアジア・サミットというイベントを初めて開催し、70人以上の参加がありました。多くのトップレベルの発表を聴くことができる大変貴重な機会になりました。本研究室の学生は前準備から発表まで大活躍してくれました。

11月

11月28日から29日に開催された、グループウェアとネットワークサービス ワークショップ 2013(GNWS2013)で、本研究室博士前期課程2年の林宏徳さんが「OSS開発におけるレビュアー間の合意形成の分析」という発表を行い、ベストペーパー賞を受賞しました。

11月28日から30日に開催された、ソフトウェア工学の基礎ワークショップ FOSE 2013で、本研究室博士前期課程2年の内垣聖史さんが「学習データ計測時期による欠陥モジュール予測精度の比較」という発表を行い、IEEE Computer Society Japan Chapter FOSE Young Researcher Award 2013を受賞しました。

12月

12月2日にタイで開催された、International Workshop on Empirical Software Engineering in Practice 2013(IWESEP2013)で、本研究室博士前期課程1年の尾上紗野さんが「A Study of the Characteristics of Developers’ Activities in GitHub」という発表を行い、Best Student Paper Awardを受賞しました。また、昨年本研究室へインターンシップに来ていたJohn Boaz Leeさん(アテネオ・デ・マニラ大学,フィリピン)が「Patch Reviewer Recommendation in OSS Projects」という発表を行い、Best Presentation Awardを受賞しました。

 

12月2日から18日まで、アリゾナ大学(アメリカ)のChristian Collbergさんが滞在されました。Christianさんはセキュリティの専門家で、セキュリティの研究もしている本研究室准教授の門田先生を訪ねて来られました。初めての日本を堪能されていたようです。

12月1日から12月31日までの1か月間、本研究室博士前期課程1年の坂口英司さんが、オウル大学(フィンランド)へインターンシップとして訪問しました。坂口さんはインターンシップ期間中に欠陥予測のモデル構築に関する研究を行い、現在も継続して共同研究を進めています。

ソフトウェア工学研究室の最新情報はこちらから
http://se-naist.jp/
https://www.facebook.com/selabnaist