1. A method of designing a system, utilizing a computer system comprising a processor and system memory, that includes a computer application hosted on a hosting environment, the method comprising: (a) during development phase of the system via the computer system, modeling a particular hosting environment including (1) configuring hosting environment settings for the particular hosting environment, and (2) identifying one or more device-specific constraints that are imposed by the hosting environment on prospective applications to be hosted on the particular hosting environment; (b) during development phase of the system, modeling a particular application including (1) configuring application settings for the particular application, and (2) identifying constraints imposed by the particular application on a prospective hosting environment of the particular application; and (c) during development phase of the system, validating the design of the system by (1) comparing the hosting environment settings to the constraints imposed by the particular application, and (2) comparing the application settings to the device-specific constraints imposed by the hosting environment.