B. BoehmのSoftware Engineering Economicsにでてくる見積もりの不確実性の図

http://csse.usc.edu/csse/TECHRPTS/1984/usccse84-500/usccse84-500.pdfより引用
や、スティーブマコネルの不確実性コーン

http://itpro.nikkeibp.co.jp/article/COLUMN/20131001/508039/ より引用
は、要求のような上流段階では見積もりは不正確で、下流工程になるほど正確になる
ということを示しているといわれる。
これは、JQueryやREST、CI以前なら、成立すると思われる。
なぜなら、ソフトウェアの各工程
要求ー設計ー実装ーテスト
という各工程は前工程を前提に成立している。
したがって、たとえば要求に変更が起こった場合、
要求→設計→実装→テスト
に変更が起こり、この工数が発生するのに対し、
実装に変更が起こった場合
実装→(単体)テスト
にしか変更が起こらないから、この工数分しか工数は発生しない。
なので、工程が進んだほうが、変更工数が少なく、不確実性は低い。
しかし、現在のJQueryやREST、CI時代に同じことは言えるのだろうか?
CIにより、テストは
変更点テスト+回帰テスト
となった。ここで、回帰テストは、どれだけの変更があっても、全部同じである。
JQueryやRESTは、アスペクト指向を事実上実現可能にした。
アスペクト指向は、横断的関心事、つまり非機能要件のような各機能(=業務)に直性関係ない
GUIや性能、移植性などを、機能(=業務)横断的に修正することを可能にする。
これは、JQueryのセレクタ(クラスをセレクタで選択)したり、RESTでWebサーバーを
使う場合、そのサーバーのフィルターに、非機能要件となるプログラムを入れることで、
実現可能となる。
ということは、非機能要件部分は、機能に関係なく、一斉に修正・追加でき、再利用可能になる。
そのため、要求変更が出たら、その要求変更部分をJQueryのセレクタで切り出して、
切り出した部分を、非機能要件を実現するプログラムを埋め込めば(再利用すれば)よい
そうなってくると、変更になっても、あんまり手間暇かからないから、
何倍にもなることは、ないんじゃないかなあ?
*ベームの見積もりの不確実性の図とマコネルの不確実性コーンは同じ図に見えるけど、
アジャイルでは、この図は、マコネルの不確実性コーンといわれ、
大学の先生は、ベームの図ということになっている。

http://csse.usc.edu/csse/TECHRPTS/1984/usccse84-500/usccse84-500.pdfより引用
や、スティーブマコネルの不確実性コーン

http://itpro.nikkeibp.co.jp/article/COLUMN/20131001/508039/ より引用
は、要求のような上流段階では見積もりは不正確で、下流工程になるほど正確になる
ということを示しているといわれる。
これは、JQueryやREST、CI以前なら、成立すると思われる。
なぜなら、ソフトウェアの各工程
要求ー設計ー実装ーテスト
という各工程は前工程を前提に成立している。
したがって、たとえば要求に変更が起こった場合、
要求→設計→実装→テスト
に変更が起こり、この工数が発生するのに対し、
実装に変更が起こった場合
実装→(単体)テスト
にしか変更が起こらないから、この工数分しか工数は発生しない。
なので、工程が進んだほうが、変更工数が少なく、不確実性は低い。
しかし、現在のJQueryやREST、CI時代に同じことは言えるのだろうか?
CIにより、テストは
変更点テスト+回帰テスト
となった。ここで、回帰テストは、どれだけの変更があっても、全部同じである。
JQueryやRESTは、アスペクト指向を事実上実現可能にした。
アスペクト指向は、横断的関心事、つまり非機能要件のような各機能(=業務)に直性関係ない
GUIや性能、移植性などを、機能(=業務)横断的に修正することを可能にする。
これは、JQueryのセレクタ(クラスをセレクタで選択)したり、RESTでWebサーバーを
使う場合、そのサーバーのフィルターに、非機能要件となるプログラムを入れることで、
実現可能となる。
ということは、非機能要件部分は、機能に関係なく、一斉に修正・追加でき、再利用可能になる。
そのため、要求変更が出たら、その要求変更部分をJQueryのセレクタで切り出して、
切り出した部分を、非機能要件を実現するプログラムを埋め込めば(再利用すれば)よい
そうなってくると、変更になっても、あんまり手間暇かからないから、
何倍にもなることは、ないんじゃないかなあ?
*ベームの見積もりの不確実性の図とマコネルの不確実性コーンは同じ図に見えるけど、
アジャイルでは、この図は、マコネルの不確実性コーンといわれ、
大学の先生は、ベームの図ということになっている。