ソフトウェア工学研究室

ソフトウェアは成長する、あなたとともに

教員

  • 松本 健一

    教授:松本 健一

  • 石尾 隆

    客員教授:石尾 隆

  • KULA Raula G.

    客員教授:KULA Raula G.

  • 畑 秀明

    客員准教授:畑 秀明

  • 嶋利 一真

    助教:嶋利 一真

研究を始めるのに必要な知識・能力

研究内容がプログラミングと密接に関係するため、プログラミング経験があると研究をスムーズに進めることができます。また、ベクトルや集合、グラフといった数学の基礎的な概念を知っていると役立ちます。

研究室の指導方針

既存の理論・手法に学生の好奇心や柔軟な思考をうまく組み合わせていくことで、これまでにないブレークスルーが実現すると考えています。研究テーマの設定においては、これまでの研究の取り組みや現在の課題を幅広く教員から提示したうえで、学生の希望や味、アイディアをもとに相談して決定しています。
研究室として、学生が相互にコミュニケーションをとることを奨励しています。留学生まで含めると学生の出身は多岐にわたるので、日本語と英語を組み合わせて、自分の失敗を恐れず、相手に対しては寛容に、対話してもらいたいと考えています。

この研究で身につく能力

ソフトウェア開発・利用に関する専門家として、複数の開発者が協力して活動するための方法論やツール、ソフトウェア品質の評価方法といった知識を身につけることができます。また、ソフトウェア開発に関する最新動向についての議論を通じて、多様な開発プロセスや開発環境、プログラミング言語それぞれの意義についての実践的な知識を得ることができます。
研究活動では、論文や技術文書に書かれた内容の細部を厳密に解釈し、自分の研究と関連付けて考えることによって、技術の特性や意義を適切に読み解く能力が身につきます。また、論文の執筆や研究発表を通して、聴衆に合わせて適切に、日本語と英語を用いて、技術を説明する能力を身につけることになります。

修了生の活躍の場

ソフトウェアベンダー、電機メーカー、製造業などで製品開発、研究、教育に携わっています。

研究内容

ソフトウェア工学研究室では、ソフトウェアが持つ脆弱性の克服とソフトウェア開発・利用における新たな基盤技術の確立をめざし、ソフトウェア製品・サービスの開発および利用に関わる理論、方法論、モデル、環境・ツール、ベンチマーキング、技術移転などの研究開発に取り組んでいます。研究対象は、ソースコードをはじめとするドキュメントだけでなく、テストやデバッグなどの作業、更には、ソフトウェアの開発や利用に携わる個人・コミュニティ間でのコミュニケーションに関するビッグデータです。データ解析には、機械学習、自然言語処理、ゲーム理論、社会学、神経科学といった多様な技術を用い、これまでにない斬新な技術を実現しています。

ソフトウェア開発・利用活動の分析

ソフトウェア工学における研究対象

ソフトウェア工学における研究対象

ソフトウェアの基本部品となるソースコードを公開し共有することで信頼性を保つ「オープンソースソフトウェア」が、ソフトウェア開発・利用の大きな潮流となっています。このような状況を踏まえて、ソースコードの品質や開発プロジェクトの継続性等を左右する要因を、オープンソースソフトウェアを対象として詳細に分析しています。また、競技プログラミングやレガシーソフトウェアなどより多様なソフトウェアを対象として、プログラミングの学習方法、特に、初心者と熟練者の差異の明確化、プログラム理解プロセスの解明等にも取り組んでいます。

分析に基づくソフトウェア開発・利用支援

既存ソフトウェア群で使用されている類似ソフトウェア部品の検索

既存ソフトウェア群で使用されている類似ソフトウェア部品の検索

ソフトウェアの開発・利用活動を分析した結果にもとづいて、ソフトウェア開発者・利用者の役に立つ技術を実現します。たとえば、ソフトウェアやライブラリの最適な組み合わせの推薦、ソースコードに含まれる記述誤りや記述の暗黙ルールの自動検出・可視化、ソフトウェア性能(利用時の実行速度)の低下要因の顕在化等に取り組み、その有効性を確認する実証実験を行っています。

研究設備

ソフトウェア工学研究室は、オープンソースソフトウェアの生態系と呼ばれる活動状況を記録、分析するための計算サーバを保有し、研究に使用しています。また、ソフトウェア工学技術の実社会への応用として、遠隔授業システム「C2Room」を、奈良先端大発ベンチャー企業である株式会社 dTosh と共同開発しています。
これらのシステムに加えて、ソフトウェア工学に携わる実務家・研究者との国際的な対話のネットワークを構築し、研究活動の基盤としています。

研究業績・共同研究・社会活動・外部資金など

  • Yuki Ueda, Akinori Ihara, Takashi Ishio, Toshiki Hirao and Kenichi Matsumoto: How are IF-Conditional Statements Fixed through Peer Code Review? (コードレビューを通じてIF文はどのように修正されるか). IEICE Transactions on Information and Systems, Vol.E101-D, No.11, pp.2720-2729, Nov. 2018.
  • Raula Gaikovina Kula, Gregorio Robles: The Life and Death of Software Ecosystems (ソフトウェアエコシステムの生と死). Towards Engineering Free/Libre Open Source Software (FLOSS) Ecosystems for Impact and Sustainability. pp.97-105, July 2019.
  • Toshiki Hirao, Raula Gaikovina Kula, Akinori Ihara and Kenichi Matsumoto: Understanding Developer Commenting in Code Reviews (コードレビューにおける開発者コメントの分析). IEICE Transactions on Information and Systems, Vol.E102-D, No.12, pp.2423-2432, Dec. 2019.
  • Yusuf Sulistyo Nugroho, Hideaki Hata, and Kenichi Matsumoto: How Different Are Different Diff Algorithms in Git? (Gitの異なるDiffアルゴリズム出力による影響の実証研究). Empirical Software Engineering, Vol.25, No.1, pp.790-823, Jan. 2020.

NTTデータ、富士通研究所、株式会社ギブリー、株式会社スリーク、有人宇宙システム、NEC、SAPなど多くのソフトウェア企業と連携し、共同研究や実証実験、ツール開発を行っています。