CS 471 - Software Engineering
Fall 2010 Exam #2
Due 10:30am Monday November 15

You may use any resource (book, internet, notes, etc) as long as you complete this exam by yourself. Clearly state any assumptions that you are making. Document any sources you use and make it clear what you have written and what you are using from other sources. Turn in your exam at the beginning of class on Monday or e-mail it to me by 10:30am on Monday November 15.

This is a writing-intensive class, so part of your grade will be based on the clarity and style of your writing. You should focus on high content-to-word ratio (e.g. an answer that provides the same information in 1 page is better than an answer that takes 3 pages to provide the same information.)

  1. (30 points) Create the hardware and software requirements for an autonomous taxi that can operate around Fairbanks year-round. Determine the hardware needed (e.g. vehicle, type/number of sensors, CC reader, GPS, ...) given a $50K budget. Justify your choices.
    Provide a complete set of software requirements for the operation of an autonomous taxi. Don't forget about the non-functional requirements (e.g. reliability, safety, ...) or a risk analysis.
  2. (10 points) Draw a state machine model of the control software for a Blue-ray player.
  3. Suggest appropriate reliability/saftey metrics for the following classes of software systems. Predict the usage of these systems and suggest appropriate values for the metrics:
    1. A word processor (10 points)
    2. An automated gas station (10 points)
    3. A system to control braking in a car (10 points)
    4. A web-only vendor (e.g. Amazon.com) (10 points)
  4. (20 points) We need to use an SQL database for an upcoming software project. Find four major SQL vendors (open source is ok) and describe the pros/cons of each of their implementations. Make sure you have a solution for the following cases:
    1. Which would you recommend (and why) for a small, non-profit with a $5,000 yearly computer budget and 1 part-time "computer person"?
    2. Which would you recommend (and why) for our web-based shopping software system?