コンピュータサイエンス専攻
ソフトウェア工学講座の紹介

コンピュータサイエンス専攻 | 松下 誠

 ソフトウェア工学とは、品質の高いソフトウェアを、低コストでかつ期限内に開発を行い、出来上がったソフトウェアを効率よく保守するために必要となる技術を扱う分野である。本講座は、大規模なソフトウェアの開発効率を向上させることを目指し、ソフトウェア工学の分野の中でも「プログラム解析」に特化した研究を行っている。

 我々の研究では、数千万行を超える大規模なソフトウェアのソースコードや設計文書等を対象にし、その構造や開発されていった過程を分析して、これからのソフトウェア開発において有用な情報を抽出する。分析においては、開発履歴情報やプログラムの実行時情報、バグ情報データベースやアプリケーション構成情報など、成果物に付随する多様な情報を収集する。分析の結果は、ツールや既存統合開発環境を通じて開発者へ提供し、開発作業を支援する。

 以下、代表的な研究テーマについて紹介する。

多様なソフトウェア資産の収集・分析・評価と効果的な利活用の研究

 近年のソフトウェア開発では、オープンソースソフトウェアや過去に開発したソフトウェアなど、多様な資産を効率的に利活用することが必須である。本研究では、ソフトウェア資産の利活用支援フレームワークSARFを開発している。 SARFでは、①インターネット空間に存在する多様なソフトウェア資産を効率的に発見し、自動的に収集・分析し、 ②得られた資産の定量的な価値を評価し、 ③その評価値や他の情報を直感的に視覚化し、開発環境を通じ資産の利活用支援を行う。 コード検索、クローン分析、メトリクス、プログラム解析や再利用等の技術をもとに、各ステップの手法を研究し、 プロトタイプの作成、その評価を踏まえ、実運用に耐えるシステムに発展させ、広く公開して利用の普及を促進する。本研究は科学研究費補助金基盤研究(S)に採択されている(平成25~29年度)。

SARFの概要

Parallel Setsによるライブラリ組み合わせ状況の可視化

ソフトウェアの現状理解

 ソフトウェアの動作や品質を効果的に調べるには、今知りたい必要な情報のみをソフトウェアから抽出することが重要である。動詞に着目してメソッド名の命名支援を行う手法、システムの外部アクセス状況を用いた業務システムの理解支援、動的依存グラフ中の3-gramを比較することによるプログラム動作理解支援など、目的に応じた情報の抽出を通じて、ソフトウェアの現状を理解するための支援手法について研究を行っている。

ライブラリの進化とその利用状況の可視化

クローン系譜に基づく開発者ごとの再利用動向分析

PAGE TOP

©Graduate School of Information Science and Technology, Osaka University, Japan