1. A method for managing, in a computer system, design of a software system, the method comprising: receiving an input to the computer system specifying dependency relationships among subsystems of the software system wherein a rule is imposed on at least one of the dependency relationships and data for the rule is provided as part of the input; and providing an output from the computer system responsive to the input.