CS 435 - Week 5 Lecture 2 - 2014-02-20

*   discussed first 3 project milestones --
    they are now posted along with these notes
    *   note that Homework 5 will NOT come out
        tonight, so you can get 1st Project Milestone
	in by NEXT FRIDAY FEB 28, 11:59 pm

----------------
Jalote Chapter 3 - Software Requirements Analysis
    and Specification

*   Software Requirements Analysis
    Software Requirements Specification (SRS)

*   Jalote's contention:
    a high-quality SRS is a prerequisite to
    high-quality software

*   requirement:
    IEEE definition: (from Jalote p. 37)
    1) a condition or capability needed by a user
       to solve a problem or achieve an objective

    2) A condition or capability that must be met
       or possessed by a system ... to satisfy
       a contract, standard, specification,
       or other formally imposed document [another
       IEEE technical report] 

*   one important characteristic of a requirements
    specification:
    *   describes WHAT the proposed software should
        do without describing HOW the software will
        do it

*   desirable [pie-in-the-sky, perfect-world]
    characteristics of an SRS

    *   correct
        *   an SRS is correct if every requirement
            in it represents something required
	    in the final system

    *   complete
        *   an SRS is complete if everything the
	    software is supposed to do and the 
	    responses of the software to all 
	    classes of input data are specified
	    in the SRS

    *   unambiguous
        *   an SRS is unambiguous if and only if
	    every requirement stated has one and
	    only one interpretation

    *   verifiable
        *   an SRS is verifiable if and only if
	    every stated requirement is verifiable

    *   consistent
        ...there is no requirement in the SRS
	that conflicts with another

    *   ranked for importance and/or stability