動的プログラム解析とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > 動的プログラム解析の意味・解説 

動的プログラム解析

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/06/09 03:14 UTC 版)

動的プログラム解析(どうてきプログラムかいせき、: dynamic program analysis)とは、ソフトウェア解析手法の一種であり、実際のあるいは仮想のプロセッサでプログラムを実行して解析を行うこと。動的解析を効率よく行うために、標的プログラムに十分な量のテストケースを入力し、興味深い動作を起こす。コードカバレッジ等のソフトウェアテスト技法を用いて、起こりうる動作を記述したソースコードの箇所を十分な量見つけ出すことができる。ただし、実行中の一時的な命令の効果を過小評価してしまうことに気をつける必要がある。

テストが不十分だと、ロケット「アリアン5」が初飛行でランタイムエラーにより機体が崩壊した[1]ように、破局的な失敗をするおそれがある。

静的解析と動的解析

静的解析と動的解析は相互に補完する技術である。例えば、プラットフォームやプログラミング言語を問わず、複数のスレッドが実行環境においてどのような順序で動作するかは一般的に非決定論的であり、静的解析では判断できないことが多く、マルチスレッド処理にまつわるバグは見落とすおそれがある。これを動的解析によって補う必要がある。

静的解析と動的解析を組み合わせることで、バグ検出の精度と速度が高まり、競合状態デッドロックリソースリークなど、実行してみないと表面化しない処理を徹底的に解析することができる[2]。 静的解析、動的解析で発見できることは、モデル検査証明系でより効率的に発見できることもある。これらの機能を動的解析の中に組み込んでいる場合もある。

プログラムを実行せずとも、つまり静的解析によって判断できることが多いほうが、プログラムの品質や安全性を担保しやすくなるが、プログラミング言語によって適用可能な解析手法の度合いが変わることもある。静的型付け言語は動的型付け言語よりも静的解析時に多くの情報を提供できる。Javaのように強く型付けされている言語では、型システムを無視した危険な変換を許さないため、型安全性を静的に保証しやすい[3]。一方C/C++のように弱く型付けされている言語では、型システムを無視した危険な変換によってコンパイル時の型チェックをバイパスすることもできてしまい、プログラマが型安全性を容易に破壊することもできるため、型安全性に関しても静的解析と動的解析を併用する必要がある。JavaScriptに対するTypeScriptのように、静的解析を促進して安全性を強化し、大規模開発にも耐えうるものにするために、動的言語に対して静的型チェック機構を導入した事例も存在する[4]

動的解析ツール

  • Avalanche
  • BoundsChecker: 現在[いつ?]はDevPartnerの一部。
  • ClearSQL PL/SQL.
  • CodeDynamics[5]
  • Daikon (system)
  • Dmalloc
  • DynInst
  • HP Security Suite
  • IBM Rational AppScan
  • Intel Thread Checker
  • Intel Parallel Inspector
  • MemoryScape[6]
  • Parasoft Insure++
  • Parasoft Jtest
  • Purify
  • TotalView[7]
  • Valgrind
  • VB Watch

脚注

関連項目



このページでは「ウィキペディア」から動的プログラム解析を検索した結果を表示しています。
Weblioに収録されているすべての辞書から動的プログラム解析を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書から動的プログラム解析 を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「動的プログラム解析」の関連用語

動的プログラム解析のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



動的プログラム解析のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの動的プログラム解析 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS