Saturday, December 12, 2015

[Software Engineering] Use Cases versus Requirements - Which one do you need?

Use case and Requirements are used to specify what need to be done in a system but are slightly different.
Use case usually described the need of some people with the sentence:
“As a user, I can…”

On the other hand, requirements usually describe the behavior or criteria a system should provide and the sentence is started with
“The system shall provide…"

The major difference is the perspectives. A use case is used to capture the user’s need. Requirements are used to specify the system’s intention.

In agile development, people use the User Story as the form to describe the system behavior. However, this might be not enough for a developer to implement the system. Think about a user story of an ATM system as below:
“As a user, I can withdraw the cash after login the system successfully”

This user story does not capture the details. Of course, there are other user stories of the ATM, but the point is that user story might not capture enough details from the user’s perspective. The user stories or use cases are needed to be further analyzed to have implementable requirements.

My opinion is that you need both use cases and requirements. Use use cases to capture the user’s need and analyze the use cases to get requirements (both functional requirements or quality requirements). Focus on translating the use cases to the right and implementable requirements. Then, you will have a solid foundation of a successful project.