Patent ID: 7240327

Claim:
A system for generating a plurality of software applications respectively for a plurality of heterogeneous computing devices, each computing device having different associated capabilities, the system to output device-specific versions of a software application each tailored to the capabilities of an associated computing device in response to receiving device-independent modeling information characterizing the software application, the system comprising: a framework that defines common services on the computing devices for each of the plurality of software applications; a plurality of object types, each object type having a functional relationship to the common services provided by the framework; a modeling tool, wherein the modeling tool provides for device-independent customization of software applications, the modeling tool to receive modeling information defining instances of the plurality of object types as input, and the modeling tool to generate as output a device-independent metadata structure, the metadata structure representing the modeling information and describing behavior and functionality of a software application; and a plurality of device-specific code generators associated respectively with each of the plurality of heterogeneous computing devices, wherein each generator: receives as input the device-independent metadata structure; selects at least a portion of the modeling information represented by the metadata structure as a function of the capabilities of the associated computing device; and generates at least one runtime component for the associated computing device as a function of the selected portion of modeling information, said at least one runtime component to extend the common services of the framework to provide the associated computing device with application-specific functionality, the services provided by said at least one runtime component being tailored to the capabilities of the associated computing device; wherein the services provided for in the runtime components for two different devices generated from the same metadata structure are different, and wherein for each heterogeneous computing device, the framework and at least one runtime component tailored to the capabilities of the device collectively comprise the software application.