0
7.8kviews
What do you mean by requirements?Explain Functional and Non-Functional requirements in detail.

Mumbai University > Computer Engineering > Sem 6 > Software Engineering

Marks: 10 Marks

Year: Dec 2016

1 Answer
1
149views

Requirements:

A requirement is a written description of a characteristic or capability that a new or upgraded product design must incorporate. They are often quite detailed, and describe what must be provided, not how it is to be provided. In other words, they exclude implementation details. Requirements, and the documents they appear in, are legally binding so the language used for them is very specific. In particular, a requirement that must be provided includes the words shall, or will.

Functional Requirements:

  • In Software engineering and systems engineering, a functional requirement defines a function of a system or its component. A function is described as a set of inputs, the behavior,and outputs.
  • Functional requirements may be calculations,technical details,data manipulation and processing and other specific functionality that define what a system is supposed to accomplish.Behavioral requirements describing all the cases where the system uses the functional requirements are captured in use cases.
  • Generally, functional requirements are expressed in the form "system must do <requirement>", while non-functional requirements are "system shall be <requirement>".
  • The plan for implementing functional requirements is detailed in the system design. The plan for implementing non-functional requirements is detailed in the system architecture.
  • A typical functional requirement will contain a unique name and number, a brief summary, and a rationale. This information is used to help the reader understand why the requirement is needed, and to track the requirement through the development of the system.
  • The crux of the requirement is the description of the required behavior, which must be clear and readable. The described behavior may come from organizational or business rules, or it may be discovered through elicitation sessions with users, stakeholders, and other experts within the organization.

Non-Functional Requirements:

  • In systems engineering and requirements engineering, a non-functional requirement is a requirement that specifies criteria that can be used to judge the operation of a system, rather than specific behaviors. They are contrasted with functional requirements that define specific behavior or functions.

  • Non-functional requirements are often called "quality attributes" of a system. Other terms for non-functional requirements are "qualities","quality goals","quality of service requirements","constraints" and "non-behavioral requirements".

  • Qualities that is non-functional requirements can be divided into two main categories:

  • Execution qualities, such as security and usability, which are observable at run time.

    1. Evolution qualities, such as testability, maintainability, extensibility and scalability, which are embodied in the static structure of the software system.
  • Examples

    A system may be required to present the user with a display of the number of records in a database. This is a functional requirement. How up-to-date [update] this number needs to be, is a non-functional requirement. If the number needs to be updated in real time, the system architects must ensure that the system is capable of updating the [displayed] record count within an acceptably short interval of the number of records changing.

    Sufficient network bandwidth may be a non-functional requirement of a system.

Please log in to add an answer.