コードを書くとき、プログラマの頭の中には何らかの(実装言語にある程度依存した)実行モデルがあると思います。
「ソフトウェアの振る舞いの可視化」をする、とは、この実行モデルを可視化することを、ここでは想定しています。
具体例としては、次のようなものがあり得ると考えています。
* ソースコードのステップ毎に、関連するオブジェクトの変更・生成・破棄が可視化される
* ソースコードのステップ毎に、プログラムのフロー中のどこが実行されているかが可視化される
* ソースコードのステップ毎に、コールスタックの変化(return addressが積まれた、引数が積まれたなど)が可視化される。
プロジェクトチームやクライエントとの相互理解のための手法というこであれば、
UMLというのがあります。オブジェクト指向言語に特化したツールのようですが。
http://www.keyman.or.jp/search/kaihatu2/30000761_1.html?vos=nkey...
あるいはDFDという可視化手段も知られています。こちらはデータのIOに特化しています。
アルゴリズム・アニメーションはご存知ですか?
Javaによるソートアルゴリズムの可視化
http://www.fc.u-tokai.ac.jp/~oki/98/argo/
⇒ 4-2. 棒グラフによる可視化
JAWAA:Java アプレットでアルゴリズム・アニメーションを作るツール
http://www.cs.duke.edu/csed/jawaa2/
JAWAA EXAMPLES
http://www.cs.duke.edu/csed/jawaa2/examples.html
Depth First Search (有向グラフの縦型探索)
http://www.cs.duke.edu/csed/jawaa2/examples/DFS.html
ビジュアライゼーション
http://www.vogue.is.uec.ac.jp/~koike/papers/bit/bit.html
⇒ 2.3.3 アルゴリズムアニメーション
"アルゴリズム・アニメーション" で検索.
http://www.google.co.jp/search?q=%22%E3%82%A2%E3%83%AB%E3%82%B4%...
質問時は失念していましたが、ソートを動的にビジュアライズするものは何度か見たことがあります。
が、「アルゴリズムアニメーション」というジャンルがあるのは知りませんでした。
わたしは、質問で例にあげたような抽象度(実装言語にある程度依存)での可視化を想定していたの
ですが、これもまた、少し高い抽象度でプログラマのあたまの中にできるモデルの、動的な可視化
といえますね。
ありがとうございます。
回答ありがとうございます。
が残念ながらUML/DFDともに知っております。
UMLは主に静的な構造の記述手段です。アクティビティ図もありますが、
振る舞いの静的な構造の記述になります(その意味ではフローチャートと差がありません)。
DFDには詳しくありませんが、これも振る舞いの静的な記述だと理解しています。
わたしの説明が足りなかったかもしれませんが、動的に変化が見えるような可視化手段が、
知りたいことです。
例として書いている「ソースコードのステップ毎に」のようなものをイメージしています。