Operating context

An operating context (OC) for an application is the external environment that influences its operation. For a mobile application, the OC is defined by the hardware and software environment in the device, the target user, and other constraints imposed by various other stakeholders, such as a carrier.

This concept differs from the operating system (OS) by the impact of these various other stakeholders.

Example
Here is an example of one device, with one operating system, changing its operating context without changing the OS.

A user with a mobile phone changes SIM cards, removing card A, and inserting card B. The phone will now make any network calls over cell phone carrier B's network, rather than A's.

Any applications running on the phone will run in a new operating context, and will often have to change functionality to adapt to the abilities, and business logic, of the new carrier. The network, spectrum, and wireless protocol all change in this example. These changes must be reflected back to the user, so the user knows what experience to expect, and thus these changes all change the user interface (UI) also.

Hardware agnostic context
Situations exist where one can program in a context, with less concern about what hardware it will actually run on. Examples include Flash and Android.

Unfortunately, it also quite common that code in a hardware free context will see hardware specific bugs. This is common with software written for, that interacts more directly with, personal computer (PC) hardware, or mobile phones.