ユーザー事例:インターステラテクノロジズ株式会社
小型衛星打上げロケットのソフトウェアに静的解析ツールCodeSonarを使って開発を進める

インターステラテクノロジズ株式会社(以下、「インターステラテクノロジズ」)は、小型衛星打上げ用の小型液体燃料ロケットを開発している企業です。同社は2023年現在開発中の小型衛星打上げロケット「ZERO 」に搭載予定の一部のソフトウェアの検証に、ユビキタスAIが提供している米国CodeSecure社の「CodeSonar」を使用しています。

インターステラテクノロジズのWEBサイト

Description_of_Photo

Description_of_Photo

Description_of_Photo

画像提供:インターステラテクノロジズ株式会社

導入理由

製品開発において、インターステラテクノロジズでは、コスト(製造コストおよび開発コスト)と信頼性のバランスを重視しています。「目に見えない」「無限に試験ができる」「バグゼロは不可能」といわれるソフトウェアについては、その性質を把握しながら開発、試験、検証、運用が行われていますが、コストを低く保ちながら高い信頼性を確保するには静的解析ツールの導入が必須でした。いくつかの静的解析ツールが検討されましたが、インターステラテクノロジズで使われている開発環境と適合することや指摘の粒度が細かいことから、ソフトウェアの品質の確認および向上がしやすく、コスト的にも適切な水準だったCodeSonarが選ばれました。また、ロケットのアビオニクスは車載ECUのアーキテクチャと類似するところがあり、CodeSonarは車載ECUソフトウェア開発で多くの実績があるということも選定理由の一つでした。

導入のメリット

インターステラテクノロジズでは、CodeSonarを使用して特によかった点として以下を挙げています。

  • 開発者が見つけられなかった不具合を見つけることができる
    ソフトウェアには多大な入力や状態の組み合わせがあり、網羅的にテストを実施することを目指すが、不具合を見逃す可能性があります。信頼性を確保するためには、人手によるコードレビューや人手によるテスト設計のみでは不十分であると考えています。CodeSonarは、深いパス解析により複雑なソフトウェアでも可能な限り不具合を検出するので、コードレビューやテストケース不足で見逃してしまうような不具合を見つけるケースもあります。また、静的解析ツールも完璧なものではなく、不具合を見逃すケースもありますし、仕様の不具合を検出することはできません。そのため、静的解析ツール、人手によるテスト、その他のさまざまな手法を組み合わせてソフトウェアの信頼性を確保します。
  • 品質保証のプロセスを強化できる
    CodeSonarは、開発者が気づかなかった不具合を検出できるケースがあります。CodeSonarで解析して、指摘された項目を精査することで、開発者自身では気づいていなかったような入力の組み合わせやパスを把握でき、品質への取り組みを強化できます。バグゼロは不可能という認識はありますが、CodeSonarのようなツールを使うことで、コードレビューの他にできることはすべてやるという意識にも繋がります。
  • 各種メトリックの把握
    CodeSonarで計測、表示可能なサイクロマティック複雑度などのメトリックを把握して、品質が低下しないように注意しています。システムとしての複雑度などのメトリックを評価し、目標と比較し、必要に応じて設計にフィードバックすることにより、ソフトウェアの品質を作り込むことを意識しています。
  • タスクごとの結果を表示したり、各変数をハイライトしたり、関数呼び出しツリーを表示したりできるCodeSonarのビジュアライゼーション機能で、精査やレビュー効率が向上しました。

CodeSonarでの複数のスレッドのデータ競合表示

CodeSonarでの解析結果表示

今後の展開

現在は一部のコンポーネントでのみCodeSonarを適用されていますが、今後はより多くのコンポーネントを対象にし、社内ビルドのワークフローとしてCodeSonarの使用を拡大することを検討されています。

採用製品:
CodeSonar