学部・大学院 教員詳細

神田 哲也

神田 哲也(かんだ てつや)

職名
准教授
担当分野
ソフトウェア工学、ソフトウェアデザイン、ソフトウェア開発演習
学位
博士(情報科学)
研究キーワード
ソースコード解析、ソフトウェアリポジトリマイニング、動的プログラム解析、ソフトウェア部品表、ソフトウェアエコシステム

教員からのメッセージ

ソフトウェア開発では…いえ、それに限らず「何かの課題を解決する」という作業の中には、プログラミングなどの直接的に物や仕組みを構築する部分以外にもたくさんの手順が含まれています。大学での広い学びを通じて、世の中の問題のとらえ方や、それを実際に解決するために必要な考え方を身に着けてほしいと思います。

研究内容

ソフトウェアをより良く、より効率的に開発するための技術を研究するソフトウェア工学という分野の研究者です。特に、ソースコードの解析技術や、ソフトウェアの進化を分析するための差分解析技術を中心に研究を行っています。

ソフトウェアの進化の分析・比較手法の研究

世の中で利用されているソフトウェアは、絶えず変更が加えられています。バグの修正であったり、機能の追加であったり、時には複数の製品に枝分かれが起きたりすることもあります。いろいろ人が書いたプログラムを分析して、共通点や違いを探したり、進化の過程を探ったりしながらよりよいソフトウェアが開発できる技術につなげる研究をしています。プログラムそのものだけでなく、ソフトウェア開発者が使うプロジェクト共有サイトやQ&Aサイトなど、さまざまな情報を分析しています。

ソフトウェアの挙動の変化の観察

あるソフトウェアの古い版と新しい版の違いを考える際、変更によってソフトウェアの動作がどのように変わったかをとらえることは簡単ではありません。ソフトウェアの実行を記録する手法として「実行トレース」という、実行中の変数の値や関数の呼び出しなどを逐一記録する手法がありますが、記録が膨大になるため効率的な比較を行うことが重要です。 開発者が慣れ親しんだプログラムの文字的な差分の上に、実行トレースの差分を強調して表示する可視化を考えました。文字的な差分と違い、同じ個所を複数回実行した差分を表現する必要があるため、何回目で差分が生まれたかを可視化する方法を考えて実装しました。

ソフトウェアの進化による別の情報源への影響

ソフトウェアを開発する際にWebや本などの情報を参考にすることも多いですが、それらの情報がソフトウェアの進化により古くなってしまうことも考えられます。ソフトウェアの進化によるWeb上の情報への影響を観察するために、プログラミング言語Pythonとプログラマ向けのQ&AサイトStack Overflowの投稿に着目しました。調査の結果、「良い回答」とマークされた回答であっても、その約10%近くはPythonの進化によって動作しなくなっていることを明らかにしました。またこの結果を受けて、利用者へのサポートのためにStack OverflowのプログラムがどのバージョンのPythonで動作するかを示すブラウザ拡張を試作しました。