Use cases are a mature model to capture user (person or system) proffered interaction requirements and begin to establish some of the functional requirements before construction of a new system begins. Proponents prefer them to large, monolithic documents which they believe cannot be simultaneously complete and meaningful, and regard them as an excellent technique for capturing the functional requirements of a system. Proponents cite these advantages:
Well written Use cases have proven to be easily understandable by business users, and thus to act as a bridge between them and software developers.
Uniquely identified use cases can be traced back to business requirements or stakeholder needs.
Use case partitioning can be used to organise and structure the requirements model, permitting common behaviour to be factored out.
>
Use cases can serve as a basis for the estimating, scheduling, and validating efforts.
Use cases are reusable within a project - Citation needed A use case (like anything) can evolve at each iteration, from a method of capturing requirements, to development guidelines for programmers, to a test case and finally into user documentation.
Use cases make it easy to take a staged delivery approach to projects; they can be relatively easily added and removed from a software project as priorities change.
Use cases that represent interactions between a user and a system (others will represent interactions between systems) make it possible for user interface designers to become involved in the development process before, or in parallel with, software developers (although use cases are also said to discourage inappropriate premature design).
Use cases and use case diagrams recorded using UML can be maintained with widely available CASE tools, and thus be fully integrated with other analysis and design deliverables created using a CASE tool. The result is a complete requirements, design, and implementation repository.Citation needed
Test cases (system, user acceptance and functional) can be directly derived from use cases
Use cases are critical for the effective execution of Performance Engineering.