First, as a software product is found to be useful, people try it in new cases at the edge of or beyond the original domain. The pressures for extended function come chiefly for users who like the basic function and invent new uses for it. Second, successful software survives beyond the normal life of the machine vehicle for which it is first written. In short, the software product is embedded in a cultural matrix of applications, users, laws, and machine vehicles. These all charge continually, and their changes inexorably force change upon the software product.
Software is invisible and unvisualizable.
Geometric abstractions are powerful tools. The floor plan of a building helps both architect and client evaluate spaces, traffic flows, views. Contradictions and omissions become obvious. Scale drawings of mechanical parts and stick-figure models of molecules, although abstractions, serve the same purpose. A geometric reality is captured in a geometric abstraction.