Friday, April 17, 2020

Chapter- 11 Non-functional requirements


Non-Functional Requirements


 Non-functional requirements
Ans: Non-functional requirements define system attributes such as security, reliability, performance, maintainability,  scalability, and usability. They serve as constraints or restrictions on the design of the system across the different backlogs. They ensure the usability and effectiveness of the entire system. Failing to meet any one of them can result in systems that fail to satisfy internal business, user, or market needs, or that do not fulfill mandatory requirements imposed by regulatory or standards agencies. Proper definition and implementation of NFRs is critical. Over-specify them, and the solution may be too costly to be viable, under- specific or underachieve them, and the system will be inadequate for its intended use. An adaptive and incremental approach to exploring, defining, and implementing NFRs vital skill for Agile teams.


 Difference between functional and non-functional 
requirements
Ans: Functional Requirements: Functional requirements specifies a function that a system or system component must be able to perform. It can be documented in various ways. The most common ones are written descriptions in documents, and use cases. Use cases can be textual enumeration lists as well as diagrams, describing user actions. Each use case illustrates behavioural scenarios through one or more functional requirements. Often, though, an analyst will begin by eliciting a set of use cases, from which the analyst can derive the functional requirements that  must be implemented to allow a user to perform each use case. 
Non-functional requirements: Non-functional requirements are any other requirement than functional requirements. This are the requirements that specifies criteria that can be used to judge the operation of a system, rather than specific behaviours. Non-functional requirements are in the form of system shall be, an overall property of the system as a whole or of a particular aspect and not a specific function. The system's overall properties commonly mark the difference between whether the development project has succeeded or failed.


Use Case model
Ans: A use-case model is a model of the system's intended functions and its surroundings, and serves as a contract between the customer and the developers. Use cases serves as a unifying thread throughout system development. The same use-case model is the result of the requirements discipline, and is used as input to Analyses & Design and Test disciplines.
There are many ways to model a systems, each of which may serve a different purpose. However, the most important purpose of a use-case model is to communicate the system's behaviour to the customer or end user. Consequently, the model must be easy to understand.




Examples of Non-Functional requirements
Ans: Users must change the initially assigned login password immediately after the first successful login. Moreover, the initial should never be reused. Employees never allowed to update their salary information. Such attempt should be reported to the security administrator. Every unsuccessful attempt by a user to access an item of data shall be recorded on an audit trail. A website should be capable enough to handle 20 million users with affecting its performance. The software should be portable. So moving from one OS to other OS does not create any problem. Privacy of information, the export of restricted technologies, intellectual property rights, etc. should be audited.



Advantages and Disadvantages of Non-functional requirements.

Ans: Advantages:
  • The nonfunctional requirements ensure the software system follow legal and compliance rules.
  • They ensure the reliability, availability, and performance of the software system
  • They ensure good user experience and ease of operating the software.
  • They help in formulating security policy of the software system.
Disadvantages:
  • None functional requirement may affect the various high-level software subsystem
  • They require special consideration during the software architecture/high-level design phase which increases costs.
  • Their implementation does not usually map to the specific software sub-system,
  • It is tough to modify non-functional once you pass the architecture phase.

3 comments:

  1. In Microsoft, the non-functional requirements indicates the qualities of product that put it in another way. Functional requirements are those which describes the specific behaviour of system when the conditions met . Whereas the non-functional requirements in which the system should behave and its limits are on functionality. A use-case model is that types of users which the system's interaction for the solution of problem.

    ReplyDelete
  2. When it comes to the results of non-functional requirements (NFR) Microsoft has some clear examples to show its superiority. Being one of the fastest operating systems Microsoft shows that it has high performance. At the same time, Microsoft Explorer and Microsoft edge are the critically known for being easy to use and user friendly. Third, Microsoft is known for constantly releasing new patches and updates to solve any bugs in their systems. These statistics along with many others prove that Microsoft is focused and involved with NFR's.

    ReplyDelete
  3. The non-functional requirements describe the qualitative behavior, or the “how well” qualities, of the product—whether it has to be fast, or safe, or attractive, and so on. These qualities come about because of the functions that the product is required to carry out. Also, non-solution requirement would naturally accommodate touch screen and direct finger manipulation of the content, or even eye-movement detection.

    ReplyDelete

Chapter - 12 - Fit, Criteria and Rationale

Fit, Criteria and Rationale Formality Guide A pleasing aspect (amongst many) of Kent Beck’s extreme Programming technique is its i...