Software Requirements Spec

1. Product Overview and Summary
     (From Section 1.0 - Scope - of the software plan, but more detailed)

2. Information Description
 2.1. User interface (A Preliminary User manual)
 2.2. High level data flow diagram
      
An example of a high level data flow diagram (usually only one DFD for the entire system) 2.3. Data structure (or object) representation (what data elements are in the databases or objects?) 2.4. Data elements (or objects) dictionary (compile all data elements into a dictionary) 3. Functional Description (each function has IC card, functional narrative, design constraints and DFD) 3.1. Functions (you should specify functions using IC cards) (you can access the IC Card Management System http://intranet.cs.pitt.edu/~chang/icms1/login.php to create your IC cards. To use intranet you must be on campus. To connect to intranet from off-campus you must use VPN service to establish secure communication and login using sremote.) A User Manual explains how to use the ICMS.) 3.2. Processing narrative (The processing narrative describes in words what the functions do. For each function, there is a paragraph (or several paragraphs if necessary) describing this function. For example, the take-test function of a distance learning system allows a student to take a test, by first logging in, then entering course information, and finally taking an online test. The test scores are stored in the student record.) 3.3. Design constraints (The design constraints specify what the functions cannot do. For example, the take-test function of a distance learning system supports only multiple-choice type of tests, and other type of tests are not supported.) 3.4. Diagrams (There should be a detailed data flow diagrm for each function)
Example of a detailed data flow diagram
4. Performance requirements (As an example, the system should handle at least two hundred concurrent users, five hundred thousand user profiles and be able to process a job placement inquiry in less than one second.) 5. Exception conditions/exception handling (For example, if a company has a crash job and suddenly needs to hire five hundred temp workers, how to deal with it?) 6. Implementation Priorities (As an example, due to resource (time and personnel) limitation we will first implement the core system supporting the following basic functions: (list). If there are additional resources (time and personnel) we will implement the following functions: (wish list). For the final product we will implement all the basic functions plus some functions in the wish list by iteration following agile incremental approach.) 7. Foreseeable modifications and enhancements 8. Acceptance criteria Functional and performance tests Documentation standards (what tests will you do to accept this product? What documents will you deliver?) 9. Sources of information (This section includes documents from software vendors, outsourcing companies, and most importantly customers. For example the customer's company has a human resource document and our system is designed in compliance to that document. For the class project, you can cite the first kind of documents.) 10. Revision history (Each entry shows the date, short description and responsible person for each revision)
Note: For the second milestone only items 1, 2.1, 2.2, 3.1, 3.2 and 3.3 are required.

requirements questionnaire