1. An apparatus having a software system, the apparatus comprising: computer hardware configured to operate according to instructions of the software system to provide: starting means for starting program modules; detecting means for detecting a service provided by a first program module; receiving means for receiving a request generated by a second program module when the second program module uses the service provided by the first program module which is detected by the detecting means: storage means for storing information indicating that the second program module uses the service provided by the first program module, at a time when the request generated by the second program module is received by the receiving means; derivation means for deriving a tree structure representing a dependency relationship among program modules from a dependency relationship among the program modules based on the information stored by the storage means; and terminating means for determining a weight to be assigned to a program module by adding a predetermined value to a weight of a child node of the program module, and for terminating the program modules started by the starting means in an order based on the derived tree structure and the assigned weights.