一部のベンダやユーザーはソフトウェア開発とは「要求というものを入れると一定期間後に完成されたソフトウェアが出てくる箱」と考えているフシがある 大昔、ソフトウェアとはあるデータ(例えばローン金額と利率と期間)を入力すると、それに対応する何らかのデータ(例えば毎月の支払額)が出力される、というものであった。1970年代の計算機科学の教科書の例題はこのようなものが多い。これは初期のソフトウェアは数学的な「函数」(いまは「関数」と書くけれど、もともと「函数」、つまり「数の箱」の謂(いい)であった)をメタファとしているからだ。それが証拠にいまでもいくつかのプログラミング言語では、アルゴリズム記述の単位を関数と呼ぶ(最近はメソッドなどというあいまいな、甘ったれた考え方がはびこり、お嘆きの読者諸賢もおられるやもしれぬ)。 いまでも、あるレベルでソフトウェアを見れば、その1つ1つは関数と見なすことができる