1. A method for developing a message-passing application program having a first program module with a plurality of asynchronous functions that communicate with operations of a second program module, the method comprising: defining a behavioral type signature for one of the plurality of asynchronous functions, the behavioral type signature specifying message-passing properties for the one of the plurality of asynchronous functions, and the behavioral type signature dictating timing of input and output actions by the one of the plurality of asynchronous functions, and wherein the defining a behavioral type signature comprises determining whether a condition is to be placed in the behavioral type signature; analyzing the one of the plurality of asynchronous functions against the behavioral type signature to render an evaluation on whether message-passing actions of the one of the plurality of asynchronous functions during execution of the message-passing application program will conform to the message-passing properties specified by the behavioral type signature, wherein the analyzing comprises: extracting an implementation model of the one of the plurality of asynchronous functions, wherein the implementation model reflects the message-passing actions of the one of the plurality of asynchronous functions during compilation of the message-passing application program; and checking the implementation model against the behavioral type signature by comparing actions of the implementation model to actions specified in the behavioral type signature to determine whether message-passing related errors are contained in executable code of the one of the plurality of asynchronous functions, wherein the checking comprises: receiving the behavioral type signature specifying the message-passing properties for the one of the plurality of asynchronous functions, receiving the extracted implementation model, and assuming the behavioral type signature does not have parallel composition; generating a report indicating whether any message-passing related errors exist, wherein the report includes the evaluation for the one of the plurality of asynchronous functions; and storing the evaluation in memory.