Requirements – Difference Between User Requirements and System Requirements

Requirementssystemusers

From what I've read I believe user requirements are just the system requirements given in lay mans terms, is this correct? I'm specifically referring to the book "Software Engineering" by Ian Sommerville which I am obligated to follow. Given the example below from said book, why is there not a user requirement to match the second system requirement. For example "the user requires the report to be generated after 17.30 on the last working day of the month." To me that is still in natural language so it is readable by the user. How much detail should be included in a user requirement vs system requirement and where do you draw the line?

User Requirement Definition:

1. The MHC-PMS shall generate monthly management reports showing
   the cost of drugs prescribed by each clinic during that month.

System Requirements Specification:

1.1. On the last working day of each month, a summary of the drugs
     prescribed, their cost, and the prescribing clinics shall be generated.
1.2. The system shall automatically generate the report for printing after
     17.30 on the last working day of the month.

Best Answer

I'll speak to your examples.

The first example of a "user requirement" is more like a wish or "feature." The way you can tell the difference between a feature and a requirement is that there's enough detail in the requirement to make it testable. Requirement 1 is not testable because, well, it's a wish. "I wish that the system had some reports for the managers." How do you know that the requirement has been achieved, that you can declare success?

Requirement 1.1 is testable because you can wait until the last working day of the month, and see if a report is generated on that day (or you can inject dates into the system and observe its behavior).

Requirement 1.2 is testable for the same reasons.

Neither system requirement, however, tells you what the reports should look like, how the data is laid out, or how the calculations are made; they only describe the reports in general terms. In practice, there will be a Software Design Specification of some sort that tells you in detail what these reports will look like.

Related Topic