Software Specification

Software Specification

This is the step 3 of the software development life cycle as shown in the picture below. At this level the documentation is design along with some prototypes and code samples.What should the SRS (Software Requirements Specification) address?

From the IEEE standard:
The basic issues that the SRS writer(s) shall address are the following:

  1. Functionality. What is the software supposed to do?
  2. External interfaces. How does the software interact with people, the system’s hardware, other hardware, and other software?
  3. Performance. What is the speed, availability, response time, recovery time of various software functions, etc.?
  4. Attributes. What are the portability, correctness, maintainability, security, etc. considerations?
  5. Design constraints imposed on an implementation. Are there any required standards in effect, implementation language, policies for database integrity, resource limits, operating environment(s) etc.?

What are the characteristics of a great SRS?

Again from the IEEE standard:

An SRS should be

  1. Correct
  2. Unambiguous
  3. Complete
  4. Consistent
  5. Ranked for importance and/or stability
  6. Verifiable
  7. Modifiable