京都新聞TOP > 情報技術最前線
インデックス

[14]内部の欠陥すばやく見つける

立命館大情報理工学部教授 丸山勝久氏
可視化された3次元グラフィックスを回転および拡大縮小させて見ることで、複雑な部分を探している様子
可視化された3次元グラフィックスを回転および拡大縮小させて見ることで、複雑な部分を探している様子

 現代社会において、われわれの生活は、ソフトウエアなしでは成り立たないといっても過言ではありません。今ではあらゆる分野において、ソフトウエアが企業の成否を分ける重要な役割を果たすようになってきています。さらには、近年注目されている共有型経済(シェアリングエコノミー)において、乗り物・住居・服など個人所有の資産の貸し借りを仲介しているのもソフトウエアです。もはや、ソフトウエアは社会基盤のさまざまな局面を支えているだけでなく、社会に新しい産業の形態を生み出す原動力にもなっています。

 それでは、われわれはどのようにソフトウエアと接していけばよいでしょうか。昔のように、社会のごく一部で利用されていた時代では、その信頼性や安全性は一部の企業の関心事でした。しかし、知らないうちに生活の大部分がソフトウエアに依存している時代においては、その信頼性や安全性に無関心でいられません。電子商取引における情報漏えいや自動運転車の事故のニュースを見るたびに、われわれの日常生活をソフトウエアに任せて本当に大丈夫だろうかと不安になる人は多いと思います。

ソフトウェアの可視化

 ところで、今や自動車を制御するソフトウエアの規模(プログラムコードの行数)は1000万行を超え、Webサービス企業の保有するソフトウエアの規模は数億~数十億行といわれています。また、スマートフォンで自分のスケジュールを確認するだけでも、通信、暗号化、データ管理など、さまざまなソフトウエアがわれわれの見えないところで複雑に連携しています。

 このような状況において、安心・安全な社会を支えるソフトウエアをどのように作ればよいのかという課題に挑戦しているのが、ソフトウエア工学(ソフトウエアエンジニアリング)という分野です。一方で、残念ながら、最新技術に基づくだけで信頼性や安全性の高いソフトウエアが簡単に作れるわけではありません。そのため、さまざまな方法でソフトウエアを診断し、信頼性や安全性の低いものをすばやく見つける技術が重要になっています。たとえば、ある自動車の自動ブレーキが正しく動作するかどうかを検査するとき、その自動車に搭載されている1000万行のプログラムコードを1行ずつ調べていくという方法では時間や費用がかかりすぎます。

 大規模で複雑なソフトウエアの診断を支援する技術のひとつとして、ソフトウエアの可視化(見える化)があります。ここでは筆者らが開発した、ソフトウエアを森で表現する可視化システムを紹介します。ソフトウエアを測る基準や方法は、ソフトウエア工学の過去の研究でいくつも提案されていますので、それらによって測定されたデータを木の高さ、太さ、色、枝ぶり、葉の数などさまざまな方法で直感的かつ俯瞰(ふかん)的に見えるようにしました。森を見たときの違和感、たとえば他と大きく異なる見た目の木を探すことが、ソフトウエアの欠陥を見つけることに役立つことも分かっています。

 ソフトウエアの内部に隠れているさまざまな情報を人間に理解しやすい形で提供してくれる可視化技術がさらに進むことで、たとえ専門家でなくても、その信頼性や安全性の診断ができるようになることが期待できます。将来、自動車の販売カタログに、車に搭載されたソフトウエアの可視化情報が掲載されるのが当たり前になるかもしれません。

まるやま・かつひさ

 1993年、早稲田大学理工学研究科修士課程修了。同年、日本電信電話株式会社(NTT)入社。2000年より立命館大。専門はソフトウェア工学。特に、ソフトウェア保守と進化、ソフトウェア開発環境の研究に従事。現在、情報処理学会ソフトウェア工学研究会主査。

【2018年05月23日掲載】