CPSC 333: A Requirements Specification

Location: [CPSC 333] [Listing by Topic] [Listing by Date] [Previous Topic] [Next Topic] A Requirements Specification


This material was covered during lectures on February 19, 1997.


Outline of a Requirements Specification

In his chapter on ``Analysis Concepts and Principles'' in Software Engineering: A Practitioner's Approach, Pressman provides the following outline for a requirements specification (Figure 11.9, on page 291, in the Fourth Edition). This is a text document that can also include numerous pictures, tables, as charts, as figures referred to in the text.

  1. Introduction
    1. System reference
    2. Overall description
    3. Software project constraints
  2. Information Description
    1. Information content representation
    2. Information flow representation
      1. Data flow
      2. Control flow
  3. Functional Description
    1. Functional partitioning
    2. Functional description
      1. Processing narrative
      2. Restrictions/limitations
      3. Performance requirements
      4. Design constraints
      5. Supporting diagrams
    3. Control Description
      1. Control specification
      2. Design constraints
  4. Behavioural Description
    1. System states
    2. Events and actions
  5. Validation Criteria
    1. Performance bounds
    2. Classes of tests
    3. Expected software response
    4. Special considerations
  6. Bibliography
  7. Appendix

As Pressman notes, other formats for these documents have been proposed - for example, by the (US) National Bureau of Standards, the Institute of Electrical and Electronics Engineers, Inc. (IEEE Standard No. 830-1984), and the US. Department Department of Defense.

These won't be discussed, in any detail, in this course. They include some types of requirements that we haven't discussed at all (such as ``software project constraints''), which a manager might need to be concerned with instead of a developer. However, you should note that some of the models we've discussed document requirements that are to be included in one or more of the sections given above. Thus, some of the graphical models we've developed might be included in these sections, of they might be included in the ``appendix'' for this specification, and referred to in earlier sections of the document.

Additional Documentation

A preliminary draft of either a ``man page'' (for a small, Unix-based system) or a user manual, tutorial, etc. (for a larger system), might be prepared at this point, as well. Much of the information that this ``user documentation'' is supposed to provide should have been discovered by now, and your success (or failure) in writing this user documentation can provide yet another kind of ``test'' of the completeness of the requirements you've specified.

A small amount of material on the preparation of user documentation is generally included in CPSC 451.

You might also have prepared a prototype of the system by now. This might be a working system that might lack some functions that the delivered system will need to support, might not run on the computing platform that the delivered system must run on, might be too slow (or use too many other resources) to serve as the delivered system, etc. It might also be a ``paper prototype,'' which might include a set of pictures of screens that a user would see, reports that are generated, etc., when selected commands are requested and selected inputs are supplied. While you often won't be able to use the prototype as part of the system you'll eventually deliver (it often won't be testable or maintainable), you might still want to refer to it again, later on in development.

Protyping is frequently used for development of a human-computer interface; additional material about this technique is included in CPSC 481.

Who Provides This?

If a project is large enough to require the kind of documentation that's been mentioned, then it's to be hoped that a technical writer is available to the development group. It makes sense to have someone who's been trained to write clearly, and for users (rather than for developers), prepare the requirements specification and user documentation, using the information (models, pictures, and text) that developers can provide.

Location: [CPSC 333] [Listing by Topic] [Listing by Date] [Previous Topic] [Next Topic] A Requirements Specification


Department of Computer Science
University of Calgary

Office: (403) 220-5073
Fax: (403) 284-4707

eberly@cpsc.ucalgary.ca