1. A method of developing a graphical user interface for a target software application, wherein the graphical user interface can be used in a plurality of operating environments, the method comprising: assessing one or more functional requirements of the target software application; defining a functional specification using the assessed functional requirements, wherein the functional specification outlines functional characteristics of the graphical user interface; developing source code for the graphical user interface; and developing an abstraction framework that mediates interaction between each of the plurality of operating environments and the source code of the graphical user interface by evaluating functions of the source code of the graphical user interface and providing instruction necessary to perform the functions in each of the plurality of operating environments.