ソースコードの直感的な理解を促進し、ソフトウェアの問題個所の発見を支援
2019年10月15日
株式会社日立製作所
日立は、ソフトウェア開発を効率化する技術として、大規模で複雑なソフトウェアの構造をバーチャルリアリティ(以下VR)空間で可視化する技術を開発しました。VR空間内にソフトウェア構造を建築物にたとえて表現することで、ソースコードの直感的な理解を助けるとともに、ソフトウェアの問題個所の発見を容易にしました(図1)。今後、日立は本技術を活用して効率的にソフトウェアを開発する環境を提供していきます。
図1 ソフトウェア構造の表現
図1 ソフトウェア構造の表現
以下の理解を支援する技術を開発:
ソフトウェアは関数(処理)の呼び出しの連鎖で作られており、これを2次元平面に表示すると複雑な図形となり、人間には理解できない情報になってしまいます。VR空間には縦・横・奥行があり、自分が頭を動かしたり、歩いたりすることで情報をさまざまな角度から見ることができます。本技術では関数を物体(オブジェクト)、関数のまとまりを部屋に対応付け、円筒および階層化した建築物として表現するアルゴリズムを開発しました。開発者は円筒状に並べられた建築物の中庭から全体の構造を一望することができます。さらに詳細を見たい部屋があれば部屋の内部に移動して、関数同士の関係やソフトウェアの特性を把握することができます。
ソフトウェアの構造が複雑すぎると、そのソフトウェアを母体とした改造は不具合が発生しやすくなります。不具合が発生しやすい構造には、依存関係が複雑すぎたり、関数の大きさが巨大すぎたり、よく変更されているなどの特性があります。これらの特性は、個別にソースコードを読んでいるときに気づくことは困難です。本技術では依存関係を線として、関数の大きさをオブジェクト形状として、変更履歴をオブジェクトの色として表示することで、直感的にソフトウェアの問題に気づくことが可能になります。
ソフトウェアの動作を理解するときに、ソフトウェアを実行して順番に見ていく作業を行います。従来はデバッガを使って行ごとにソースコードを実行して読んでいましたが、本技術では周辺のソフトウェア構造を見ながらVR空間内の関数を順に実行していくことができます。デバッグ中にエラーが発生した場合には、そのエラーが発生した個所を強調表示し、VR空間内に配置された関数のどこで問題があったのかを開発者は確認することができます。また、VR空間に複数の開発者が同時に参加し、共同でデバッグ作業を行うことができます。
図2 ソースコードの共同デバッグ
このトピックスは、以下の新聞、Webサイトに掲載されました。