夢ナビ

自動でプログラムのバグを修正できる時代は来るか?

講義No.11211

バグの修正を自動化する

 自動運転や無人レジなど、さまざまな場面で自動化が進められています。しかしコンピュータのプログラミングについては自動化がまだ完全には実現しておらず、バグが発生したときは主に人間がソースコードの修正作業をしています。バグが生じやすい箇所のひとつがプログラム中の条件分岐です。状況に応じて処理を変えるときに使いますが、「0以上のとき」とすべき箇所に「0より大きいとき」と書いてしまうなどのミスが多く見られます。修正は簡単だとしても、規模の大きなプログラムになればなるほど間違えた部分の検出に時間がかかります。そこでバグの検出と修正を自動で行えるソフトウェアの開発が進められています。

バグの修正は病気の治療に似ている

 バグにはさまざまな種類があり、どのような場合にも幅広く対応できる自動プログラム修正技術はまだ実現していません。人間の病気の治療に例えれば、すべての病気を治すことのできる薬はまだないため、治療ではまず病気の種類を診断し、適切な薬などを考えるということです。バグへの対応も同様で、1つひとつのケースに適した修正方法を提案できるよう、分類や分析などをしなければなりません。

裁判にも役立つ検出技術

 自動プログラム修正は、ソフトウェアを運用してみて想定通りに動かないときに使われる技術です。一方で、ソフトウェアの開発中に類似のソースコードをコピー&ペーストしたとき、誤った記述まで複製してしまう事例もプログラミングでは問題となります。コードクローンと呼ばれる複製されたソースコードを何度も使うのはよくあることで、コピー元が誤っているとバグだらけのプログラムになってしまいます。これに対応するため、コードクローンを検出する技術が開発されており、コードクローンに特化してチェックすることができます。実は、プログラムの盗用を訴えた裁判で、コードクローンの検出技術を使って証拠をつかんだ事例もあり、その活躍の場はソフトウェア工学だけにとどまらないのです。

この学問がむいているかも情報科学

大阪大学
大学院情報科学研究科 コンピュータサイエンス専攻 ソフトウェア設計学講座 准教授
肥後 芳樹 先生

先生がめざすSDGs
メッセージ

 大学を選ぶときは、多くの学校や分野に目を向けてみましょう。大学の先生に連絡を入れて研究室を見学させてもらうのもいいです。その場所の空気が肌に合うか、相性がいいかなどを自分の目で見て判断してほしいと思います。視野を広くすることも大事で、おすすめは雑誌を定期的に読むことです。興味がないテーマも目に入るので、思いがけないアイデアに出会えるかもしれません。
 ソフトウェア工学は社会との距離が近い学問なので、自分のアイデアで社会に貢献したいと思っているなら、ぜひ選択肢に入れてください。

メッセージ

 高校時代はゲームが好きでした。情報科学を学べばゲーム会社に就職できるかもしれない、と考えて大学に進学したのです。ソフトウェア工学はパソコンさえあればすぐにアイデアの検証や実験を行える点に魅力を感じました。しかし思い通りにシステムを構築できないときがあり、上手にプログラムを書く方法に興味がわきました。また、プログラム解析技術に関する講義もおもしろかったため、研究に取り組み始めました。企業と共同研究をする機会も多く、社会貢献ができることを嬉しく思っています。

メッセージ

システムエンジニア/プログラマ/ITコンサルタント/大学教員/企業研究者

※夢ナビ講義はそれぞれの先生の見解にもとづく講義内容としてご理解ください。

大学アイコン
肥後 芳樹 先生がいらっしゃる
大阪大学に関心を持ったら

 自由な学風と進取の精神が伝統である大阪大学は、学術研究でも生命科学をはじめ各分野で多くの研究者が世界を舞台に活躍、阪大の名を高めています。その理由は、モットーである「地域に生き世界に伸びる」を忠実に実践してきたからです。阪大の特色は、この理念に全てが集約されています。また、大阪大学は、常に発展し続ける大学です。新たな試みに果敢に挑戦し、異質なものを迎え入れ、脱皮を繰り返すみずみずしい息吹がキャンパスに満ち溢れています。

TOPへもどる