ソフトウェアアップサイクル実現のための既存資源活用手法に関する研究(寺川)

ソフトウェアの再利用

近年,日常生活や学術研究など様々な場面でソフトウェアの活用が進んでいます.

ソフトウェアが使用され続けるためには,脆弱性に対する修正といったセキュリティの向上や,新規機能の追加といった変更を取り入れることが求められます.そのため,ソフトウェアを活用し続けるためには,適切な管理・運用が必用であり,これらが行われない環境では,ソフトウェアは時間の経過とともに陳腐化してしまいます.

一方で,陳腐化したソフトウェアにはソフトウェア開発を効率的に行う上で利用価値が存在します.特に,組織内で閉じた利用環境を想定したソフトウェアにはその中に過去資産とも呼べる知見が蓄積されている場合があります.ソフトウェアが内包する組織特有の開発コンテキストや設計・実装のアイデアは,その組織内開発コンテキストにおいて新たな
ソフトウェア開発に活用できる価値を持ちます.こうした既存のソフトウェアを再利用することで,管理・運用に伴うコストの削減が見込めます.

ソフトウェアアップサイクル

過去に作成されたソフトウェアをうまく活用し,時間・人材を節約しつつ新規開発を行う考え方をソフトウェアアップサイクルと言います.ソフトウェアアップサイクルは2つの工程から構成されます.まずは対象となるソフトウェアからアップサイクル素材の抽出を行い,次に得られたアップサイクル素材の組み合わせて新規にソフトウェア開発を行います.

アップサイクル素材の抽出では,過去に開発されたソフトウェアプロダクトから転用可能な情報を抜き出します.ソフトウェアの特徴を抽象化することで開発コンテキスト固有の情報を捨てる,いわゆる「捨象」をしつつ,転用可能な価値を素材として取得します.

アップサイクル素材の組み合わせとは,得られた素材を別の目的のソフトウェア開発に転用するとで新たな価値を生み出すことです.これにより,一からの新規開発と比較して,時間や人的リソースといった資源の有効活用が見込めます.

ソフトウェアアップサイクルを行う上では,素材となるソフトウェアの概要を把握し,価値ある素材を見つけ出すことが必要です.しかしながら,ソフトウェアの概要を理解する際には様々な問題が生じます.具体的には,ソフトウェアドキュメントの不備・欠如や,それに伴う知見の属人化です.

そのため,ソフトウェアアップサイクルを実現するためには,特定の人物の知識やドキュメントの有無に依存しないソフトウェア理解の手法が求められます.

目的とアプローチ

本研究の目的は,組織内ソフトウェアからアップサイクル素材を抽出することです.これを達成するため,メソッド名を用いた抽象化手法と,LLMを用いた抽象化手法を提案しました.

結果として,以下のA1~A3に示す3つの成果を達成しました.

  • A1:メソッド名構成単語に基づく既存プロジェクト概要推測に関する検討と評価
  • A2: 単一ソースファイルを対象としたLLMによるアップサイクル素材の抽出と評価
  • A3: ソフトウェア全体を対象としたLLMによるアップサイクル素材の抽出と評価

A1:メソッド名構成単語に基づく既存プロジェクト概要推測に関する検討と評価

メソッド名はソフトウェアの特徴を表すというアイデアのもと,メソッド名構成単語からソフトウェアの特徴を推測する手法を提案しました.

リサーチクエスチョンとして「RQ1: メソッド名を用いたソフトウェア抽象化手法による概要把握は可能か?」を設定し,これを検証するために実験を行いました.研究室で管理するソフトウェア群に対して提案手法を適用し,ソフトウェアのHowとWhat の観点から概要把握の効果について評価を行いました.

その結果,ソフトウェアの動作に関わるエンティティへの重み付けができたことが確認できました.これに伴い,プロジェクトが提供する働きの把握に活用できる可能性を見出しました.

A2: 単一ソースファイルを対象としたLLMによるアップサイクル素材の抽出と評価

LLMを用いて単一ソースファイルからアップサイクル素材を抽出する手法を提案しました.

リサーチクエスチョンとして「RQ2: LLMを用いた自然言語による抽象化を用いて,単一ソースファイルからアップサイクル素材を抽出することは可能か?」を設定しました.LLMとしてGPT-3.5Turboを利用し,提案手法を用いた実験を行いました.研究室で管理する組織内ソフトウェアに対し実験を行い,得られた結果を主観的に評価しました.

結果として,技術要素の抽出や実装の詳細な説明の取得には高い正確性が確認できました.また,プロンプトに組織内ソフトウェアに関する補足説明を加えることで,回答の適切性を挙げることができると明らかにしました.

A3: ソフトウェア全体を対象としたLLMによるアップサイクル素材の抽出と評価

LLMによるソフトウェア全体を対象としたアップサイクル素材の抽出手法を提案しました.

リサーチクエスチョンとして「RQ3: ソフトウェア全体を対象としたLLMによるアップサイクル素材の抽出は可能か?」を設定しました.組織内ソフトウェアに対してGPT-4Turboを用いたソフトウェアアップサイクル素材の抽出手法を適用し,実験を行いました.プロンプトとして組織内ソフトウェアに関連する情報が存在するユースケースと,存在しないユースケースの2つを検討し,プロンプトを変更させて実行しました.

結果として,関連情報の有無に関わらず,アップサイクル素材が抽出できることを確認しました.LLMのコンテキスト長に収まる範囲の規模のソフトウェアであれば,システム全体を考慮したアップサイクル素材の抽出が可能であると結論づけました.