-So, as we did for the previous cases, now let's look - -2
-at an example. Let's consider a specific use case, maintain curriculum, in - -3
-which we have the registrar that interacts with the system to do - -4
-operations for maintaining the curriculum. And, let's define the flow of events - -5
-for this use case. To do this, we're going to go back, as - -6
-usual, to the description of our system. So this is the one - -7
-that you already saw several times, but I would like for you - -8
-to do something. I would like for you to stop the video, - -9
-look back at the spec, the one that is shown here. - -10
-And write on your own, what you think is the informal flow - -11
-of events that categorizes the interaction of the registration manager with - -12
-the system. And it is very important that you keep in mind - -13
-something as you're doing that. You should keep in mind that, - -14
-as it always happens, when extracting - -15
-requirements from an initial specification, in - -16
-particular an informal one like this one, a high-level one, you - -17
-will have to be able to read between the lines and fill - -18
-in the blanks. That is, you have to provide the information - -19
-for the missing parts using your domain knowledge. So try to - -20
-do that exercise. Read the description, and see how you will - -21
-define the steps, the flow of events for the maintain curriculum use - -22
-case. If you're done with that, now let's see the possible - -23
-informal paragraph that describes that flow of events. And the one - -24
-I'm providing now is just one possibility, based on my experience - -25
-and based on the way I see this possible flow of events. - -26
-So yours might look different, of course. In my case, because - -27
-the description was measuring the fact that every user has got - -28
-a log-in and a password. I decided that the first step - -29
-should be that the registrar logs onto the system and enters his - -30
-or her password. As it normally happens with password protected systems, - -31
-if the password is valid, the registrar will get into the - -32
-system. And the system at this point should ask to specify - -33
-a semester for which the maintain curriculum activity has to be performed. - -34
-The registrar will therefor enter the desired semester. The interface - -35
-I envisioned is one in which the system will prompt - -36
-the registrar to select the desired activity. Add, delete, review, - -37
-or quit. And if the registrar selects add, the system - -38
-will allow the registrar to add a course to the - -39
-course list for the selected semester. Similarly, if the registrar - -40
-selects delete, the system will let the registrar delete a - -41
-course from the course list for the selected semester. And again - -42
-similarly, if the registrar selects review, the system will - -43
-simply display the course information in the course list for - -44
-the selected semester. And finally, if the registrar selects quit, - -45
-the system will simply exit and our use case will - -46
-end. So, again, there's the main knowledge that goes into - -47
-this. But this is a good example of how you - -48
-can refine the initial description to identify these scenarios that - -49
-then you will use to specify and implement your system. - -50
-And as we discussed a few minutes ago, we provided the information - -51
-that is requested for the use case, how the use case starts, - -52
-by logging into the system. And how it ends, by selecting quit. - -53
-We described the normal flow of events. And, of course, these flow - -54
-of events could be improved, because right now even though we described - -55
-how the use case starts and ends, we just described one possible - -56
-flow of events. But there's many alternative ways we could provide and - -57
-we do not describe any exception of flow of events. So this could - -58
-be the starting point for multiple use cases, or - -59
-for use cases just richer and contains more information, more - -60
-steps to a richer flow. But you should have - -61
-gotten the idea of what a use case should be. -- cgit 1.4.1