« ソフトウェアには”遊び”がない | トップページ | 状態って、どうやって抽出します? »

2011年6月21日 (火)

コード解析にDFDを使う?

最近すっかり、ブログすっかりご無沙汰しておりました。なんと、6月入って初ネタとは... いかんっすね。coldsweats01

さて、今日のお話はリバースモデリングネタです。
このブログでは、リバースのお話するのは初めてですが、実は前から、コードを読んでアーキテクチャ解析をするところに非常に興味を持っています。(...というか、ぶっちゃけお仕事も)


2011年6月17日(金)に、派生開発カンファレンス2011というイベントがありました。この講演プログラムの2番目に、
 「完全無知権プロジェクトにおける、変更要求仕様書の作成手法」
といった発表があったのです。
ここで言う”無知見”とは、派生開発元のプログラムについて知見がなく、開発ドキュメントもないような場合(例えば、外注で開発したソフトを扱う場合など)を指しています。つまり、派生開発する際のベースは、コードから読み解くしかないような場合です。
この発表では、コードを読み解く際の調査資料として、階層化DFDとAFD(*)、それとシーケンス図を用いるというものでした。

この方法では、コードから、最初に階層化DFDを作ります。
...ん?? ここで疑問が...
コードを読んで、DFDは描けるのか? コード上のオブジェクト間の関連性は、DFDになるのか??

発表資料をよく見ると、コードからデータフローを読み解き、変更要求仕様の階層化記述に使われています。
どうやら、コード上の構造を表すのではなく、コードを理解した結果の”機能”をDFDで表現したもののようです。
なんとなく、納得です。

DFDを使ったリバース方法については、XDDPの生みの親、システムクリエイツの清水さんが編み出したようです。
とっても気になる方法なので、今後も追跡してみたいと思いました。

(*) AFD:アーキテクチャ・フロー・ダイアグラム(?)
  下記の本にて登場するモデル図のようです。私も、このモデル図については確認取れていません。
  リアルタイム・システムの構造化分析 ~リアルタイム・システムの仕様書作成手法~
  Derek J.Haltley (著), Imtiaz A.Pirbhai (著), 立田 種宏 (翻訳)

« ソフトウェアには”遊び”がない | トップページ | 状態って、どうやって抽出します? »

Interface記事」カテゴリの記事

ソフトウェア開発」カテゴリの記事

派生開発」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571478/52005266

この記事へのトラックバック一覧です: コード解析にDFDを使う?:

« ソフトウェアには”遊び”がない | トップページ | 状態って、どうやって抽出します? »