1. A method for automatically generating program code, the method comprising the computer-implemented steps of: examining a software design specification that specifies how a software system is to be designed; detecting one or more designated characteristics of the software system from examining the software design specification; and automatically generating program code for implementing at least a portion of the software system based upon the designated characteristics.