Review 3

Please draw on material presented in lectures 5 & 6, as well as chapter 2 of both textbooks to answer the questions below.

  1. In gathering requirements, we are told to write user stories that are customer focused. What does this mean and why can it sometimes be difficult to achieve.
  2. On page 38 of the textbook, one of the user stories is labelled a non-functional constraint. In the book and in lecture, our focus has been mainly on functional requirements. Define what a functional requirement is and then discuss how they are different from non-functional requirements. In your answer, explore what it would mean to take an existing system and change one of its non-functional requirements.
  3. What is the alphabet of the following FSP process:
        DISPLAY_COUNTER = COUNTER[0],
        COUNTER[v:0..4] = (when (v < 4) increment -> COUNTER[v+1]
                          | display[v] -> COUNTER[v]).
    How did you determine your answer?
  4. For the previous FSP specification, is this a valid trace?
    display[0]→increment→display[1]→increment→increment→display[2]→increment→increment→
    If you answer "no" then identify the problems with the trace. If you answer "yes", provide an example of an invalid trace.
  5. What is the difference between an indexed process and a parameterized process in FSP? (See sections 2.1.3 and 2.1.4 in the concurrency textbook.)

Please submit your work by sending me an e-mail with your answers contained in the body of the message or with your answers attached in a PDF document.

Do NOT submit .doc, .docx, .odt, or other document formats.

This review is due by 11:59 PM on Tuesday, February 3rd.

Kenneth M. Anderson, 2009