1. An apparatus for automatically generating a software program by selecting program modules from among a plurality of prepared program modules and by combining the selected program modules, comprising: means for storing the prepared program modules; means for storing connection relationships among the prepared program modules so that the prepared program modules and the relationships form a net work that functions in a direction from an initial state through an end state thereof; means, operatively connected to said prepared program modules storing means and to said connection relationships storing means, for selecting program modules from among the prepared program modules so that the selected program modules and the relationships thereof determine a single path extending from the initial state through the end state of the network; and means, operatively connected to said program modules selecting means, for generating the software program by receiving the selected program modules from the prepared module storing means and by combining the received program modules along the path of the network.