Electronics Information Service

組込みシステム技術者向け
オンライン・マガジン

MENU

SOLUTION

Siderがバグの原因となる重複コードを検知・評価する独自機能を大幅拡大

2021.2.4  11:47 am

業務システム開発で採用の多いJavaなど主要6言語に追加対応

ソフトウェア開発支援ソフトウェアツールの開発・提供を行う株式会社Sider(東京都品川区)は、自動ソースコードレビューサービス「Sider」の次世代機能として搭載を予定している重複コードの検知・評価機能(特許申請中技術) で、対応するプログラミング言語を大幅に拡大しました。バグの原因となりやすい重複コードを自動で検知・評価することで、ソフトウェアの品質を高め修正漏れを少なくします。
   
Siderに実装を予定している重複コードの検知・評価機能は、先行公開した体験サイト「Sider Labs」 (https://siderlabs.com/labs) でお試しいただけます。
サイト公開当初から使えたプログラミング言語のC / C++ / CUDAに加えて、新たにJavaScript / TypeScript / Swift / PHP / Java / Rubyの各言語で重複コードの検知・評価ができるようになりました。業務システムでの採用が多いJavaや操作画面の開発で広く使われているJavaScriptなどに対応したことで、多くのプロジェクトで使いやすくなりました。対応するプログラミング言語は今後も追加していく予定です。

Siderがバグの原因となる重複コードを検知・評価する独自機能を大幅拡大
Siderの次世代機能である重複コード検知・評価の体験サイト「Sider Labs」

     
Sider Labsでは、すべてのコード検知・評価処理がユーザーのコンピュータ側(ブラウザ内部)で実行されます。ユーザーは、外部のサーバーなどへの接続や特殊なソフトウェアのインストールをせずにサービスをご利用できます。また、貴重なソースコードを社外に送ることなく、気軽に何度でも無償で機能を試していただくことができます。
   
重複コードとソフトウェアバグ
重複コードとは、プロジェクトにおけるソースコード内に存在する同一部分・または類似部分のコードブロックを指します。類似した機能でありながら「関数」や「クラス」などとしてコードが集約されず、プロジェクトの様々な部分によく似たコードが複製・改変されることで増えていきます。重複コードはソフトウェアの保守性に悪影響を及ぼし得るとして、その分布や比率は品質管理において最も重要な指標の一つといえます。
   
プロジェクトの開発初期段階で重複コードが大きな問題になることは稀ですが、機能の追加や改変時には一部に修正を施し忘れるなどして、バグの原因になりえます。開発スケジュールや技術者不足などの都合から重複コードは発生しがちですが、それが仕様変更や保守工程でバグの原因となり、さらなる開発スケジュールの逼迫や技術者不足を招いてしまうこともあります。大規模なプロジェクトでは担当者の習熟度のばらつきや人員の入れ替えもあり、発生してしまった重複コードの把握や管理が難しくなります。手間をかけずに重複コードを管理しつつ、余裕がある時にはそれを減らす手がかりが得られるようなツールが求められています。
   
Siderの次世代機能では、複製したコードの変数名や関数名などに多少の変更が加えられていても、ロジックが同じであれば重複コードとして検出できます。検知した重複コードは独自のアルゴリズムで評価し、ソフトウェア品質を毀損するリスクが高いと考えられる「重要度」の高い順でユーザーに提示します。これにより、特に大規模プロジェクトで困難だった重複コードの分析・管理を可能にします。

Siderがバグの原因となる重複コードを検知・評価する独自機能を大幅拡大
ブラウザ内の処理だけで重複コードを検知。今後のアップデートで修正漏れも指摘できるようにソースコードは、Open Source Project であるElasticsearch (https://github.com/elastic/elasticsearch.git) を分析した結果の一部

   
この機能を提供することで、世界中のソフトウェア開発者にソフトウェア品質を高める強力な手段を提供し、開発生産性の向上に寄与することを目指します。