0707.321 Principles of Software Engineering

Homework 2

Software Requirements


Due Date

Morning Section (02): Monday, February 18 (11:59pm)
Evening Section (01): Tuesday, February 19 (11:59pm)

Form of Submission

Homework can submitted via email or printout by deadline.

Preparation

This assignment will exercise your knowledge of software requirements. Before you begin, do the following:

Assignment

  1. [1 point each] Classify the following requirement specifications (for a student information system) as one of:
    1. Functional requirement
    2. Product requirement (non-functional)
    3. Organizational requirement (non-functional)
    4. External requirement (non-functional)

    This question had the unintentional effect of demonstrating how natural language requirements can be ambiguous. A variety of answers were appropriate in some cases

    1. Users shall authenticate themselves to the System using their university account and pre-arranged password.
      i.  functional requirement or  iv.  external requirement
    2. Until the user has authenticated with the System, they shall only be able to look at lists of available classes and whether there is still space available in them.
      i.  functional requirement
    3. When the schedule permits, student users should be able to select which section of a course they wish to register for.
      i.  functional requirement
    4. Student users should not be able to use the System to register for a class for which they lack the necessary prerequisites.
      i.  functional requirement
    5. Student users shall be able to use the system after reading a one-page tutorial and making use of online help pages.
      ii.  product requirement
    6. Instructor users shall be able to waive all or some of the prerequisites for a course or section.
      i.  functional requirement or  iv.  external requirement
    7. Instructor users shall be able to register students in their sections despite any missing prerequisites.
      i.  functional requirement or  iv.  external requirement
    8. The System shall be accessible via the World Wide Web.
      ii.  product requirement, or  iv.  external requirement
    9. The System shall be able to handle the operation requests of 500 users at a time.
      ii.  product requirement
    10. The System shall be ready to be reployed by Fall semester 2003.
      iii.  organizational requirement

  2. Rewrite the following non-functional requirement specifications so that they are verifiable, splitting them into multiple requirements if you deem that appropriate. Feel free to assign plausible quantifiable values as necessary. (See Sommerville Section 5.1.2 for more info.) [2 points each]

    1. When the computer is powered on, the operating system should boot quickly
      When the computer is powered on, the operating system should load and be available for running user programs within 10 seconds.
    2. The web server should be able to serve our needs for the next two years.
      The web server should be able to handle [large number] of transactions per day, the maximum amount of traffic envisioned for the next two years.
    3. The student information system should be up and available for use throughout the official registration period.
      The student information system should be able to operate continuously for weeks at a time under high load, i.e., hundreds of transactions a minute, without crashing. If it does crash, it should be able to come back online within [short time] one minute.
    4. The user interface of the automatic cinema ticket machine should be intuitive.
      New users should be able to use the automatic cinema ticket machine without training, averaging no more than one error [arbitrary low value] for every ten sessions.
    5. The video game should be able to run well on consumer computers.
      The video game should be able to run on popular operating systems (e.g. Windows 2000) on low-end computers (such as are sold at retail outlets like Radio Shack or Best Buy). When running on such low-end computers, most, i.e., [high-percentage], of the features should be able to run in [short time period].

  3. [Sommerville, Question 5.5a]
    Using the technique suggested in Section 5.2 of Sommerville, where natural language is used in a standard way to make requirements specifications clearer, write plausible user requirements for the following function: [10 points]
    An unattended gasoline pump (such as you would find everywhere but in New Jersey) that accept payments by credit card. To operate, the customer swipes the card through the reader and specifies the amount of fuel required. The fuel is delivered and the customer's credit card is charged accordingly.

    1.  Fuel delivery system

    1.1.  The system should provide an unattended fuel delivery service where a specified amount of fuel is delivered to customers. The cost is deducted from the customer's credit card.

    1.2.  The sequence of actions to dispense fuel should be:

    1. The customer selects the type of fuel to be delivered.
    2. The customer inputs either 'fill up' or a maximum amount of fuel to be delivered.
    3. The customer validates the transaction by swiping their card through the card reader.
      Note: If the transaction cannot be validated (due to a credit limit, or invalid credit card), the customer cannot proceed.
      Rationale: The amount of fuel allowed depends on the credit limit but customers may wish to 'fill up' rather than have a special amount of fuel. By specifying a maximum, the system can verify that sufficient credit is available.
    4. The pump is activated.
    5. The customer takes the pump nozzle out of its holster and pumps fuel.
    6. The transaction is terminated either when the pump nozzle is returned to its holster for 15 seconds, when the customers fuel or cash limit is reached, or when 1 minute has elapsed without the pump nozzle ever having been removed from its holder.
      Rationale: Termination should not be immediate when the nozzle is returned as the customer may wish to restart the transaction, e.g. to fill a fuel can as well as the car fuel tank. If a pump display is available, it may be appropriate to issue a 'Please wait for your receipt' message.
    7. A receipt is printed for the customer.