US 9,811,371 B2
Concurrent execution of a computer software application along multiple decision paths
Gili Nachum, Rehovot (IL); Vladimir Gamaley, Rehovot (IL); and Gil Perzy, Rehovot (IL)
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION, Armonk, NY (US)
Filed by Gili Nachum, Rehovot (IL); Vladimir Gamaley, Rehovot (IL); and Gil Perzy, Rehovot (IL)
Filed on Jun. 29, 2012, as Appl. No. 13/537,764.
Prior Publication US 2014/0007103 A1, Jan. 2, 2014
Int. Cl. G06F 9/46 (2006.01); G06F 9/48 (2006.01); G06F 9/445 (2006.01)
CPC G06F 9/46 (2013.01) [G06F 9/4843 (2013.01); G06F 8/60 (2013.01); G06F 8/61 (2013.01)] 10 Claims
OG exemplary drawing
 
1. A computer hardware system configured to manage execution of a computer software application, comprising:
a hardware processor configured to initiate the following operations:
identifying, during execution of a primary instance of the computer software application, the primary instance reaching an execution point that presents a plurality of predefined options to a user; wherein the computer software application is an installation program executing within a virtual machine, and each of the plurality of duplicate instances execute within respective cloned virtual machines;
generating, prior to selection by the user of one of the pre-defined options and based upon the execution point being reached, a plurality of duplicate instances of the primary instance;
assigning, respectively, execution paths corresponding to the plurality of predefined options to each of the plurality of duplicate instances;
executing, prior to the selection by the user of one of the predefined options, the plurality of duplicate instances along their respective execution paths;
gathering information associated with the execution of the each of the plurality of duplicate instances;
automatically eliminating, as a predefined option to be presented to the user, the predefined option corresponding to one of the plurality of duplicate instances that resulted in a failed operation;
presenting a recommendation, prior to the one predefined option being selected and based upon the gathered information, as to the plurality of predefined options;
determining that one of the plurality of pre-defined options has been selected;
terminating, based upon the one predefined option being selected, each of the duplicate instances not associated with the one predefined option; and
identifying, within one of the execution paths corresponding to the plurality of predefined options, a second execution point that presents a second plurality of predefined option to the user, and repeating the steps of generating, assigning, and executing for the second execution path.