1. A computer-implemented system for programming a unified messaging (UM) application, comprising: a user interface; a programming environment operating on at least one computing device and accessed via the user interface for composing in an eXtensible Markup Language (XML) a UM finite state machine (FSM) comprising menu states defined by a plurality of user prompts and transitions between user prompts, each transition defined by a particular user response to a prompt; a UM software component including an external software component called by the UM FSM; an XML feature utilized by the programming environment to create a valid menu state based upon the UM software component, wherein the XML feature includes a function wrapper that is used by the programming environment to validate the external software component during a compilation phase when the external software component is present and generate a binary UM FSM, and to generate an error when the external software component is absent during the compilation phase; and a verification tool invoked during execution of the binary UM FSM that confirms that a version of the external software component present during a compilation phase is the same as a version of the external software component available at execution.