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. 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)

    1. Users shall authenticate themselves to the System using their university account and pre-arranged password.
    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.
    3. When the schedule permits, student users should be able to select which section of a course they wish to register for.
    4. Student users should not be able to use the System to register for a class for which they lack the necessary prerequisites.
    5. Student users shall be able to use the system after reading a one-page tutorial and making use of online help pages.
    6. Instructor users shall be able to waive all or some of the prerequisites for a course or section.
    7. Instructor users shall be able to register students in their sections despite any missing prerequisites.
    8. The System shall be accessible via the World Wide Web.
    9. The System shall be able to handle the operation requests of 500 users at a time.
    10. The System shall be ready to be reployed by Fall semester 2003.

  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.)

    1. When the computer is powered on, the operating system should boot quickly
    2. The web server should be able to serve our needs for the next two years.
    3. The student information system should be up and available for use throughout the official registration period.
    4. The user interface of the automatic cinema ticket machine should be intuitive.
    5. The video game should be able to run well on consumer computers.

  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:
    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 amuont of fuel required. The fuel is deliver and the customer's credit card is charged accordingly.