2022 Fiscal Year Annual Research Report
Research and development of a hierarchical multi-scale software analysis platform
Project/Area Number |
21H03416
|
Research Institution | Nara Institute of Science and Technology |
Principal Investigator |
飯田 元 奈良先端科学技術大学院大学, 先端科学技術研究科, 教授 (20232126)
|
Co-Investigator(Kenkyū-buntansha) |
藤原 賢二 東京都市大学, メディア情報学部, 講師 (80782622)
崔 恩瀞 京都工芸繊維大学, 情報工学・人間科学系, 准教授 (90755943)
|
Project Period (FY) |
2021-04-01 – 2024-03-31
|
Keywords | ソフトウェア分析基盤 / ソフトウェアリポジトリマイニング / データマイニング / コード解析 |
Outline of Annual Research Achievements |
本研究では、複数の異なる抽象化階層の定量的指標に対する横断的な分析を可能とする「多階層マルチスケール・ソフトウェア分析基盤」の確立を目指して、「ソフトウェアを解釈する異なる抽象化レベルごとにその変更履歴と依存関係を蓄積し、実務者や研究者からのクエリ要求に基づき、条件に合致するデータを容易に引き出し可能な基盤」の構築に取り組んでいる。本期間中には下記3課題を並行してすすめた。 課題1)多階層マルチスケール型データモデルおよびクエリ言語HMSQLの設計:ソフトウェアの論理的モデルから物理的実装に至るまでの抽象的階層構造を表現可能な多階層マルチスケール型データモデルを設計するために、各階層別のデータ構造と相互依存関係についてさらなる調査・整理を行った。特に、開発者の生産性やプロジェクトの活発さを測る際に必要となる追跡作業のためのクエリ構造について、その表現方法を明らかにした。 課題2)大規模並列分散HMSQL クエリ実行エンジンの設計・実装:並列分散処理フレームワークDaskを基盤に用い、GitHub上の公開イベントデータセットGHArchiveを対象に、課題1で扱った分散クエリを実行し、多数のリポジトリを大規模横断的に分析して、開発者の生産性を解析するアプリケーションの試作と評価を実施した。 課題3)多階層融合型ソフトウェア・アナリティクス手法の実証:本分析基盤での深化型アナリティクスと横断型アナリティクスの事例として、複数の分析を実践した。具体的には、深化型分析として、ファジングが特定のプロジェクトに及ぼす影響を評価した。また、特定プロジェクトにおけるクラスレベルでのバグ予測手法の評価を行った。横断型分析として、OSS開発者の属性が技術的負債の除去に及ぼす効果の分析を行った。また,多種多様なプロジェクトから構築したコード補完モデルを特定のプロジェクトに特化させる際の影響を分析した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
課題1においては、初年度目標で実施した多階層マルチスケール型データモデルの概要設計を深化させるために、各階層別のデータ構造と相互依存関係についてさらなる調査・整理を行い、さらに開発者の生産性の分析を題材に、そのクエリ構造の表現方法を明らかにするなど、具体課題にも取り組むことができたため、概ね順調に進捗していると考えられる。 課題2においては、並列分散処理フレームワークであるDaskを基盤として用い、課題1で扱った分散クエリを実行するアプリケーションの試作と評価を実施することができており、計画通りに進捗していると考えられる。 課題3においては、深化型アナリティクスと横断型アナリティクスの事例として、複数のプロジェクト分析を実践し、予定通りに本プラットフォームのユースケースの蓄積を行なうことができた。次年度以降も引き続き分析事例の蓄積を行なうと同時に、試作プラットフォームにおけるレプリケーションの実施方法の検討に着手する予定である。
|
Strategy for Future Research Activity |
進捗は概ね順調であり、今後は各課題間の連携をより強化した上でプラットフォームの実装に向けた作業に着する予定である。具体的には、課題1においては各階層別のデータ構造と相互依存関係に基づいた言語仕様の詳細設計を、課題2においては、クエリデータの詳細設計を、課題3においては、引き続き分析事例の蓄積を行なうと同時に、試作プラットフォームにおけるレプリケーションの実施方法の検討に着手する予定である
|
Research Products
(8 results)