Requirements Gathering and Analysis: Non-Functional Requirements

1875348372 3006ccef2e Requirements Gathering and Analysis: Non Functional Requirements

I discussed non-functional requirements in my previous post “15 Areas to Think About When Writing Non-Functional Requirements.” Non-functional requirements are the requirements that stakeholders and users haven’t thought of, but you have to because without them, the system will fail. If you don’t collect non-functional requirements, then you will not be creating a system that behaves in the way the users need it to.

Here are the main non-functional areas.  For more detail, check out my previous blog post:

Reliability

You want to document how reliable the system is.  If the system were to fail, what kind of damage would it cause? There are some systems that are vital for our national security, so if it failed, would it cause human loss? Now you see how important it is to capture reliability.  Well, I’m not saying your system is a life-and-death type of system. wlEmoticon smile Requirements Gathering and Analysis: Non Functional Requirements You want to ensure that you collect the following type of information:

  • Mean Time Between Failure
  • Mean Time To Failure
  • Mean Time To Repair

Recoverability

If the system fail, how fast could you get up and running? This is the type of requirements you want to collect when thinking about recoverability. You want to think about different worst-case scenarios, and the levels of recoverability that could be possible.

System Availability

System availability is just that. When is the system available? Don’t just say, “Well, why not 24 hours, 7 days a week?” You have to think that you will have to run maintenance.  You don’t want users yelling at you because the system was not up and running when they needed it. Think of a good timeframe, and stick to it.

Fault Tolerance

Fault Tolerance makes you think about the different functions and in what ways they will still be available if the system fails.

Response Times

Different data calls will have different times that users will expect to get the information on their screens.  You want to capture the different response times.  Response times will different for querying, reporting, updates, etc. Therefore, you really have to do your research.

Capacity

Capacity is the amount of data, concurrent users, and transactions you think you will be happening in the system.



Tags: , , , , ,