1. A method for representing application dependencies, comprising: executing a first software application according to an associated state machine; obtaining a set of dependencies relationship rules, the set of dependencies relationship rules indicating dependencies of a set of software applications upon the first software application based upon the state of the first software application; and navigating the set of dependencies relationship rules indicating dependencies of the set of software applications upon the first software application based upon the state of the first software application, wherein the set of dependencies relationship rules is represented by a dependencies graph, wherein the first software application and each of the set of software applications is represented by a dependency node in the dependencies graph and each line connecting the first software application with one of the set of software applications corresponds to one or more dependency statements, and wherein the dependencies graph spans multiple physical machines, wherein navigating the dependencies relationship rules comprises using a graph navigation mechanism adapted for navigating the dependencies graph, and using a plurality of state machine navigation mechanisms, each of the plurality of state machine navigation mechanisms being adapted for navigating the corresponding state machine associated with one of the set of software applications, and wherein the graph navigation mechanism and the plurality of state machine navigation mechanisms each comprise a plurality of restarters related in a hierarchical manner, wherein each of the restarters is adapted for restarting one of the set of software applications in accordance with the corresponding state machine.