- 東京大学情報理工学系研究科 千葉滋研究室との3年に渡る共同研究の成果
- 東証プライム上場企業 株式会社フィックスターズ 子会社が開発
Siderscan とは?
ソフトウェアの品質を向上させるためのAIコードレビューソフトです。
開発レポジトリを常時監視し、
- 重複コードが新たに⽣み出された時
- 重複コード間の修正の不整合が検知された時
にメール、Slack、MS Teams 等で通知します。

Siderscan 導入メリット
Siderscan は以下の3つの効果で、ソフトウェア品質を向上します。

重複コード削減効果
対象となるプロジェクトで日々生成されるソースコードを365日監視。新たな重複コードが生まれた際に、検出して通知します。バグの温床となる重複コードに早めに対処することで、コード品質の悪化を防ぎます。

重複コードに起因するバグ削減効果
重複コードを検出するだけでなく、その重複コードが前回の解析からどのように変更されたか分析します。これにより「一方は修正したが、他方は修正していない」という重複コード特有の修正漏れバグを検出して通知します。

重複コード抑止効果
ジュニアレベルのエンジニアの中には、なぜ重複コードが問題なのか、理解していない方も少なくありません。Siderscan を導入することで、チーム内での重複コードに関する意識が上がり、教育的効果が期待できます。
このようなソフトウェア開発チームにお薦めです
Siderscan は、ソースコード内の記述の類似性に着目した静的解析ツールです。そのため、重複コードやコードクローンと呼ばれる類似のコードが多数含まれる、下記のようなソフトウェア開発チームで特に効果を発揮します。
開発者の数が10人以上
重複コード(コードクローン) を修正する場合、対象コードだけではなく、他の重複コードも漏れなく検索し、改修が必要かどうかの判断をしなければなりません。
開発者が多数参加するようなプロジェクトでは、重複コードを作った人(コピペをした人)と、その重複コードを修正する人やコードレビュー担当者が異なる場合も多く、修正漏れが発生するリスクが高まります。
- 金融システム開発プロジェクト
- 業務システム統合プロジェクト
- 大規模スクラム(SAFe, Scrum of Scrums, etc.) プロジェクト

開発年月が1年以上
DRY(Don't repeat yourself) 原則は、「同じ意味や機能を持つ情報を複数の場所に重複して置くことをなるべく避けるべき」とする、ソフトウェア品質を保つ上で重要な原則です。しかし、実際には開発の過程でDRY原則が守られない場面もあり、重複コードは徐々に増えていく傾向にあります。
ある程度の開発年月が経つと、重複コードの管理は人間の手には負えなくなってきます。
- リリース済みの製品開発プロジェクト
- 長期間運用している社内システム開発プロジェクト
- 新技術に対応するためのマイグレーションプロジェクト

メンバー間にスキル差がある
メンバーのスキルの差も、ソフトウェア品質に重大な影響を与えます。新人の採用、外注、オフショア、ニアショアなど、大規模プロジェクトでは様々な素性の開発者が参画し、スキルレベルに差が生じます。
このようなプロジェクトでは、安易な「コピペ」が頻発しがちです。コピペに起因する問題のデバッグは非常に困難であり、プロジェクトの潜在的なリスクとなり得ます。
- アウトソーシング開発プロジェクト
- オフショア開発プロジェクト
- 複数企業による協業プロジェクト

対応言語


新規対応言語: VB.net に対応しました!
※上記言語の他に、FPGA記述言語(拡張子: vhd, vhdl, v, sv)、Objective-C (拡張子: h, m)も分析します。ただし、C/C++言語として分析するため、言語特有の文法などは考慮できません。
動作環境
- Docker Image (x86系)が動作する環境であること
- Docker に割り当てられているメモリ領域が3GB以上であること
※Linux用Docker, Docker for Mac, は動作検証しています。Windows は動作検証外ですが、Windows Subsystem for Linux (WSL2) 上であれば動作が確認できています。
このアプリケーションは、ユーザーのサーバー内で実行され、ソースコードを外部に送信することはありません。アプリケーションの利用状況の確認のためだけに、Sider 社が管理するサーバーと通信します。
さらに詳しく知りたい方へ
新着技術記事
- Siderscan が見つけた著名OSSの問題コード: Cisco社 libacv概要: ACVP プロトコルのクライアントライブラリ 言語: C https://github.com/cis […]
- Siderscan が見つけた著名OSSの問題コード:ARM社 armnn概要: ARM CPUで機械学習を行う際のコアコンポーネント 言語: C++ https://github.c […]
- ソフトウェアメトリクス2:ソースコードの規模いまさら Lines-of-code? ソースコードの規模を測定する際に、最もよく使われるメトリ […]