by Serlio Software     

How Use Cases Make Projects More Successful



One of the hardest things to do when creating sophisticated software systems is to build the right thing. Projects that have incomplete or difficult to understand requirement specifications end up with scope creep, expensive rework, delayed releases, or even abandonment. Use case modeling is a proven method to effectively describe the behavior of a software system. It builds a shared 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.

My company already gathers requirements, why should I consider use cases?

In a traditional Software Requirements Specification (SRS), features are presented without any context. For example, "The system shall log credit payments to the accounts receivable system". When there is no context present, there is room for ambiguity. For example, when does this event happen? Is the order relative to other events significant? Who triggers the event? What happens when the accounts receivable system is unavailable? In addition, an SRS tends to get long and complex, making comprehension among all the stakeholders of the system difficult.

So what are the benefits of use case modeling?

Use cases focus on the users of the system, not the system itself, thus the real system needs are brought to light early on. Since a use case consists mainly of narrative text, it is easily understandable by all stakeholders, including customers, users and executives, not just developers and testers. By including all the stakeholders during the early planning stages of a project, you bring in people who best understand the problems at hand, promote a sense of buy-in from end users, and eliminate surprises when the system is deployed.

Each use case describes one way the system is used, but one of the big benefits of use case modeling is that it also describes all of the things that might go wrong. Identifying exceptions to a successful scenario early in the project saves a lot of time by finding subtle requirements.

Finally, once a use case model has been developed, it can be used to drive many other aspects of software development, including project planning (cost, complexity and timing estimates), object models, test case definitions, and user documentation.
© 2008 Serlio Software Development Corporation
privacy