1. A machine-implemented method of building a speech application, the method comprising: generating a graphical user interface to enable a user to create and edit a speech application; receiving user inputs directed to the graphical user interface, the user inputs specifying a set of dialog flows representing the speech application; and based on the user inputs, automatically generating: executable code representing the speech application and a functional specification document describing the speech application; wherein the functional specification document is written in a natural language and comprises, for each dialog flow in said set of dialog flows, an image file representing said dialog flow; wherein each of the dialog flows includes one or more dialog states; and wherein the user interface comprises: a first display area in which to display a user-specified flow of each of the dialog flows; and a second display area in which to display property sheets, in which the user can specify properties of the dialog states of the dialog flows, said property sheets including input fields, which the user can (a) input data to and (b) edit.