• There are many good definitions of System and Software Requirements Specifications that will provide us a good basis upon which we can both define a great specification and help us identify deficiencies in our past efforts. There is also a lot of great stuff on the web about writing good specifications. The problem is not lack of knowledge about how to create a correctly formatted specification or even what should go into the specification. The problem is that we don't follow the definitions out there.

    What are the benefits of a Great SRS?

    1. Establish the basis for agreement between the customers and the suppliers on what the software product is to do.
    2. Reduce the development effort.
    3. Provide a basis for estimating costs and schedules.
    4. Provide a baseline for validation and verification.
    5. Facilitate transfer.
    6. Serve as a basis for enhancement

    What should the SRS address?

    The basic issues that the SRS writer(s) shall address are the following:
    a) Functionality.
    b) External interfaces.
    c) Performance.
    d) Attributes.
    e) Design constraints imposed on an implementation.

    What are the characteristics of a great SRS?

    An SRS should be
    a) Correct.
    b) Unambiguous.
    c) Complete.
    d) Consistent.
    e) Ranked for importance and/or stability.
    f) Verifiable.
    g) Modifiable.
    h) Traceable.