1. A computer-implemented method for executing an application program written in object-oriented code, the method comprising: generating and executing a first and a second producer graphs, wherein a producer is a runtime instantiable construct that includes an instance of a class and a method of that class, wherein the first producer graph includes a producer of interest and other producers interconnected to each other based on dependencies between the producers, wherein the first producer graph and the outputs of the producers of the first producer graph correspond to a first scenario, wherein the second producer graph corresponds to a second scenario reflecting a change in the outputs of a set of one or more directly impacted producers for the second scenario while preserving the outputs of the producers in the first producer graph, wherein the second producer graph has a copy of at least the producer of interest, a copy of the set of directly impacted producers with their outputs changed, and a copy of any of the producers in the first producer graph that are indirectly impacted because they are on a path between the producer of interest and any of the one or more directly impacted producers, and wherein the generating and executing comprises: instantiating the producer of interest as part of the first producer graph, wherein the object-oriented code includes methods and producer dependency declarations, wherein the producer dependency declaration for a given method identifies a set of zero or more producers, and automatically generating and executing a remainder of the first producer graph through linking, and instantiation as necessary, of other producers based on the producer dependency declarations of the methods of the producers already in the first producer graph.