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

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

バグの修正を自動化する

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

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

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

裁判にも役立つ検出技術

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

※夢ナビ講義は各講師の見解にもとづく講義内容としてご理解ください。

※夢ナビ講義の内容に関するお問い合わせには対応しておりません。

先生情報 / 大学情報

大阪大学 大学院情報科学研究科 コンピュータサイエンス専攻 教授 肥後 芳樹 先生

大阪大学 大学院情報科学研究科 コンピュータサイエンス専攻 教授 肥後 芳樹 先生

興味が湧いてきたら、この学問がオススメ!

情報科学

先生が目指すSDGs

メッセージ

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

先生への質問

  • 先生の学問へのきっかけは?
  • 先輩たちはどんな仕事に携わっているの?

大阪大学に関心を持ったあなたは

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