Posted at 12.31.2018
One of the primary responsibilities of necessity engineer is the elicitation of useful and non-functional requirements. Functional requirements outlines the functionality, the machine must be performed while non-functional requirements (NFRs) impose the constraints upon this functionality. Software market is increasing its demand for not only the desired efficiency but also the need of non-functional requirements such as security, usability, performance, privateness etc. The existing practice on the market is to cope with efficient requirements as first class requirements while non-functional requirements are only catered at design and implementation level. This process leaves a serious flaw in the machine design towards user satisfaction and frequently ends in the failure of projects such as the classic example of London Ambulance System. The chances of software success can be maximized when working with NFR at the requirements level. This literature survey is an initial effort of its kind to seek key NFR obstacles and problems while elicitation degree of requirement engineering. In addition, it find-outs the techniques and methods that are suggested in literature to cope with these issues.
Keywords: Requirement Anatomist, Non-Functional Requirements, Books Survey, Methods, Techniques, Issues.
The success of a system generally depends upon the degree of satisfaction it offers to its users. Fulfillment of requirements is one the solution towards this satisfaction. The common industry practice is to generally focus on efficient requirements and other important concepts such as non-functional requirements aren't considered till the look and development. This process leaves a serious flaw in the resultant system because many stakeholders' personal preferences and their specs are not totally addressed.
Non-functional requirements (NFRs) can be an important theory in requirement anatomist which performs an important role in the success of something . Inconsistency or ambiguity in NFR often ends up with the failure of the system including the famous example of London Ambulance System . Recent research in need engineering has centered on the need of the software that meets an individual requirements but also copes with non-functional requirements such as stability, security, performance as well as others . These requirements should be cured from the beginning of software development process, throughout the whole life routine  .
From the perspective of existing literature, most of the work, focused on working NFR, continues to be partial and incomplete. Incorporating NFR into different stages of software development process continues to be a difficult process. Experts face numerous challenges including great diversity of NFRs, formal specs of requirements, NFRs subjective aspect, adding these requirements into models used for specifying functional requirements and resolving issues among NFRs . A lot of the work comes from Chung's NFR platform , but it lacks the integration of NFR into conceptual methods .
This research work, based on a literature study, recognizes some key issues and issues while elicitation and analysis of non-functional requirements. It also find-outs the strategies and methods that are recommended in literature to deal with these issues. Our literature survey is based on the following two research questions:
Research Question 1: What exactly are the problems, problems and issues while elicitation of Non-Functional Requirements ?
Research Question 2: What are the techniques / strategies for the elicitation of NFRs?
Although some quality work has been done for development of NFR elicitation tools including the Language Expanded Lexicon (LEL) , but it was not our primary concentrate, so such work was not included in this literature review.
This newspaper is organized as follows. Section 2 briefly reviews some of the books and background material. Section 3 synthesizes the results that were extracted from the prevailing literature predicated on our research questions. To summarize, we summarize our research and discuss various issues left available in the existing research.
The current commercial practice is to specify only useful requirements at the original of software development process . Non-functional requirements are not even considered as second school requirements; they are usually evaluated in the final product. Because of this, initial levels of software development (elicitation and analysis) might not exactly represent the NFRs properly and so may result in a product that will not fully address the requirements of a consumer .
In order to solve this problem, different research workers have created an over-all awareness that non-functional requirements should be tangled up with functional requirements   . It has been concluded to consider / elicit NFRs and also other requirements right from the beginning of need elicitation and analysis. Different solutions have been suggested which range from unstructured and informal text message to highly formal mathematical techniques . These techniques generally be based upon the goals of the task and available resources. In general, these techniques can be classified in the next categories:
Goal driven solutions (possibly along with use situations) by using catalogues/ Catalogue of reusable goals;
Aspect focused / View point oriented approaches;
Templates and Habits based solutions;
Use situations and misuse circumstances based solutions; and
The NFR Platform is the most popular work to model and analyze non-functional requirements. It snacks NFRs as tender goals (goals that are hard expressing) to be resolved during the development process . The NFR platform consists of five major components: softgoals, contributions, methods, correlation guidelines, evaluation technique.
The Construction makes the interactions between your NFRs and planned decisions explicit. This approach helps understanding the impact of multiple design decision positively or adversely. This broadly accepted construction has been explored and reused by many authors.
Figure 1 shows the softgoal interdependcy graph suggested by chung. In using the NFR Platform, one constructs an initial softgoal interdependency graph by figuring out the key non-functional requirements that this system under development should meet. In the credit-based card system example (as given in the amount), these can include security of account information and good performance in the storing and updating of that information. These non-functional requirements are then treated as softgoals, to be achieved, i. e. , they can be goals which need to be clarified, disambiguated, prioritized, elaborated after etc. Next step is the decomposition of requirements that are very broad and abstract and assignment priorities to them. At some point, when the non-functional requirements have been sufficiently processed, one will in a position to identify possible development approaches for obtaining these NFRs and then choose specific alternatives for the mark system .
Figure 1. Softgoal Interdependency Graph
( reproduced from  )
Luiz Marcio et al.  present a reusable catalogue with strategies to satisfice usability requirements. Their goal of study is creating a useful ontology or classification of measurable aspects that can be used to aid in the standards of usability requirements. These ontologies should be represented in a way that helps their use as recommendations for certain requirements elicitation process. Their work is built on review of literature in the region of human computer conversation and the emerging field of usability anatomist in creating a catalogue used to guide the requirements engineer through options for reaching usability.
Although goal-oriented method can support the elicitation of NFRs in the same way as FR's elicitation, it lacks the integration of NFRs into FRs and to get an integrated description based on the use conditions .
Use cases derive from the idea of describing a system's desired behaviour by mentioning a story (along with alternatives and exceptions) and associated information from point of view of an external entity (acting professional). Misuse instances are based on the idea of negative situations i. e. a situation desired never to take place by an acting professional. Misuse situations (predicated on negative situations and malign stars) can boost the elicitation process by figuring out and analysing dangers to system procedure. They threaten use situations with inability, and appropriate use situations can mitigate known misuse situations. Misuse cases appear by natural means to lead to non-functional requirements such as for security and safety. In , the creators outline ideas for an examination of NFRs of any software system and create a misuse based way for deriving in depth NFRs.
Much research work has been influenced by the quality feature taxonomy. J. D¶rr et al.  sketch an approach developed in the framework of the EMPRESS job, for eliciting and documenting efficiency requirements in collaboration with use circumstances and a high-level structures. Their approach is based on the use of a quality model and quality feature types to capture general knowledge on NFRs, while specific NFRs are captured in a template. This process is dependant on some basic characteristics that may be generalized to other NFRs such as trustworthiness requirements.
Templates and Habits are an improved solution for managing the complexness of non-functional requirements elicitation process. In  and , the writers have considered usability features as practical usability requirements using habits which may have been termed usability patterns to elicit requirements. The target is to propose artefacts (patterns) for reusing usability knowledge and promoting developers through the usability requirements elicitation level. These patterns (Reviews, Undo/cancel, User input error elimination, Wizard, Account, Help, Command line aggregation) will have the ability to be used to extract everything required to fully and unambiguously designate the system's usability features.
Figure 2. Process of eliciting the usability requirements
( reproduced from  )
Figure 2 identifies the process of combining usability features for software features at the requirements elicitation stage. The usability requirements elicitation patterns can be put into the mechanisms and techniques to be used in the process of eliciting the requirements of the new software system to be developed and be used to identify all the usability requirements which have a direct effect on system architecture .
I. Sommerville et al.  have released a procedure for multi-perspective requirements executive (PREview) which has been suitable for industrial use. The creators proved how 'concerns', which are fundamental business drivers of certain requirements elicitation process, may be used to elicit and validate system requirements. They can be decomposed into questions which must be answered by system stakeholders. The proposed procedure helps enhance the quality of requirements specs by providing a platform for requirements elicitation, examination and negotiation and support evaluation based on the key business concerns which define the success or failing of a project.
In , the writers have presented the secure software development process AEGIS, which gives important tools for growing secure and functional systems. They may have defined a UML meta-model figuring out assets, the framework of operation and aiding the modelling of security requirements. This semantics allows the designers and the users to formulate constraints and needs for the security aspects of the system in a straightforward but clear way. By modelling the framework in which the system operates and the interactions of the operatives and the investments of the machine, this notation also allows the documentation of usability needs.
NFRs are generally regarded as quality attributes or constraints on the software. They are normally hidden somewhere in the program specifications, or brought up by means of feedback or special requirements. Consequently NFRs are generally dismissed or even forgotten resulting in changes in software that will need place after the software was deployed. It's been observed that the corrections of NFRs are much more expensive and difficult to correct. Not eliciting NFRs or eliciting it inconsistently has led to the failure of several software assignments. NFRs have incredibly received little attention in the literature and are much terribly known than other less critical areas of the software development .
Elicitation of NFRs is not a straight-forward activity. NFRs are scattered to the functional requirements so called cross-cutting concerns to the FRs. Elicitation approaches which deals with producing requirements can run the chance of fabricating requirements which can be ambiguous to an individual community. The elicitation issues mentioned in  are :
Problem of range;
Problem of understanding; and
Problem of volatility.
These issues of elicitation are common both in functional and non-functional need elicitation. For non-functional requirements elicitation, we have found the following issues as cited in the books:
Integration of NFR with FR;
Conflicts of Requirements; and
Ambiguously standards of the system's features.
Although Non-functional requirements have been increasingly accepted as the critical success way of measuring the success of the jobs, it is under less concentration in the industrial routines of software development compared to functional requirements. There are several guidelines open to sketch and model functional requirements i. e. UML views like use instances. Explicitly dealing with NFR and specifying NFR in concert to FR is a still a future research area. In most of the cases, NFRs are written by means of special requirements used cases which informal procedure leads towards different problems in the later periods of software development such as requirement tractability. All NFRs cannot be treated in the same way, for occasion usability and security requirements need to be treated differently. The different communities concentrating on different NFRs exemplify this. Thus, it appears difficult to determine one way to deal with all NFRs  .
Views and choices of different stakeholders in the elicitation of functional and non-functional requirements are usually different. NFR elicited from different stakeholders can be in conflict with each other. An NFR can hardly ever be said to be satisfied. That is, treating NFRs as goals we bring the idea of incomplete satisfaction (satisfice) to make reference to the alternatives that are sufficient even if they are not ideal . So, the conflicts should be explicit including all the produced dependencies. Furthermore the decisions to solve the conflicts should be based on the get ranking of priorities .
Certain features / quality attribute must be given in a formal and regular way so that they may be properly mirrored in the machine under development. These concerns are usually of highest concern and the absence / insufficiency /inconsistency of the requirements normally ends in something where consumer satisfaction remains a question mark. Some of the important attributes based on books work are as under:
Usability plays an important role in the success of something as it is highly influences the acceptance of the machine by customers. Users can range between beginner to experts and can have different levels of experience, knowledge and competence. In most cases, neither users nor designers are good sources of the information you can use to designate a usability feature. Dealing with usability features in isolation does not provide coders with enough information in what kind of artifacts to make use of to gratify such requirements . A lot of the research in usability issues is focused on providing a much better interface (UIs), but there is a need of organized approach to analyze and model usability in the first stages of software development along with efficient requirements.
Security, being a largely neglected area in need engineering, has become an extremely growing concern in the information age. Keeping hypersensitive information secure is more and more important within the framework of electronic commerce applications . Usually security requirements are given at later phases of development; leads to the bargain on system's vulnerability. The number of security situations reported has been growing exponentially over the past decade. Attackers can exploit many weak points in the system if the integrity and security requirements are not properly identified and ensured in the system. The elaboration, specification, analysis and records of application-specific security requirements can be an area that is left virtually unexplored by requirements engineering research up to now .
Privacy requirements play a critical role in the non-public information system that deal with human-subjects data. These requirements catch privacy goals and their associated methods for something under development. To be able to ensure privacy we must identify the elements that dictate safeguard for hypersensitive information. The id of such elements is not a straight forward process. These elements are normally difficult to amount and precisely designate. There is a need for organized approaches for reasoning, modeling and studying privacy from the first stages of the software development .
The following desks list some of the results that were concluded on the basis of this literature study. Stand 1 illustrates an integral part of available literature based on our research questions. Table 2 shows the relevant studies along with proposed approaches to manage the NFR elicitation issues, mentioned in the literature.
Eliciting Efficiency Requirements with Use Cases
An methodology developed in the framework of the EMPRESS task, that allows efficiency requirements to be elicited together with use case .
Abstraction levels for the elicitation and alignment of FR, NFR and AOs;
Views of different stakeholders in the elicitation of NFRs, FRs;
Identification of dependencies among FRs, NFRs and AOs; and
Compact description of the solution space
1. Usage of an excellent model and quality attribute types to fully capture basic knowledge on NFRs, while specific NFRs are captured in a template.
2. A detailed checklists how to elicit NFRs in collaboration with use circumstances and architecture.
A Framework for Integrating Non-Functional Requirements into Conceptual Models
Presents a construction for integrating NFRs in to the ER and OO models .
Search for NFRs can be harder since neither the stakeholders nor the requirements engineers are being used to dealing with them
Combination of the LEL and ethnography. Proposed The Non-Functional Model. The strategy is
Catalogue NFR knowledge utilizing a tool that expands the principles of the LEL to signify knowledge of NFRs;
A strategy for searching for NFRs in the UofD using the knowledge base as well as elicitation methods suited to NFR acquisition; and
Represent these NFRs using an adaptation of the NFR graph suggested by Chung.
Non-Functional Requirements Engineering - Quality is Essential
Defines the requirements on the NFR method, compare this with current approaches and sketch ideas how to fill the gap between the current methods and their requirements .
Scenarios, ethnographical options for elicitation. A useful template requesting specific NFR is VOLERE.
WinWin-approach (group decision), Aspect-oriented solutions algorithms and tools such as QARCC for the management of issues.
Non-Functional Requirements: Size Measurement and Evaluating with COSMIC-FFP
This paper plays a part in the achievement of more correct project size dimension through incorporating NFRs into the efficient size quantification process .
Every system goal cannot be entirely satisfied, tradeoff must be made; the procedure is informal, it leaves the data and the rationale that resulted in decisions undocumented. This helps it be difficult to track back to the selection criteria which the decisions were developed.
Integrating FRs and NFRs: A Use Case and Goal Motivated Approach
In order to encourage experts to target more on much deserved NFRs, there is a need for frameworks to give a smooth move from the utilization circumstance modeling. This newspaper proposes such a platform for integrating NFRs with FRs in the use case model .
Description of NFR is mentioned in special requirements section of use case information; this technique is manual and problem prone as the process is manual and thorough proof read of all use case information is required due to the lack of visual representation of NFR in the UML models.
Use circumstance and goal-driven framework for integrating FRs and NFRs.
Transformation Based Approach for Weaving Use Case Models in Aspect-Oriented Requirements Analysis
This paper discusses approaches for combining non-functional requirements (NFRs) with practical requirements (FRs) in requirements analysis stages, based on aspect-oriented methodology .
It is issues to embed the elicited NFRs in to the FRs and get a built-in description based on use case modeling, because the NFRs are scattered to the FRS, so called cross-cutting concerns to the FRs.
Goal-Oriented Examination and Use Conditions.
Evaluating the Effectiveness of Using Catalogues to Elicit Non-Functional Requirements
Understanding what the software must implement in order to handle the needs is a challenging process. One way of addressing the need for help on NFR elicitation is the use of catalogues. It really is shown that groups using catalogues performed significantly better .
When the requirements engineer chooses to satisfice (operationalize) a non-functional need he may cause conflicts with other nonfunctional requirements.
The paper presents a platform for reusing knowledge on satisficing NFRs for goal-oriented techniques (Based on NFR Construction) with Use of catalogue.
Reusable Knowledge for Satisficing Usability Requirements
It is essential to build up a useful ontology or classification of measurable areas of usability you can use to aid in the specification of usability requirements. These ontologies should be represented in a way that facilitates their use as guidelines for the requirements elicitation process .
In order to ensure functional systems we should ensure recognition of appropriate requirements regarding these critical areas of systems. However, lots of difficulties are present, for example it may be difficult to quantify and specifically specify these features in software systems.
In this catalogue, usability is interpreted by refining it into subgoals and subsubgoals.
Non-Functional Requirements: From Elicitation to Modeling Languages
This work is aimed at filling this difference, proposing a strategy to elicit NFRs and combine them into conceptual models .
Lack of integration of NFRs to functional requirements ends up with conceptual models can bring about projects that will take additional time to be concluded, as well as to bigger maintenance costs.
Identifying Aspectual Use Instances Using a Viewpoint-Oriented Requirements Method
The crosscutting character of requirements can be been able using aspect-oriented ideas. Aspects could be integrated to Eyesight, a viewpoint-oriented requirements method that combines UML models .
NFRs can issue with each other
Vision (Viewpoint-oriented requirements strategy with UML that was extended to add aspect-oriented principles). Proposed NFR Template.
A Study of Non-Functional Requirements in Software Development Process
This survey newspaper reviews the NFR ideas, relates those to the entire software development process and identifies new areas of further work .
NFRs are subjective nature, officially specifying requirements, combining these requirements into models used for specifying useful requirements and resolving issues among NFRs.
RESPONSIBILITIES INSIDE THE USABILITY REQUIREMENTS ELICITATION PROCESS
Details an approach to offer with usability features in the early software development periods. The authors consider usability features as practical usability requirements using patterns to elicit requirements, used to draw out all the information required to totally and unambiguously identify the system's usability features .
Proposed artefacts (habits) for reusing usability knowledge and encouraging developers through the usability requirements elicitation stage.
Proposed habits include:
Feedback, Undo/cancel, End user input error reduction, Wizard, User profile,
Help and Command word aggregation.
Elaborating Security Requirements by Construction of Intentional Anti-Models
The paper reveals a constructive approach to the modeling, specs and examination of application specific security requirements. The method is dependant on a goal-oriented framework for producing and resolving obstacles to goal satisfaction .
Requirements need to be explicit, precise, enough, non-conflicting with other requirements and complete.
Proposed Specification Patterns for Security Goals. The habits are associated with specializations of the SecurityGoal meta-class, specifically, Confidentiality, Integrity etc.
Identifying Stakeholders and Their Preferences about NFR by Comparing Use Case Diagrams of Several Existing Systems
Presents a strategy to identify stakeholders and their preferences about non-functional requirements by using use case diagrams of existing systems. They focus on the changes about NFR. Evaluating different use case diagrams of the same domain helps us to find the changes that can occur. They utilize the Goal-Question-Metrics (GQM) solution to identify variables that characterize NFR .
Identify stakeholders and their personal preferences about non-functional requirements using use circumstance diagrams of existing systems.
Misuse Cases Help to Elicit Non-Functional Requirements
The proposed methodology analyses Use and Misuse Cases in a game-like collection to find successively more detailed risks and NFRs to mitigate these dangers. Misuse Cases seem to be obviously to lead to Non-Functional Requirements (NFRs) such for security and safety .
Use Situations and Misuse instances to elicit Non-Functional Requirements.
Experiences in Eliciting Security Requirements
In this short article, the author identifies a trade-off research that he used to choose a suitable requirements elicitation method and presents results complete from a case study of 1 method and some two other methods, used in some case studies .
Elicitation Methods for Security:
1. Misuse Cases
2. Quality Function Deployment
3. Governed Requirements Expression
4. Soft Systems Methodology
5. Joint Software Development
6. Feature-Oriented Domain Analysis
7. Critical Discourse Analysis
8. Accelerated Requirements Method.
A Requirements Elicitation Approach Based in
Templates and Patterns
Presents requirements layouts that can improve requirements elicitation and manifestation, and two kinds of habits: linguistic patterns, which are extremely used phrases in natural terms requirements information, and requirements patterns, which are universal requirements web templates that are located very often during the requirements elicitation process and that may be reused with some version .
Requirements designers do not usually have good writing skills, and sometimes semantically appropriate requirements, indicated in natural vocabulary, are not grasped due to way they may be written. Current elicitation techniques such as Joint Program Development (JAD), brainstorming or interviews do not addresses requirements appearance.
Proposed Non-functional Need Template.
The Treatment of Non-Functional Requirements in MIKE
In this paper it is shown how non-functional requirements are modelled in MIKE, a procedure for the introduction of knowledge-based systems .
Proposed NFR Framework for providing the vocabulary to express NFRs in a organised way.
Integrating Security And Usability Into The Requirements And Design Process
Describes AEGIS (Appropriate and Effective Instruction for Information Security), a technique for the development of secure and functional systems .
Viewpoints for requirements elicitation: a useful approach
Introduces an approach to multi-perspective requirements anatomist (PREview). The authors show how 'concerns', which are key business drivers of the requirements elicitation process, enable you to elicit and validate system requirements. They may be decomposed into questions which must be answered by system stakeholders .
Reusable Knowledge for Reaching Privateness: A Canadian Health Information Systems Perspective
There is a dependence on systematic solutions for reasoning, modeling and inspecting privacy from the early stages of the program development. It is necessary to build up a useful ontology or classification of measurable aspects of privacy that can be used to aid in the specification of level of privacy requirements .
Privacy requirements may be difficult to quantify and precisely specify.
The work, built using the i* framework, presents a reusable knowledge foundation exhibiting possible alternatives to operationalize personal privacy requirements utilizing a Privacy Catalogue.
The Use of Goals to Draw out Privacy and Security Requirements from Coverage Statements
Addresses the utilization of goals to extract non-functional requirements from insurance policy statements. It reveals a listing of a goal-based procedure for extracting standard security and level of privacy requirements from plan claims .
By utilizing the collection of reusable level of privacy and security goals, requirements engineers and policy creators can identify potential issues and inconsistencies within insurance plan claims and between system requirements and regulations.
Guidelines for Eliciting Usability Functionalities
Discovering and documenting usability features is likely to be beyond the usability knowledge of most requirements designers, coders, and users. It proposes a strategy based on producing specific recommendations that capitalize upon important elements recurrently intervening in the usability features elicitation and specs process. The use of these suggestions provides requirements analysts with an understanding repository .
In most circumstances, neither users nor programmers are good sources of the information had a need to completely identify a usability feature. Users know do not really know what kind of reviews can be provided, . Neither do software engineers have the necessary HCI knowledge to completely specify such useful usability requirements since they are not usually trained in HCI skills.
Proposed a Pattern-Based Solution For Gathering Functional Usability Requirements.
Integration of NFR with FR
Use circumstance and goal-driven platform for integrating FRs and NFRs
Goal-Oriented Analysis and Use Cases
A precise checklists how to elicit NFRs in collaboration with use circumstances and structures.
Conflicts of Requirements
Vision (Viewpoint-oriented requirements procedure with UML
WinWin-approach (group decision), Aspect-oriented solutions algorithms and tools such as QARCC for the management of conflicts.
Reusing knowledge on satisficing NFRs for goal-oriented solutions (Predicated on NFR Framework) with Use of catalogue
Ambiguous specs of the system's features
1. Usability Requirements
2. Security Requirements
3. Level of privacy Requirements
Artefacts (habits) for reusing usability knowledge
Pattern-Based Solution For Gathering Functional Usability Requirements
Specification Habits for Security Goals
Quality Function Deployment
Controlled Requirements Expression
Soft Systems Methodology
Joint Program Development
Feature-Oriented Area Analysis
Critical Discourse Analysis
Accelerated Requirements Method
Reusable knowledge using a Privacy Catalogue
Library of reusable level of privacy and security goals
A detailed dialogue on other security requirements elicitation techniques such as Mistreatment Case and Episode Trees are available in .
Non-functional requirement can be an important strategy in the requirements engineering which takes on an essential role in the success or the failing of something. However, NFR concerns are usually dealt at design and implementation level and this approach results the failing of the majority of the systems. There is a need to find-out the problems, problems and obstacles while eliciting NFRs. This literature survey is a first effort of its kind to seek NFR issues and their potential solutions at the elicitation level of requirement engineering. We've discovered several key issues like issues of requirements, integration of NFR with FR and ambiguous specification of system features. We have found some of the solutions of these stated problems predicated on the available books.
Most of the books is dependant on NFR framework , which can be an informal way , and there's a need to produce a formal framework considering the mentioned solution in this newspaper predicated on the available literature. In the future, we wish to redesign the framework and eliminate the stated issues.