### Made in Japan のテストツールベンダーからのお知らせ♪ ###

ガイオ・テクノロジーは、自社開発しているソフトウェアテストツール群を40年以上に渡りご提供しているツールベンダーです。

組込みシステム領域を中心に幅広い業種でご利用いただいているガイオ製品。
特に昨今は IoTやCASE,MaaSといったキーワードにて、高い安全性とセキュリティが求められている自動車産業界を中心にご活用いただいてます。

現在、自動車分野では機能安全規格であるISO 26262や、ADASや自動運転を見据えたSOTIF、サイバーセキュリティー領域におけるISO/SAE 21434といった各規格の準拠が、業界全体で求められています。

その要求に対して弊社は自動車メーカー様やサプライヤ様の開発における安全やセキュリティー面での諸活動に、ツールとエンジニアリングサービスの両輪で強力に支援していきます。

今回は、複数のプログラミング言語に対応するコンパイラ基盤であるLLVMを適用したコードクローン検査ツールに関する早稲田大学との共同研究成果をご紹介します。

===================================
LLVM 【Dolly】によるクローンコード検査技術の共同研究と試行について
===================================
【現状の課題と対策】
一般的に、コードクローンはソフトウェアの保守を困難にする要因の一つである、といわれています。
コードクローンは、開発者が安易に似たような処理を行うコードを同じプログラムや他のプログラムへ「コピー&ペースト」することにより容易に発生してしまいます。

ではなぜ、コードクローンにより保守性が悪くなってしまうのでしょうか?

例えば、ある一つのプログラム中のコードクローンした箇所で、欠陥が見つかったとします。
開発者はそれと対応する全てのコードクローンを確認して、必要があれば全てのコードクローンに同様の修正を行う必要が生じます。この時、あるプログラムだけコピー&ペーストしたプログラムにて変数名が変わっていたり、処理順序が少しだけ変えられたりしていることがあれば、同じシステムを開発している別の開発者によって知らないうちに再利用されていて、影響範囲を追いきれないといったことも考えられます。

特に大規模システムでは、チーム開発が行われていることから、システムを構成する全てのソースコードに対して、コードクローンを探すことは、きわめて手間がかかる作業だといえるでしょう。

また、一つのシステムから派生開発されるシステムもあるため、全てのコードクローンを人手で洗い出すことは更に難しくなってきます。

このような課題に応えるべく、ガイオテクノロジーでは早稲田大学 基幹理工学部 情報理工学科 高信頼ソフトウェアエンジニアリング,鷲崎研究室と共同研究を行っています。

<<<コードクローンを自動検出する 【doLLy】>>>
早稲田大学との共同研究では、LLVMへの検証分野への応用検討として、世の中で広く使われているコンパイラ基盤のLLVMを適用したコードクローン検出ツールである【doLLy】を作成し評価・検証を行いました。

【doLLy】は、LLVMによってコンパイルされた中間言語となるIRコードを対象にしてコードクローンを検出することにより、ソースコード記述の類似性だけではなく、処理の類似性をも検出可能としたツールです。

試行による評価結果では、代表的な他のコードクローン検出ツールと比べた場合に、より良い結果(F値※が37%向上)が得られることを確認できました。
(※F値:適合率と再現率の総合的な評価値)

先の記述では同類不具合を例示しましたが、コードクローン検出の用途としては他にも、同類処理の共通化によるソース/コードサイズの圧縮や、同類処理のテスト資産での再利用などが考えられます。

ガイオテクノロジーでは、今回効果を確認することができたコードクローン検出技術を基盤に、品質課題や効率化を目的としたツール類を製品化するための、調査研究や実証検証などによる検討を更に進めて参ります。

コードクローン問題でお悩みのお客様は、是非ともガイオテクノロジーまでお声がけください。