開発現場の現状と課題
コピペコードを検出するツールは、数多く提供されていますが、開発現場にはあまり普及していません。主な理由として、検出されたコピペコードを削除するために追加の時間と労力が必要であり、プロジェクトのスケジュールやリソースの制約により、リファクタリングに避ける時間とコストが限られていることが挙げられます。さらに、開発したシステムが運用段階に入ると、修正自体が新たなバグを生むリスクを伴うため、コピペコードを放置することがよく見られます。
開発の経緯と製品の特徴
CloneTrackerは「Siderscan」のバージョン4.0 (2023年2月1日販売開始)の後継にあたるツールです。
コピペコードおよび修正漏れの検出技術を受け継ぎつつ、gitと連携により、過去・現在・未来の修正履歴を追跡する機能が追加されました。
これにより、コピペコードの生成時点にで、その妥当性を検討し、適切な対策を判断できるようになりました。さらに、運用段階に入った後でも、仕様変更による修正段階で、コピペコードのペアを適切に把握し、将来のリスクを事前に予測しながら、修正漏れによる障害の発生を未然に防ぐことが可能です。
初回の解析において、指定した時期から現在までの修正履歴を解析し、将来修正漏れの危険性が高いコピペコードのグループを上位にリスト化できます。これにより、問題が無いと考えられるコピペコードと、将来の開発において監視が必要なコピペコードを区別し、定期的な把握と監視を実現します。その結果、ソフトウェアの開発品質を大幅に向上させることができます。さらに、この継続的な追跡を通じて、システムの保守性を向上させることを目指しています。
商品形態は、単体で動作するアプリケーションとして提供されるため、簡単な作業で導入できるようになりました。細かい設定も不要で、インストール後すぐに利用を開始できる様に変更しました。
適用可能なプログラム言語には、C/C++、C#が含まれます。また、今後の機能拡張として、Java、Pyhton、JavaScript、PHP、VB.NET、Rustのソースコード解析が可能になります。これらの新機能は、それぞれの言語に合わせた最適化が完了次第、正式版として提供する予定です。
価格設定は、1プロジェクトにつき月額11,000円(税込)で、プロジェクトに参加する全メンバーが1つのライセンスでご利用可能です。さらに、無償の30日間の試用期間が提供されており、機能に制限は設けられていないため、CloneTrackerの全機能を気軽に評価いただけます。
今後も商品開発を通じて、世界中のソフトウェア開発者にソフトウェア品質を高める強力な手段を提供し、開発品質の向上に貢献することを目指します。
関連情報
CloneTracker商品紹介サイト(https://clonetracker.com/)
※1 コピペコードとは
同じような機能でありながら、「関数」や「クラス」などに集約されずに複製されたコードブロックのことを、実務の現場では「コピペコード」と呼んでいます。専門的には、重複コード(Duplicate code)、コードクローン(Code clone)と呼ばれています。
一般的に、コピペコードは変更や拡張に弱いとされています。例えば、あるコピペコードでバグが発生し、それを修正する場合、直接対象となるコードを修正するだけではなく、コピペコードを漏れなく検索し、それら全てのコピペコードに対して同じ修正が必要か否か判断する必要があります。この際、一部のコピペコードに気づかず、修正せずにリリースしてしまうと、コピペコードの「修正漏れ」となり、このリスクは最終的にバグとして顕在化します。
株式会社Sider について
株式会社Siderは、ソフトウェアアクセラレーションサービスのグローバルリーダーである株式会社フィックスターズから、ソフトウェア開発分野における製品開発企業として、2019年にスピンオフされた会社です。フィックスターズは2002年の創業以来、自動運転、量子コンピューティング、医療機器、金融システム、コンピューターグラフィックスなど、様々な分野におけるグローバル企業・研究機関に強力なソフトウェア高速化ソリューションを提供してきました。これらのクライアントプロジェクトの経験を活かして、株式会社Siderは、ソフトウェア製品の品質向上のためのコピペコードを管理・追跡ができるCloneTrackerを提供しています。