US 9,811,372 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 International Business Machines Corporation, Armonk, NY (US)
Filed on Jun. 5, 2013, as Appl. No. 13/910,464.
Application 13/910,464 is a continuation of application No. 13/537,764, filed on Jun. 29, 2012.
Prior Publication US 2014/0007107 A1, Jan. 2, 2014
This patent is subject to a terminal disclaimer.
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)] 5 Claims
OG exemplary drawing
 
1. A method for managing execution of a computer software application, comprising:
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 gathering 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.