1. A software architecture for use in a mobile device having a processor and a memory device, comprising: one or more application programs stored in the memory device and executed by the processor; and a plurality of controller modules, each controller module being configured to interface the application programs with one of a plurality of data objects stored in the memory device in the form of a data model, wherein each controller module utilizes one or more generic interfaces to communicate with the application programs.