1. A computer implemented method for dynamically upgrading and versioning an application program in a terminal, the application program including a plurality of uniquely addressable logical modules and each unique addressable logical modules includes associated executable methods, the plurality of uniquely addressable logical modules are linked by a set of execution pathways, the method comprising the steps of: obtaining a migration instruction set for identifying and downloading the unique addressable logical modules of the application program to be replaced; executing the migration set to download the plurality of uniquely addressable logical modules; executing the migration instruction set to modify a first execution pathway of the set of execution pathways to create a modified application, wherein the first execution pathway represents a redirectable shared method call of a first uniquely addressable logical module of the plurality of uniquely addressable logical modules and links a pair of the plurality of uniquely addressable logical modules; constructing an addressing map, by an inter-module addressing scheme, wherein the addressing map maps a direct relationship between the redirected shared method call and a corresponding private address of the first uniquely addressable logical module, wherein the addressing map is configured to modify the first uniquely addressable logical module without modifying an adjacent uniquely addressable logical module and wherein the private address is an internal reference of the first uniquely addressable logical module; and storing the addressing map for coordinating hosting of the modified application in the terminal.