動的解析とは動作しているソフトウェアの動作を計測・測定することですが、大切なのは「その結果をどう利用するか」です。勘に頼った作業ではなく「根拠ある」作業のため、動的解析がどう利用できるのか解説します。
連載の第1回では、静的解析および動的解析についての概説を行いました。今回は、そのうち動的解析についてもう少し詳しい解説をしていきます(いま求められるソフトウェア静的解析・動的解析 第1回:組み込みソフトウェア開発者に贈る「静的解析・動的解析」の必要性)。
まず「動的解析とは何か?」を第1回のおさらいも兼ねて振り返ってみましょう。動的解析とは、実行中のソフトウェアの動作を計測し、そのデータを解析することを指します。
ソフトウェアは、クラス図のようなもので表される静的構造だけで成り立つものではありません。コンポーネント間のインタラクションも定義・実装することで初めてソフトウェアとして成り立ちます。
そのため、ソフトウェアの静的構造を解析するための静的解析ツールだけでは、対象となるソフトウェアを十分に解析することはできません。適切な入力により実際にソフトウェアを動作させ内部の状態をモニタリングし、加えて、モジュール間のインタラクションおよびメモリ等のリソースの使用状況を明らかにすることで、設計通り動作しているかどうか確認する必要が出てきます。これを動的解析ツールといいます。
会社員の皆さんならば毎年受ける「健康診断」に話を例えてみましょう。健康診断では、人体のさまざまな状態を各種医療機器を使って、診断・解析します。そのとき、人体の静的構造と動的構造では違うツールを使って測定します。
レントゲン写真は人体の骨組みを観測して記録するもので、心電図は心臓の活動を観測し、記録するものです。骨組みは「静的構造」、心臓の活動は「動的活動」にあたります。構造だけではなくインタラクションも含めた動的状況を確認してこその健康診断であることが感覚的にも理解頂けると思います。ソフトウェアもまた同じで、静的動的いずれも確認を行うべきなのです。
Copyright © ITmedia, Inc. All Rights Reserved.