検索
連載

組み込みソフトウェア開発者に贈る「静的解析・動的解析」の必要性いま求められるソフトウェア静的解析・動的解析 第1回(3/3 ページ)

組み込みソフトウェア開発における「静的解析」「動的解析」を、“なんとなく”行っていないでしょうか。開発効率の向上や品質改善に欠かせないこれらを活用するため、まずはその必要性について解説します。

Share
Tweet
LINE
Hatena
前のページへ |       

動的解析とは何か

 動的解析とは、動作するソフトウェアを対象として、動作速度やメモリの使用状況、並列処理の実行状況を解析するための技術です。

 通常は動的解析ツール上で対象となるソフトウェアやテストケースとなるプログラムを動作させることで、解析を行います。そうした解析を“ソフトウェアを動作させる”ことで行うので「動的」と呼ばれます。動的解析ツールというと仰々しい感じがしますが、デバッガも動的解析ツールの1つといえば親近感を感じてもらえるかと思います。

 動的解析としては前述したデバッガの利用が一般的ですが、最近は動作状況の可視化技術が進んだり、デッドロックやメモリ破壊を検出できたり、実行時間をより精密に計測できたりと、高度な解析ができるようになってきているので、専用の動的解析ツールを使うことで、テストだけで動作を確認するより、効率的に欠陥を見つけることができます。

 最近の動的解析ツールでは、以下の様な解析ができるようになっています。

  • メモリリークやメモリ破壊の検出
    • 対象機能を一度だけ動作させるような単純なテスト実行では見つけにくく、かといってテストケースも作りにくい問題の検出
  • 並列処理に関連した問題の検出
    • スレッドのデッドロックのような、実行タイミングによって発生したり、しなかったりするような問題の検出
  • 実行時のボトルネックの検出
    • 関数の呼び出し回数や実行時間を計測し、ボトルネックとなっている部分を指摘
  • カバレッジの計測
    • 動的解析ツール内でテストケースを実行していくことで、動作確認された部分/されていない部分を検出します

今後の流れ

 この連載では、上記の静的解析、動的解析について、これらをソフトウェア開発の中でどのように活用していくのかについて紹介していきます。

 静的解析や動的解析を導入していくための準備(開発上の実施タイミングの検討、ツール選定)についてや、実際に静的解析や動的解析の結果を品質向上にどのように生かすのかといった、単なるツール紹介ではない内容にしていこうと考えています。今のところ、動的解析、静的解析の順に解説を進め、計9回程度になる予定です。

 数カ月に渡る連載となりますが、お付き合いいただけましたら幸いです。

【 筆者紹介 】
【井上 樹(いのうえ たつき)】

1997年よりオブジェクト指向開発のコンサルティングに従事。2000年の設立時から(株)豆蔵に参加。主幹コンサルタント。主に、ソフトウェアエンジニアリング、オブジェクト指向・モデルベース開発に関するコンサルティング、トレーニング、講座開発を担当。
最近は要求エンジニアリング(要求分析、仕様作成)に関するプロセス改善、SysMLを用いたモデルベースシステムズエンジニアリング(MBSE)の導入、安全規格対応、GSNやD-Caseを使ったアシュアランスケースの作成に関するコンサルティングを行っている。
主な著書:「ダイアグラム別UML徹底活用(第2版)」(翔泳社)、「いちばんやさしいオブジェクト指向の本(第2版)」(技術評論社)

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る