1. A method for evaluating at least one property of a software program given one or more changes to said software program, said method comprising the steps of: identifying nodes in an automaton-based derivation graph corresponding to changed edges in a control flow graph representation of said software program, wherein said automaton-based derivation graph describes an earlier evaluation of said software program; and updating at least one of said identified nodes in said automaton-based derivation graph and traversing said automaton-based derivation graph outward from a location of a change, wherein said updating step further comprises the steps of: computing a strongly connected component (SCC) decomposition of a function call graph in said software program; identifying an SCC having an unprocessed program change and a lowest position in said SCC decomposition; performing a forward incremental analysis on said identified SCC to process said program change in said SCC; evaluating one or more interfaces of said identified SCC to identify one or more additional SCCs affected by said program change until no interfaces are affected; and repeating said identifying, performing and evaluating steps for a next SCC having an unprocessed program change and a lowest position in said software program.