Com S 362 --- Object-Oriented Analysis and Design HOMEWORK 6: USE CASES (File $Date: 2004/10/08 18:38:37 $) Due: Problems 1-4 on October 22, 2004; the extra credit problem can be handed in by November 1, 2004 This homework is an individual homework. That is, you should do the problems on your own, without directly collaborating with your teammates or others in class. This homework, problems relates to some of the basic concepts and skills we have been discussing in class; in particular, writing use cases. Read chapter 6 of Craig Larman's book Applying UML and Patterns (Second edition, Prentice-Hall PTR, Upper Saddle River, NJ, 2002). Also read chapter 3 of Martin Fowler with Kendall Scott's book UML Distilled (Addison-Wesley Longman, Inc., Reading, MA, 2000). Finally, as an example look at the web page for the StickSync project: http://www.cs.iastate.edu/~cs362/sticksync/usecases.shtml 1. (20 points) [Brief format use case "Cancel a Reservation"] Consider a reservation system for an airline. Such a system allows travel agents to make reservations for customers who want to fly on airplanes. Using the brief format, write a use case titled "Cancel a Reservation", which would involve a travel agent talking to the reservation system and a customer. Assume that the customer has an existing reservation that they want to cancel. Be sure your use case is written in an essential, UI-free style (see Larman's section 6.11). You only need to consider the "happy path". Although we'd prefer that these be typed, this can be handwritten if your handwriting is clear. 2. (40 points) [Casual format use case "Check Reservation Status"] Consider again a reservation system for an airline. Using the casual format, write a use case titled "Check Reservation Status". Again in this use case the travel agent is talking to the reservation system and a customer who has called to check on one or more reservations that they may have made. (The customer wants to know that the reservation is in the system.) Consider as alternative scenarios what happens if (a) the reservation does not exist, and (b) a flight in the reservation has been canceled. Be sure your use case is written in an essential, UI-free style. Although we'd prefer that these be typed, this can be handwritten if your handwriting is clear. 3. (70 points) [Fully dressed format use case "Make a Reservation"] Consider again a reservation system for an airline. Using the fully dressed format, write a use case titled "Make a Reservation" for an agent making a reservation on behalf of a customer. If you're unfamiliar with the process of making an airline reservation, you might want to play with an online airline booking system, such as expedia.com. (You can do this without actually buying a ticket if you stop at the point where they want your credit card number.) But note that you are *not* to write your use case for this process of buying a ticket on-line; rather you are to write it for the process of having the travel agent make a reservation for a customer. So the main actor will be a travel agent, not a customer. You should consider at least two alternative scenarios for this use case: (a) the customer requests a destination that does not exist, (b) the customer decides that the price is too high. Be sure your use case is written in an essential, UI-free style. Although we'd prefer that these be typed, this can be handwritten if your handwriting is clear. 4. (10 points) [EBP guidelines] Consider again and airline reservation system. For each of the following, write (i) either "yes" to indicate that this is an elementary business process (see Larman section 6.8), or "no", and (ii) briefly explain why. a. Change seat assignments for an existing reservation. b. Compute the sales tax for a payment. c. Delete a flight from the system (without doing anything else to existing reservations). d. Interpret a keystroke from the company's agent. e. Change the time of a reservation. EXTRA CREDIT SECTION The following is optional, but you should consider it if you are interested in doing research or going to graduate school. 5. (50 points, extra credit) [Review research] Read a chapter of a scholarly book, or a published research article about a topic directly related to our class. Suggestions appear in the "optional readings" section of the course syllabus. However, not everything mentioned in the syllabus's other readings section is appropriate. In particular, textbooks that do not have references are not appropriate for this problem. By a "scholarly book" I mean a book that has references to other literature, either at the ends of chapters, or at the end of the book. By a published research article, I mean an article that is not in a trade journal (e.g., it has references at the end), and that is from a refereed journal or conference. Publication means the article actually appeared in print, and was not just submitted somewhere. So beware of technical reports on the web for submitted articles. It's okay to get a copy of a published article from the web, although I highly encourage you to physically go to the library. Write a short (1 or 2 page maximum) review of the article, stating: a. (10 points) What the problem was that the chapter or article addressed, b. (20 points) The main points made in the article, including and what you learned from it, and c. (20 points) What contribution it make vs. any related work mentioned in the article. In your writing, be sure to digest the material; that is, don't just select various quotes from the article and string them together, instead, really summarize it. If you quote any text from the paper (or other sources), be sure to mark the quotations with quotation marks (`` and '') and give the page number(s). This will avoid plagarism.