In college I am doing an assignment about the differences between (non-)functional requirements. The problem statement is as follows:

Space Invaders is a single player game. After starting the game, the player selects a level of difficulty and starts playing the game. The player can steer a space ship to the left and to the right and can also shoot rockets. The goal is to destroy invaders. If a rocket hits an invader, the invader disappears and a crash sound is played. A game is finished when all invaders are destroyed. In this case the elapsed time for destroying all invaders is displayed. Each player has a personal score which can be compared with other players of the game. While the game is running, music is being played. The game can be paused, in which case the timer stops and the music stops playing. During the game, the player can always see the elapsed time and a counter of the destroyed invaders.

As far as I understand the definition, all requirements specifically listed on this statement are functional, and non functional would not be specified (availability, stability, etc.). Any thoughts?

  • 7
    I'd agree; there are no non-functional requirements in that statement. Non-functional requirements might include things like the ship responding without noticeable lag to eg the joystick being moved, the volume of the music should be appropriate to the environment and the ship, rocket and aliens should not flicker whilst being animated. There's nothing like that in that statement.
    – David Arno
    Commented Jun 1, 2017 at 11:59
  • twitter.com/kevlinhenney/status/423391443273920512?lang=en I really don't like the term "non-functional."
    – ngreen
    Commented Jun 1, 2017 at 16:04
  • There are definitely some usability, reliability, performance, and scalability requirements listed and/or implied in the description.
    – Mike
    Commented Jun 1, 2017 at 18:11

2 Answers 2


Every sentence in the statement is a functional requirement. They each state a function or behavior of the game. None of them are used to judge the operation of the game, which would be a non functional requirement.

Each statement says what the game should do only in reference to itself; making them functional requirements. They each state "what".

A nonfunctional requirement states "how much". It should respond in this amount of time or it should be secured by at least 128-bit encryption. There is another element that is referenced to judge if the criteria passed or failed


The first sentence is a non-functional requirement as it dictates the scalability requirements. As I stated in my comment there are other potential non functional requirements like the fact that the music should be playing presumably uninterrupted while other sounds happen. This seems like some kind of reliability requirement to me.

  • 1
    That a program fulfills its purpose and that it reliably fulfills it is indeed a thin line. Being really pedantic, reliably doesn't add any meaning in this case. I think however, that it is the definition of the functionality of the music. A reliability requirement would be that it has to stop in less than 5ms after the game is paused.
    – drilow
    Commented Jun 7, 2017 at 14:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.