組み込みソフトウェア開発者に贈る「静的解析・動的解析」の必要性:いま求められるソフトウェア静的解析・動的解析 第1回(3/3 ページ)
組み込みソフトウェア開発における「静的解析」「動的解析」を、“なんとなく”行っていないでしょうか。開発効率の向上や品質改善に欠かせないこれらを活用するため、まずはその必要性について解説します。
動的解析とは何か
動的解析とは、動作するソフトウェアを対象として、動作速度やメモリの使用状況、並列処理の実行状況を解析するための技術です。
通常は動的解析ツール上で対象となるソフトウェアやテストケースとなるプログラムを動作させることで、解析を行います。そうした解析を“ソフトウェアを動作させる”ことで行うので「動的」と呼ばれます。動的解析ツールというと仰々しい感じがしますが、デバッガも動的解析ツールの1つといえば親近感を感じてもらえるかと思います。
動的解析としては前述したデバッガの利用が一般的ですが、最近は動作状況の可視化技術が進んだり、デッドロックやメモリ破壊を検出できたり、実行時間をより精密に計測できたりと、高度な解析ができるようになってきているので、専用の動的解析ツールを使うことで、テストだけで動作を確認するより、効率的に欠陥を見つけることができます。
最近の動的解析ツールでは、以下の様な解析ができるようになっています。
- メモリリークやメモリ破壊の検出
- 対象機能を一度だけ動作させるような単純なテスト実行では見つけにくく、かといってテストケースも作りにくい問題の検出
- 並列処理に関連した問題の検出
- スレッドのデッドロックのような、実行タイミングによって発生したり、しなかったりするような問題の検出
- 実行時のボトルネックの検出
- 関数の呼び出し回数や実行時間を計測し、ボトルネックとなっている部分を指摘
- カバレッジの計測
- 動的解析ツール内でテストケースを実行していくことで、動作確認された部分/されていない部分を検出します
今後の流れ
この連載では、上記の静的解析、動的解析について、これらをソフトウェア開発の中でどのように活用していくのかについて紹介していきます。
静的解析や動的解析を導入していくための準備(開発上の実施タイミングの検討、ツール選定)についてや、実際に静的解析や動的解析の結果を品質向上にどのように生かすのかといった、単なるツール紹介ではない内容にしていこうと考えています。今のところ、動的解析、静的解析の順に解説を進め、計9回程度になる予定です。
数カ月に渡る連載となりますが、お付き合いいただけましたら幸いです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「状態遷移表」を使うと高品質な開発が可能に!
組み込みソフトウェア開発の課題解決に「状態遷移表」を活用しよう。 - 解析ツールを「育成ツール」の視点で、JVCケンウッドの組み込み設計改革
組み込みソフトはチームでの開発が主となっているが、その際に問題となるのが、メンバー間のスキル差だ。「静的解析ツールが開発チームを活性化する」そう紹介するJVCケンウッドの阿部博己氏が語る、組み込み設計改革とは。 - 定義から学ぶ「組み込み機器開発入門」
連載「組み込み機器開発入門」では、これから組み込み機器開発に携わる技術者・エンジニアを目指す方を対象に、組み込み機器開発の入門編として知っておくべき内容を広く紹介します。 - 「組み込みソフトウェア」の重要性をPC向けとの対比で理解する
ソフトウェア開発と一口に言っても、PC向けと組み込み機器向けでは数多くの相違点があります。組み込みソフトウェアが重要な理由と合わせて組み込みソフトウェア開発の要点について解説します。