CS/SWE 421 Fall 2010 Mid-term Examination Version A Student Name:___________________________________ Student G#: ________________________ Student Signature for Honor Code: ________________________________ Part 1. Short answer (you may use bullet points) 1. Why is software engineering hard, as opposed to other types of engineering? In other words, name some unique properties of this domain that explain why it is more difficult to design a website (for example), as opposed to the hardware of a motorcycle (for example). Your answer should generalize past any particular software and hardware implementation. (6 pts) 2. What information does the dependency relationship between two classes capture in a UML class diagram? That is, how is this relationship more specialized than the standard association? (4 pts) 3. Describe the difference between verification and validation. (6 pts) 4. Describe the RAD (Rapid Application Development) model. Then, explain what types of software projects are best suited to this type of model. (10 pts). 5. 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 Grocery Store System below. Make sure you document all variable and method types (arguments and return). Document your assumptions, if any. (13 pts) a. A single bill is associated with many items b. An item is associated with one and only one bill c. An item has an association with one and only one product d. An item is a part of a bill e. An item maintains a count of how many products were purchased, as well as the product itself f. Each product has a name, SKU number, regular price, and sale price g. A bill is associated with one and only one customer h. A customer is associated with at least one, and possibly more, bills i. A customer is a generalization of a member customer j. A customer has a name and address k. A member customer has a bonuscard number l. A bill has operations to calculate the total amount to be paid before sales are applied, as well as after sales are applied m. An item has an operations to calculate the total price of the product times the quantity of products 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). On the order history menu, they can choose to see the details of a previous order, or return an item from a previous order. 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) 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 conform to the process defined in document SPA-123. _________ b. The system shall allow the user to enter a username _________ c. The system shall store the username in a database _________ d. The website user interface shall be 508 compliant _________ 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. Requirements should be testable _________ b. Actors in use cases are external systems _________ c. A producer is also a consumer in a data flow diagram _________ d. Requirements are complete and consistent before implementing code _________ e. Prescriptive process models deliver software in increments _________