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