1. A computer-implemented method of debugging a software application comprising a plurality of processes that asynchronously co-operate and whose execution is controlled through interaction with a runtime code, the method comprising: constructing, using the runtime code, a flow diagram to represent the software application as a flow; inserting at least one debug command in at least one location into the flow; executing the software application, the at least one debug command being executed when execution of the application software reaches the at least one location in the flow where the at least one software command is inserted, wherein the at least one debug command is a step over source command, the step over source command inhibiting logic associated with source code to be executed; and returning a result upon execution of the at least one debug command.