1. A method of synchronizing a software model and existing source code by generating updated source code, said source code comprising elements which can be represented in said software model and elements which cannot be represented in said software model, said software model allowing graphical representation of the intercommunication between said representable elements of said source code; said method comprising the steps of: a) comparing representations of each software model element with a corresponding element, if any, in the source code; b) generating new source code for each said software model element if said element differs from its corresponding element in the existing source code because said element has been updated in the software model; and c) incorporating said new source code into said existing source code; and d) storing the combined new source code and the remaining existing source code on a storage medium.