1. A method of enabling execution of a software program, said method comprising: obtaining particular identification information that is indicative of a given version of the software program, the given version of the software program being formed of a first plurality of modules so that each one of the first plurality of modules is also associated with the particular identification information, each one of the first plurality of modules being either (a) a software module, (b) a data module, or (c) a software and data module; obtaining a particular processing identifier that is indicative of the processing capabilities of at least one processor on which the software program is to be executed, the processing capabilities of the at least one processor being compatible with a second plurality of modules so that each one of the second plurality of modules is also associated with the particular processing identifier, each one of the second plurality of modules being either (a) a software module, (b) a data module, or (c) a software and data module; determining, using the particular identification information and the particular processing identifier, whether the processing capabilities of the at least one processor are incompatible with the processing capabilities needed for proper execution of the given version of the software program; and in response to determining that the processing capabilities of the at least one processor are incompatible with proper execution of the given version of the software program, partially modifying the given version of the software program by replacing some of the modules of the first plurality of modules associated with the particular identification information with some of the modules of the second plurality of modules associated with the particular processing identifier to obtain a more suitable version of the software program, including: providing a three-dimensional table having (i) a plurality of identification information arranged along a corresponding plurality of positions on a first axis of the table, the plurality of identification information being indicative of a corresponding plurality of software program versions each of which is formed of a corresponding portion of a plurality of available modules, the corresponding portion being also associated with the corresponding identification information, (ii) a plurality of processing identifiers individually arranged along a corresponding plurality of positions on a second axis of the table, the plurality of processing identifiers being indicative a corresponding plurality of processing capabilities each of which is compatible with a corresponding portion of the plurality of available modules, the corresponding portion being also associated with the corresponding processing identifier, (iii) the portion of the plurality of modules that is associated with a respective one of the plurality of identification information being arranged along one or more positions on a third axis of the table starting from the position on the first axis that corresponds to the respective software version, and (iv) the portion of the plurality of modules that is associated with a respective one of the plurality of processing capabilities being arranged along one or more positions on the third axis of the table starting from the position on the second axis that corresponds to the respective processing capabilities, wherein a location on the table having a coordinate along the second axis corresponding to a respective processing identifier and having a coordinate along the third axis corresponding to a particular module indicates whether that module is compatible with the processing capabilities indicated by that processing identifier; accessing the table, using the particular identification information indicative of the particular version of the software program and the particular processing identifier, to locate a further version of the software program having modules wherein the processing capabilities needed for their proper execution are compatible with the processing capabilities indicated by the processing identifier; and using at least one of the modules of the further version of the software program to partially modify the version of the software program and obtain the more suitable version of the software program.