39
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

影響範囲調査の調査をしてみました

Posted at

概要

プログラマーが影響範囲調査を行うことは多いですが、具体的にどういう作業をしているかいまいち自分でも分からなかったので考えてみました。

サーベイ

サーベイ1

変更の影響範囲を特定するための「標準調査プロセス」の提案
スライド: https://www.juse.or.jp/sqip/workshop/report/attachs/2014/20150227-6-1.pdf
論文: https://www.juse.or.jp/sqip/workshop/report/attachs/2014/sqip6-a.pdf

まとめると、以下を行うとうまく調査できるらしいです。

  • 変更要求をちゃんと理解する。
  • 調査目的を明確化する。
  • ソースコード理解時に、関数を幅優先探索で探索する。
  • ソースコード理解時に、構造図やPADを使って理解する。
  • 資料は、構造図やPADで残す。

構造図は資料を見ると、関数呼び出しのツリー構造のようです。私も調査するときは無意識にこれを作っていました。PADは、こちらによるとフローチャート的なものらしいです。

サーベイ2

システム変更を安全かつスピーディに進めるための極意とは?~CRUD表で今すぐできるコスト削減

CRUD表。横軸がテーブルで、縦軸がAPIエンドポイントで、自動生成できたら良いですね。

影響範囲調査プロセス

サーベイを参考に、影響範囲調査プロセスを考えてみました。

  1. 調査目的の明確化
  • ソースコード理解
  • 資料化

サーベイにあった変更要求の理解は、影響範囲調査プロセスの外にある気がするので除外しました。変更不可能なプログラムでも挙動を知るためだけに調査する可能性があるからです。

調査目的の明確化は文字通りです。例えば、「XXXの機能追加を検討しているが、この機能追加の工数を見積もりたいので、XXXの影響範囲を調べる」「YYYというバグ修正を行ったが、デグレ検証項目を決める必要があるので、YYYの影響範囲を調べる」などです。

ソースコード理解は文字通りです。

資料化は、再利用したり、齟齬を減らしたり、調査の妥当性を客観的に検証するためのものです。

方法論

調査目的の明確化

フォーマットを作って埋めてもらえば解決すると思います。

ソースコード理解

サーベイにあるように、幅優先探索で関数呼び出しツリー構造を作るのが良いと思います。こちらもフォーマットで解決です。

資料化

学術論文の書き方に習って、目的、方法、結果、考察、結論を書いてもらえばよいと思います。

フォーマット

  • 目的
  • 方法 (同じ方法で調査できるように書く)
  • 結果
  • 関数呼び出しツリー
  • 考察
  • 結論
39
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
39
38

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?