Fog Creek Software
Discussion Board

requirements definition/spec

OK guys, boring question, but came up on past paper and darned if I know.
'Explain the difference between a requirements definition and a requirements specification. Give examples to illustrate your answer.'
Exam morning of Friday 5th (UK time)
Thanks in eager(?) anticipation


Wednesday, April 3, 2002

one of the documents defines the requirements, whereas the other one specifies them.
Hope this helps.

Wednesday, April 3, 2002

Intellectuals in every field,  unfortunately including c.s., like to mangle common vocabulary to their own divising.  The only difference between a definition and a spec is what the person in question is thinking when he/she says it.  They're making up vocabulary as they go along and calling it software engineering.  It's like fortune cookies - they sure do sound nifty on paper, but there's no "there" there.

Patrick Lioi
Wednesday, April 3, 2002


I would guess the answer is:

Requirements definition - defines what the system must be able to do, usually this document results from an analysis of the problem domain.

Requirements specification - a particular system design that meets the requirements in the requirements definition - i.e. how you are going to meet the needs set out in the requirements definition.

There are many solutions that could meet the needs in a requirements definition, so a requirements specification is still required to state how you intend to solve the requirements in this instance.

However, I agree with earlier comments that this is largely just quibbling over semantics.

Good luck with your exam

Thursday, April 4, 2002

Whoever is asking these questions is an ass.
I would throw this back at him.

Req. Definition - defines for the reader what the the word "requirement" is.  ie:  The requirements are what the system will need to do.

Req. Spec. - Details on what this system will need to do.

Thursday, April 4, 2002

I had a customer who told us what they wanted (a set of various DTMF digit sequences that should correspond to various commands). However their requirements (as specified) were somewhat ambiguous, and missing some details; so I (a developer) wrote what I thought they were asking for, in sufficient detail to be unambiguous (and which could therefore be used as a basis for development), and gave it back to them (for them to see what I was about to implement). *My guess* (as to the meaning of those terms) is that what they gave me was a specification; and that what I gave them, and used myself, was a definition. Note that I am not a CS major, and that Bella and Sherlock seem to be saying equal-but-opposite things about which is which; so don't expect everyone to share your understanding of this vocabulary unless you define it for them.

Christopher Wells
Thursday, April 4, 2002


I don't ever think someone asking a question is an 'ass'. 

Old proverb,
A person who asks a stupid question just looks stupid once, a person who won't ask the question remains stupid forever.

Besides, the fact that this question was enough to raise a couple of replies means that the answer wasn't obvious.


Thursday, April 4, 2002

Easy, Sherlock, no need to jump at Bella for that one. I am sure he (or is it she? can't tell by the name) did not mean Susie who brought this question to the forum, but her teacher, tutor or whatever who put it in the exam in the first place. We hope for the examiner that he or she does not ask questions in the exam to learn from the answers but knows the desired answers in advance :-)

It seems an unfitting question for an exam because there is no fixed meaning for either of the terms (as you can see by the replies already posted), a "right" answer to the question for that reason is only what the examiner understands them to mean.

Bella's suggestion would probably make that point clear to the teacher, but then, it might not be such a good idea  to state your oppinion on the quality of the question asked or the teachers competence to chose the right questions all to clearly in an exam.

So Susie, I fear there is no clear and globally valid definition for the terms "requirements definition" and "requirements specifications". The best thing to do is probably to try to look the terms up in texts written or provided by the person who asks the question. Otherwise you stand a pretty good chance  to give a different answer than he or she expects you to. (Different does not have to mean wrong but that is hard to explain in an exam, too).

Have fun and good luck on Friday,

Jutta Jordans
Thursday, April 4, 2002

What you need is the difference as specified by your text books :)

IMSE A Requirement is what a system is supposed to do.  It is the product of the first stage of a formal development process.  Once you have the requirement, you specify a system to describe how you are going to fil this requirment. 

However.  The Term specification can also be applied to a standard. J2EE and OLE DB are all excamples of this.  In this case, the specification specifies a set of interfcaes and how they are to be used.  Most of the Internet is specified this way.

I guess a shorter way to say it is that a specification is the interface between two systems.

Friday, April 5, 2002

*  Recent Topics

*  Fog Creek Home