What is so-called functional and non-functional (quality) requirement?

Asked

Viewed 225 times

1

Contextualizing the question

While studying software engineering some time ago, in the classroom a request was made formal and informal explanation regarding what would be a non-functional requirement along with a example to better explain the content.

In trying to explain with my words on the concept of non-functional requirements, the synthesis was thus:

Option 1

Requirement does not work is that event that cannot be predicted by the system so that the system may not be able to solve it because it is an unpredictable event. The System can solve the problem through an event partially but never totally, because if it could solve it would be a functional requirement.

Option 2 (Correct)

The RF (Functional requirements) apply when users interact directly with the system through events, and when some interaction occurs indirectly but that affects the user in this case applies the concept of RNF (Requirements Non functional)

Context of an example used

The example:

Imagine that your system should be able to register all possible flights between all national trips, so it should be able to inform the time of embarkation and disembarkation, the flight number, whether it will make connection or air bridge among other details... The system should be able to readjust flight schedules in case of delays.

Based on this small context we can list some RF(Functional Requirement).

RF01: Register flights

RF02: Register passengers

RF03: Register routes

RF04: Register Brazilian states (places of origin and destination)


Now going to the dark side of the force, an example of RNF(Non-functional Requirement)

RNF01: Prevention of delays.

Examples of the reason for a delay: Bad weather, delay or even cancel the flight.

Doubt

About that explanation of non-functional requirement and the respect for example used, it is correct to state both are indeed correct?

At the time the activity was not corrected and I was in doubt, and today while studying again about the content, I came across the need for an answer.

  • It is not an issue properly classified as software project. Removing this tag may make it easier to locate issues.

1 answer

2

Regarding that explanation of the non-functional requirement and the to the example used, it is correct to state both are in fact correct?

No, actually non-functional requirement does not have to do with events that cannot be predicted, first let’s see the definition of requirements:

Non-functional requirements, "are requirements related to the use of the application in terms of performance, usability, reliability, security, availability, maintenance and technologies involved. These requirements relate to how the functionality will be delivered to the software user." That is to say, non-functional requirements are requirements where the user does not interact directly with it.

Functional requirement, "defines a function of a software system or its component. The functional requirement represents what the software does in terms of tasks and services." That is to say, functional requirements are requirements where the user interacts directly with him, as you said, flight registration, passenger registration...

In your example, I would change the RNF01 to be something like, "If weather conditions are not favorable, all flight delay processing must be performed in less than 20 seconds"

In the example above, it has nothing to do with the fact that the weather condition is bad, but rather with the fact that, implicitly, without interaction with the user, all flights are rescheduled in a certain period of time.

  • I disagree that delay flights in case of bad weather is RNF. For me this is an action that the stakeholder wants the system to do, ie RF. Now the requirement of the system to be robust, responsive (in the sense of having quick response) and with easy-to-maintain code would be RNF (i.e., the "ways" the system will deliver its RF).

  • From the answer presented, it is possible to conclude that functional requirements apply when users interact directly with the system through events (or some action), and that when some interaction occurs indirectly but affects the user, then apply the concept of FRR (case of flight delay for example). that’s it?

  • @Piovezan, my intention was not the requirement itself, but all the processing behind it and the implicit form it makes, I think I was not happy in the example. (requirement badly raised) ;P, Editei, see if it got better, please.

  • @Jonathasb.C. This is the idea, but it is independent of external conditions that the system foresees or not. Roughly speaking. is that which is not functional for the user.

  • @Barbetta got better, however as for the example of sending email to RNF I’m in doubt. I looked at the wikipedia in English and doesn’t seem to fit into any of the cases mentioned in it. RNF usually refers to software "qualities", such as being portable, being robust, already sending email is not a quality, it would be RF too.

  • @Piovezan I think I’m very bad requirements today, the idea of sending email is usability of sending email, and also security of registration confirmation. I believe that it is better to remove this part so as not to generate confusion.

Show 1 more comment

Browser other questions tagged

You are not signed in. Login or sign up in order to post.