CS/SWE 421 Fall 2010 Mid-term Examination Version B Student Name:___________________________________ Student G#: ________________________ Student Signature for Honor Code: ________________________________ Part 1. Short answer (you may use bullet points) 1. Recall the bathtub-shaped curve of the relationship between time (x-axis) and failure rate (y-axis) of hardware. Discuss how 1) this curve is similar to the same curve for software and how 2) this curve is different from the same curve for software. (6 pts) 2. What is a problem with having a lot of dependencies (as opposed to simple associations) in class diagrams? (4 pts) 3. Describe the difference between agile and prescriptive models of software development. (6 pts) 1. Describe the spiral development model. Then, explain what types of software projects are best suited to this type of model. (10 pts). 2. List 5 properties of the eXtreme programming methodology that we have discussed in class. For each property describe the associated benefit. (15 pts) Part 2. Diagrams 1. Draw a UML Class Diagram for the following Student Record System below. Make sure you document all variable and method types (arguments and return). Document your assumptions, if any. (13 pts) a. A single student is associated with many classes b. A class is associated with at least one section c. A class has one and only one instructor d. A section is part of a class e. A class maintains a list of sections, as well as how many sections there are for that class f. Each section has a section number, TA, room number, and time g. A student is associated with one and only one address h. An address is associated with one, and possibly more, students i. A graduate student is a generalization of a student j. A student has a name and student ID k. A graduate student has an advisor l. A student has an operation to change their address m. A class has an operation to list all students in that class. 2. Draw a swimlane diagram for the following online bookstore system. Each actor is underlined below (i.e. should be a column in your diagram) (17 points) The User enters a username and password. The Website then checks to see whether or not the username and password match, first by retrieving this information from the Database. If the username and password do not match, the Website prompts the user to re-enter the same information. This cycle continues until either the user enters correct information, or the maximum allowed number of tries (maxTries) is exceeded, in which case the Website sends the user to an error page. If the User enters a valid username and password with the allowed number of tries, the Website presents the user with a search page. The user then enters the name of a book. The Website then consults the Database and returns all matching results. While searching for books, the User can also concurrently view their order history (in a separate window or frame). The order history window does not need to be synchronized with the rest of the application until the user logs out of the system. The User can purchase any book in their search results, or they can choose to log out. If they choose to purchase a book, they are prompted to enter their shipping and billing information. The Website then consults the Database and checks that the credit card entered matches the shipping address. If this is the case, the Website sends the User to a receipt page, otherwise the Website prompts the User to re-enter their shipping and billing information. After completing interaction with the Website, the User logs out of the system. (answer on next page) Draw your swimlane diagram here 3. Draw a Use Case diagram for question 2 (the online bookstore) (9 pts) Part 3. Multiple choice. 1. Label the following requirements as either functional (F) or non-functional (NF) (10 pts): a. The system shall document the code according to SPA-123. _________ b. The system shall allow the user to enter a username _________ c. The system shall store the email no longer than 30 days _________ d. The website shall provide search results _________ e. The system shall undergo routine downtime for one hour each week _________ 2. Indicate whether the following are true always (A), sometimes (S), or never (N) (10 points): a. Use Case diagrams show the logical flow of use through the system _________ b. Developing software with a waterfall model never works _________ c. With agile methods, the functionality delivered is not fixed, while the time and resources are _________ d. In XP the customer estimates how long it will take developers to implement a feature, which is a binding assignment to the developers _________ e. Prescriptive process models deliver software in increments _________