Requirements Documentation – Is a Functional Spec Part of the System Requirement Spec?

documentationRequirementsspecificationstestingwaterfall

I wonder, sources like wikipedia or templates I found shows that Functional spec is a part of System requirement documents. I always thought that SRD is just overall decsription of the system, with all functional and non functional requirements. Yet I thought that Functional spec is more detailed and it is a separate document, while SRD is high level customer-created description (how is this one called then?)
Could anyone help to make this clear for me?

Best Answer

Disambiguation

  • System Requirements (used in systems engineering)

  • Software Requirements (used in software engineering)

Main Answer

System requirements outline the requirements for the whole system. A system is a set of hardware and software to support a specific business need.

Software requirements are only concerned with software. They are much more detailed than system requirements, so that the software can be actually built from these.

The Software Requirements Specification (SRS) is a standard: IEEE 830-1998. Functional requirements are a part of this standard.

Functional specification is a separate document which is no longer used today (at least in Software Engineering). It was a standard at times when waterfall was used as the best-known technique, and before the IEEE Software Requirements Specification became a standard. The SRS has replaced it because functional requirements are now defined as a part of a larger document (software requirements).

At the dark times of software crisis, I believe that functional specification was the best they knew (without all these amenities the full SRS gives us). They thought software requirements specification is only a specification of required functions. Today we know there is more to it. (see the SRS)

History and Current Use of the SRS

The SRS is from 1998 and it wasn't meant for OOP. I've used it in my company, but only as a basis for customization. Instead of describing functional requirements using natural language, like the old functional specification document, I've used UML (use case diagrams). This is something that wasn't considered by 1998 yet, so that engineers still described the needs quite inefficiently.

Conclusion

Functional specification is a part of the software specification document. The document is useful, but I wouldn't recommend adopting it as-is because it was defined in 1998; instead, I suggest considering UML where appropriate to replace natural language specification.

References

http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=720574

http://en.wikipedia.org/wiki/Software_requirements_specification

http://en.wikipedia.org/wiki/Use_case

http://en.wikipedia.org/wiki/Functional_specification

Related Topic