The sum of all use case intents comprises the functional requirements of the system. There is probably no shorter, more readable description of the requirements for the system than the collected use case intents. The intents of the use cases can be thought of as responsibilities at the system level. The interactions between subsystems can be interpreted as use case descriptions of the subsystems, and the design process repeated to decompose the subsystem further, down to existing services, subsystems or classes. Thus, responsibilities and use cases complement each other recursively from system requirements down to the level of classes or existing subsystems or services.
Use cases address several critical needs of the development team.
They provide a way for the system designers and project manager to sit together to plan a sensible division of the project into increments and teams, and for the project manager to track the development of the system. All in all, design with responsibilities and use envelopes were found to be the common design thread among the most successful projects examined. These techniques demonstrated themselves to be very nearly unavoidable, and quite sufficient, even for fairly large systems. What was most surprising was how many different kinds of tools could be used effectively with them, including even spreadsheets and word processors. The tool requirements for profiting from these techniques is very low.