Managing operational and semantic interdependencies among software services is a relativley unexplored topic, despite its relevance to automating service deployments and to increased availability. In this paper we decsribe a framework fro structured and programmatic dependency management among services written in the Java programming language. The framewrok's interface allows for defining an acrylic graph of dependencies. The graph's structure reflects the startup sequence of managed services. Upon services failure or international termination, the dependencies are consulted to determine which services may be affected. If the dependencies so dictate, a service that has gone off-line will automatically be restarted. The requisite changes, e.g., restarting, will be propagated along the graph's edge to ensure that the required dependencies are satisfied for each services. Wer demonstrate the usefulness of this framework thorugh real-life case studies.