CRUDマトリクスを用いたソフトウェア設計影響分析手法
2
0
0
全文
(2) 情報処理学会第 73 回全国大会. 3.. CRUD マトリクスの生成と拡張 ここでは,既存のソースコードから CRUD マト リクスを生成する方法,および,生成した CRUD マトリクスを実用的サイズに縮小する方法につ いて述べる。 3.1. CRUD マトリクスの生成 まず,既存ソースコードの静的解析を行い, 関数リスト,変数リスト,および変数参照情報 (どの関数がどの変数を参照または更新するか) を抽出する。抽出したデータを表形式で可視化 すると CRUD マトリクスになる。関数による変数 の参照を R,更新を U として記す。また,リスト など可変個の要素をとるデータ構造では,リス トへの要素の追加を,リスト自身の更新(U)およ び追加する要素の作成(C)として記す。 リストからの要素の削除も同様に U,D と記す。 データベース. .c.c .c. ①関数リスト. .c.c .h. 関数A 関数B 関数C. 静的 解析. ②変数リスト. .c. .c makefile. 変数1 変数2 変数3. 変数1 変数2 変数2 変数3 変数1 変数3. 絞込み前. 関数A R R 関数B. W R W W W R. 表形式で 可視化. 関数A U C 関数B. 変 変 変 変 変 数 数 数 数 数 1 2 3 4 5. 変数依存関係 構造体 変数1 変数4. メンバ 変数2. 関数A U. 変数3. 関数B. 変数5. 関数C U. R. 関数D. IF関数. U. 関数D. その他関数 関数B 関数C 関数E. 図 4. R. 変数 抽象化. R U. 関数E. 関数依存関係. 関数A. U U. R R. U R UR UR U. U. U. 関数 抽象化. 関数 抽象化. 関数A U R R R U 関数D. 変 変 数 数 1 4. U. U. URUR 変数 抽象化. U U. CRUD マトリクスの抽象化. 3.3. CRUD マトリクスの絞込み CRUD マトリクスは,分析に不要な関数や変数 を除外することでサイズを縮小できる。あらか じめ影響分析の基点となる関数または変数を指 定し,それらに変数アクセス上関連のある関数 および変数のみを抽出して CRUD マトリクスを生 成する。. 変 変 数 数 3 5. U U ①. R. 関数B R U 関数D U R. 関数D 関数E. R ③. U U. R. 初期指定① 基点関数 関数B. 範囲拡大② 基点関数 関数B. 範囲拡大③ 基点関数 関数B 関数D. 完了 基点関数 関数B 関数D. 基点変数. 基点変数 変数3 変数5. 基点変数 変数3 変数5. 基点変数 関数3 関数5. 図 5. 3.2. CRUD マトリクスの抽象化 CRUD マトリクスは,行や列を統合することで サイズを縮小できる。関数軸方向は,呼び出し 元関数に呼び出される関数の CRUD 情報を統合す る。また,変数軸方向は,構造体にそのメンバ の CRUD 情報を統合する。これらの処理は静的解 析結果を用いれば自動化できる。. 関数B. 絞込み後. 関数C U. 関数C U D R. CRUD マトリクスの生成. 変 変 変 変 変 数 数 数 数 数 1 2 3 4 5 関数A R R. U. RU U. ③. 図 3. R. 関数D. 変 変 変 数 数 数 1 2 3. ①. U. 関数C U 関数E. ②. 絞込み中. 変 変 変 変 変 数 数 数 数 数 1 2 3 4 5. CRUDマトリクス ②. ③変数参照情報 関数A 関数B 関数B 関数B 関数C 関数C. 図 5の例で説明する。予め基点関数に関数Bを 指定したとする。まず,基点関数(関数B)がア クセスする変数(変数3,変数5)を基点変数に 追加する。次に,追加した変数にアクセスする 関数のうち基点関数に含まれないもの(関数D) を追加する。これらを関数と変数が追加されな くなるまで繰り返す。得られた基点関数と基点 変数に絞って CRUD マトリクスを生成すれば,予 め指定した関数や変数に関連する範囲に限定し た CRUD マトリクスを生成できる。. CRUD マトリクスの絞込み. 4.. 評価 本手法を 100 万行規模のソフトウェア開発の 影響分析に適用し,工数削減効果を評価した。 従来も CRUD マトリクスによる影響分析を実施し ていたが,手作業中心のため,機能あたり1ヶ 月の準備工数を要していた。本手法を適用し作 業の一部を自動化することで,影響分析の準備 工数を 3 時間(従来比 1/50)まで削減した。 5.. 結論 本研究では CRUD マトリクスによるソフトウェ アの設計影響分析手法を開発した。ソースコー ドから CRUD マトリクスを生成することで影響分 析を効率化した。また,CRUD マトリクスの抽象 化や絞込みにより,CRUD マトリクスを実用的な サイズに纏められるようにした。一方,情報源 にソースコードを用いたため,CRUD マトリクス 上の語句が実装レベルの表現になり分かりにく くなった。より平易な表現への置き換え方法に ついては今後検討する。 参考文献 [1] H.Kilov, oriented. 1-250. "From semantic to data modeling",. International Conference on Integration, 1990. 385 - 393.. object-. First System. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..
(3)
関連したドキュメント
前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (
テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。
本装置は OS のブート方法として、Secure Boot をサポートしています。 Secure Boot とは、UEFI Boot
これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,
Bemmann, Die Umstimmung des Tatentschlossenen zu einer schwereren oder leichteren Begehungsweise, Festschrift für Gallas(((((),
本手順書は複数拠点をアグレッシブモードの IPsec-VPN を用いて FortiGate を VPN
備考 1.「処方」欄には、薬名、分量、用法及び用量を記載すること。
2 解析手法 2.1 解析手法の概要 本研究で用いる個別要素法は計算負担が大きく,山