Use cases are a very effective method of modeling a software system. It builds a mutual vision of the problem at hand by bridging the gap between the people who understand the problem and the people who understand how to build a solution. It helps to identify all the actors as well as the external systems interacting with the system to be designed and also the behaviors of the system. When developing the use case, it is always advisable to first go through the requirements in multiple iterations, helps a lot in developing a better understanding of the system.
Following are some of the main benefits of Use Case Modeling:
1. The use case diagram provides a comprehensive summary of the whole software system in a single illustration.
2. The use cases are mainly composed of narrative text. Hence, unlike many other modeling techniques, the non technical stake holders (e.g. customers, end users, salesperson etc) are also able understand the model for the software system. This means that feedback can be obtained at a very early stage of the development from the customers and the end users.
3. Another major advantage of use case modeling is that it requires the identification of exceptional scenarios for the use cases. This helps in discovering subtle alternate requirements in the system.
4. The use case model can be utilized in several other aspect of software development as well, e.g. Cost Estimation, Project Planning, Test Case Preparation and User Documentation.
Following are some of the disadvantages of Use Case Modeling:
1. They do not capture the non-functional requirements easily.
2. There might be a learning curve for the developer and/or specially, the client in using these use cases.
In sum, a well-prepared use case is worth its effort. Once the client has agreed to the use cases, the project managers can plan their schedule, and the developers have a clear understanding of what they must develop. From personal experience, I can say that while a use case is very beneficial, they are rarely perfect, but they always serve a useful purpose.