Use Case vs. Scenario

Basic Idea: If Use Case = Human Life, then Scenario = My Own Life.
Basic Idea: If Use Case = Do Assignment, then Scenario = My Own Way to Do My Assignment.

Example 1: supposed that we want to apply for a job. Our use case will be "Apply Job". However, different companies (or different departments of the same company) have different requirements and different application procedures. Some companies require you to fill an online application. Some require you to provide a resume with detailed contribution of individual points specified in their advertisement. Yet, some further require you to complete a comprehensive set of questions or write a program during an interview. Of course, some need multiple rounds interviews with Human Resources Staff, the manager of the department, and the technical staff; whereas, some use group interview rather than individual interview. In short, there are many varieties. From your first action for a particular job application (e.g., you fill an application form) to the outcome of the application (successful or not), the sequence of activities  is a scenario. All possible scenarios (as you check out from your fellow classmates or what you experience from all possible job applications) as a whole form a use case.
Example 2: If you know graph theory from your algorithm course, then we have the following: If a use case can be viewed as a directed graph, then a scearnio of the use case is a path of the directed graph.
Example 3: We may develop a program P to accept an integer x (i.e., an input parameter) and output a result y (i.e., y = P(Integer x)). Since x can be initialized to any integer value, and so, the program P should be able to compute the result for every possible integer value that we pass to  P through x.  By passing different values x to P, we can observe that P may execute different sequences of program statements (i.e, following different paths) to compute the output values. Each distinguish path is a scenario. The program as a whole, which is able to handle all possible input values, is a use case.

Selected Tags

Tag Groups


ACM SigSoft
IEEE Software Engineering Online