The Design of Software is a Thing Apart
<i>the information of a program’s design is largely not present in its code</i><p>And that's the problem.  We need ways to make those higher level designs (~architecture) code.