Abstract
Resource limitations in software projects rarely allow for the security requirements to be fully realized. As such, Prioritization and Selection (PAS) techniques are used to find an optimal subset of the requirements. Consequently, some of the security requirements will be ignored. But ignoring security requirements may (a) leave some of the security threats unattended and (b) negatively impact the effectiveness of the selected requirements. To mitigate this, we have proposed a fuzzy framework, referred to as Prioritization And Partial Selection (PAPS), that reduces the number of ignored security requirements by allowing for partial satisfaction of those requirements. We achieve this by relaxing the satisfaction conditions of security requirements, when tolerated, based on their priorities specified by a fuzzy inference system. Taking into account the partiality of security in PAPS mitigates the adverse impact of ignoring security requirements and enhances the accuracy of prioritization and selection. Our proposed framework is scalable to a large number of requirements.
Introduction
Security requirements, also known as security countermeasures [1, 2], are to enhance the security of software systems [3]. But due to the resource limitations, it is hard to implement the entire set of the identified security requirements [4], that makes it nearly impossible to develop a completely secure system [5]. An efficient prioritization and selection technique is therefore needed to find an optimal subset of the security requirements for a software project [5, 6]. However, there are two major problems with existing Prioritization and Selection (PAS) techniques [7], that limit the practicality of those techniques in real-world software projects. These problems are as follows.
(i) Complexity. The existing techniques used for prioritizing and selecting security requirements are, predominately, human-intensive and require a high number of comparisons (Table A.1). That makes these techniques complex and difficult to adopt in real-world software projects[7, 8]. An example of such complex techniques is Analytic Hierarchy Process (AHP) [7, 9], that has been well recognized as the most promising prioritization and selection technique with respect to providing reliable results [10]. Other variations of AHP such as Fuzzy AHP [11, 12] are also complex as they rely on a high number of comparisons. Ranking-Based techniques (e.g., Bubble Sort and Binary Search Tree), Cumulative Voting, EVOLVE, and Planning Game [13], are other examples of well-recognized prioritization and selection techniques that suffer from the complexityproblem [17].
(ii) Inaccuracy. In software projects, security is either treated as the main priority or it is ignored [14]. This binary (all or none) approach to security has negatively impacted the accuracy of the existing techniques used for prioritizing and selecting security requirements: they either select or ignore security requirements [5] without considering the partiality of those requirements in real-world software (Table A.1). But ignoring security requirements may leave some of the security threats [15] unattended and eventually result in security breaches in software systems. Moreover, ignoring a security requirement may negatively influence the effectiveness of the requirements that rely on it. As such, ignoring security requirements results in cascading security issues in software.
To address these, we have contributed a fuzzy framework referred to as Prioritization and Partial Selection (PAPS). The proposed framework enhances the accuracy of prioritizing and selecting security requirements by taking into account the partiality of security. This is achieved by allowing for partial selection (satisfaction) of the security requirements rather than ignoring them. The proposed framework thus helps reduce the number of ignored security requirements, that will (a) reduce the number of unattended security threats and (b) mitigate the risk of ignoring the dependencies [16, 17] of the requirements. PAPS is scalable to a large number of requirements and allows for prioritization and selection of security requirements with respect to different security goals (objectives) [5].
The proposed framework (PAPS) comprises two major processes as follows. The first process, i.e. Pre Prioritization and Selection (Pre-PAS), includes modeling, description, and analysis of security requirements. The second process, i.e. Prioritization and Selection (PAS), takes the formally described Security Requirement Model (SRM) [18] of a system and its corresponding analysis results as the input and constructs the Security Requirement List (SRL) of the system. A Fuzzy Inference System (FIS) then prioritizes the security requirements in the SRL with respect to different security goals [19, 20]. The FIS infers the linguistic priorities of the requirements based on the prioritization criteria (impact, cost, and technical-ability). The prioritization and selection process in PAPS accounts for the partiality of security in the optimal SRL by RELAX-ing [18, 21] the satisfaction conditions of the security requirements when tolerated. Security requirements then, will be RELAX-ed and (partially) included in the optimal SRL of the system.
Related work
Several techniques have been used for prioritizing and selecting software security requirements (Table A.1). Among them, Analytic Hierarchy Process (AHP) has been well recognized as a highly reliable [22] yet complex technique [10]. EVOLVE [23] is another example of complex prioritization techniques [7]. The technique uses evolutionary algorithms to find an optimal subset of the requirements. Ranking-Based techniques such as Bubble Sort, and Binary Search Tree have also demonstrated to be complex for a large number of requirements [7]. Fuzzy AHP [11, 12] suffers from the same problem.
Some of the requirement prioritization and selection techniques involve clients (stakeholders) in the process. A widely used example of such techniques is Planning Game [13], that uses the business value specified by the clients and technical risk specified by the developers for prioritization. The technique, however, does not scale well with a large number of requirements [7, 13]. Win Win is another prioritization technique [24], where software stakeholders express their objectives as win conditions. If everyone concurs, the win conditions become agreements; otherwise, iterations may occur. The difficulty in reaching consensus and inconsistencies in the prioritized requirements has been identified as the major drawbacks of the Win-Win technique [25]. Another example is Cumulative Voting [7], where the stakeholders allocate points to the requirements to specify their priorities [24]. This becomes a tedious task for a high number of requirements or stakeholders. Moreover, cumulative voting is prone to human bias as the stakeholders tend to assign more points to their favorite requirements [24].
However, to the best of our knowledge, none of these prioritization techniques allow for partial selection of security requirements (Table A.1). This is despite the fact that the partiality of security has been widely recognized in Software Engineering (SE) [5]; several works have used fuzzy logic to account for this partiality [26]. Such works have adopted fuzzy logic due to its effectiveness in capturing the imprecision and uncertainty of real-world problems [27, 28]. For instance, fuzzy logic has been effectively used for identifying and modeling security threats in computer systems [26]. Also, fuzzy rule-based systems have been employed to specify the risk associated with a particular software system before its installation [29]. Fuzzy logic has also been employed for carrying out security risk analysis in Cyber systems [26, 30].
The running example
To demonstrate the practicality of our proposed PAPS framework, we have used an Online Banking System (OBS) as our running example. Figure 1 demonstrates, at the highest level of abstraction, the main functionality of OBS (money transfer), that can be achieved through either online access to the accounts or transferring via debit card. Also, the main threat to OBS is an unauthorized transfer of money out of the accounts, that can be achieved through either hijacking the server or obtaining access to the accounts. Figure 1 further, shows the vulnerabilities of OBS, that can be exploited by an attacker as well as the countermeasures (security use cases), that mitigate them. An excerpt of the OBS description is given as follows.

The Use Case/ Misuse Case Diagram of OBS (Online Banking System).
OBS is an online banking system, that provides banking services like money transfer over the internet. The bank accounts are alluring targets for criminals. OBS transactions therefore must be protected at all times to minimize financial losses. As such, OBS should be protected against any unauthorized online access as such accesses may result in transferring money of the bank accounts. Hence, OBS protects the internet connection and supports user authentication by checking the username and password of the users. Although an attacker may guess the usernames or passwords, initiatives must be taken to make this as difficult as possible for the attacker. OBS must provide a reasonable assurance that the user accounts are secure. The main threat that concerns OBS is that an attacker transfers money out of the user accounts.
The Pre-PAS process (Figure 2) includes modeling, description, and analysis of security requirements. The process starts with developing the Security Requirement Model (SRM) of a system and formally describing it using a goal-based Fuzzy Grammar [31, 32]. Risk analysis will be performed then to identify the cost and technical-ability of each security requirement.

The PAPS Framework.
As shown in Figure 2, the security requirement model (SRM) of a system serves as the input of the prioritization and selection process in PAPS and therefore needs to account for the partiality of security. As such, we have used a fuzzy-based security requirement modeling technique (Section 4.1.1), proposed in our earlier work [18], that accounts for partial satisfaction of requirements. We have also made use of a fuzzy-based description technique, presented in [33], to formally describe the SRM of a software system. We have demonstrated the use of these techniques by modeling and describing the security requirements of our running example (OBS).
Modeling security requirements
We use a Goal-Based Modeling Process proposed in our earlier work [18] for modeling security requirements. The process starts with identifying the main assets of a system. Then an initial set of goals will be devised to protect those assets against potential security threats [34]. Such goals are High-Level as they merely reflect the intention of the system to protect its assets without specifying how that can be achieved. The mechanism through which high-level goals are satisfied will be determined by refining those goals to more specific Low-Level goals. The refinement of a goal continues until its satisfaction can be assigned to deliverable security requirements in the security requirement model (SRM) of a system. We use a combination of RELAX [21, 35] and KAOS [36] languages to describe the security goals (requirements) in a SRM. The SRM of our running example (OBS) is shown in Figure 3 and the KAOS descriptions of the goals/requirements are given in Table 1.

The security requirement model (SRM) of the online banking system (OBS). Junction points and their absence denote logical AND and OR respectively.
The KAOS descriptions of the security requirements (goals) of OBS
As part of the modeling and description process in PAPS, we formally describe the security requirements of a system using a fuzzy-based description technique proposed in our earlier work [33]. In the following, we briefly introduce the main components of this fuzzy-based description technique and apply it to the SRM of our running example (OBS).
i. Goal-Based Fuzzy Grammar (GFG). A GFG is a quintuple GR = (G, R, P, S, μ), where G is a set of security goals, R is a set of security requirements, P is a set of fuzzy derivation rules, and μ denotes the membership function of the derivations. Also, S represents the top-level security goal of the system, that is to maintain the security of the system. For OBS, G = {G1, . . . , G13}, R = {R1, . . . , R12}, P = {P1, . . . , P20} and S=“maintain [OBS] [security]”.
The fuzzy nature of GFGs captures the partiality of security in the SRM of a system. The elements of P ∈ GR are expression of form (1). Where d is the degree of the contribution of sub-goal w to satisfaction of goal r. If r1, . . . , r n are fuzzy statements in (G ∪ R) *, we call r1 → r2 → . . . → r n a goal derivation chain under the employed GFG.
ii. Extracting Derivation Rules. Our description technique constructs the GFG of a SRM and identifies its corresponding derivation rules [33]. The degree to which the successor of a rule contributes to the satisfaction of its predecessor (membership value) is determined by the membership function μ of a GFG [33]. The derivation rules of the SRM of OBS and their corresponding membership values are listed in Table 2. For instance, derivation rule P11 (G1 → R2R3) states that (a) security goal G1 derives security requirements R2 and R3 and (b) there is a logical AND relation between R2 and R3. Therefore, to satisfy G1 both R2 and R3 need to be implemented.
Derivation rules for the SRM of OBS
During a risk analysis, the cost and technical-ability of the security requirements will be identified and modeled. Conventional risk analysis techniques [37–39] can be used for this purpose.
Implementation Cost. Budget limitations in a software project may not allow for a complete implementation of the security requirements. As such, we need to consider the implementation cost of the requirements when prioritizing and selecting them [40]. Table 3 has listed the costs of the security requirements of OBS, scaled into [0, 1].
Cost and Technical-ability of OBS requirements
Cost and Technical-ability of OBS requirements
Technical-ability. For a security requirement R i , Technical-ability is defined as a real number θ i ∈ [0, 1], which reflects the ease of implementation. Technical-ability of the security requirements of OBS are calculated based on (2) as listed in Table 3.
The prioritization and selection process in PAPS starts with preprocessing the prioritization criteria (impact, cost, and technical-ability) and constructing the Security Requirement List (SRL) of a system, that serves as the input of the Fuzzification [41] process (Figure 2). Fuzzification maps the prioritization criteria to their corresponding linguistic values, that serve as the main inputs of the fuzzy inference system (FIS).
PAPS uses fuzzy inference [42] to identify the linguistic priorities of the security requirements with respect to different security goals in the SRL of a system. These priorities will be defuzzified to RELAX the satisfaction conditions of the security requirements when tolerated and allow for their partial selection. The RELAX-ed requirements then, will be listed in the optimal SRL of the system.
Data preprocessing
Data preprocessing in PAPS aims to prepare the inputs of the fuzzification process, thus enabling fuzzy inference (Figure 2). In doing so, a security requirement list (SRL) will be constructed that contains the attributes of the security requirements (cost, technical-ability, and impact), used as prioritization criteria in PAPS. Preprocessing, especially, focuses on computing the impacts of the requirements with respect to the security goals and reflecting that in the SRL.
Constructing a security requirement list
Let GR = (G, R, P, S, μ) be the goal-based fuzzy grammar of a system; we have SRL [g] ⊆ R*, where SRL [g] gives the security requirements that contribute to the satisfaction of goal g ∈ G. In other words, a requirement x is in SRL [g] if and only if it can be derived from g (g → . . . → x). SRL [g] will be constructed for any goal g in the security requirement model of a system. This allows for prioritizing security requirements with respect to different security goals. Function “BuildSRL” in Figure B.1 constructs the SRL of a system. We have implemented the SRL as a two-dimensional list (list of lists) in which a list SRL [g] contains the security requirements which contribute to the satisfaction of goal g.
Calculating the impacts
The impact of a security requirement x in SRL [g] is the degree to which x contributes to the satisfaction of goal g. For a derivation chain g → . . . → x, (3) calculates the impact of x by evaluating the membership values of the derivation rules on the chain and finding the minimum of those values: μ (g, r1) ⊗ μ (r1, r2) ⊗ . . . ⊗ μ (r n , x). The overall impact of x on g is calculated by finding the maximum impact of x over all alternative derivation chains from g to x: ⊕ (μ (g, r1) ⊗ μ (r1, r2) ⊗ . . . ⊗ μ (r n , x)). T-norm sign ⊕ and t-conorm sign ⊗ denote fuzzy OR (maximum) and AND (minimum) operators respectively [43]. μ g (x) specifies the strongest degree of contribution of x to the satisfaction of goal g.
As one example, in the SRM of OBS, μ S (R7) is computed for two derivation chains: 1) S → G1 → G2 → G5 → G9 → G7 → R7 and 2) S → G1 → G2 → G5 → G6 → G7 → R7, as follows: μ S (X = R7) = (0.95 ⊗ 0.95 ⊗ 0.85 ⊗ 0.9 ⊗ 0.65 ⊗ 0.9) ⊕ (0.95 ⊗ 0.95 ⊗ 0.85 ⊗ 0.9 ⊗ 0.6 ⊗ 0.9) =0.65. The impacts of the security requirements in the SRM of OBS are computed by function “CalculateImpact" in Figure B.1 and listed in Table 4.
The impacts of the security requirements in the SRM of OBS
Prioritization in PAPS starts with fuzzifying [19] the prioritization criteria (impact, cost, and technical-ability) of the security requirements, that serve as the input of the fuzzy inference system (FIS) (Figure 2). The FIS then infers the linguistic priorities of the security requirements based on the fuzzy rule-base of PAPS. The priority of a requirement specifies the extent to which it needs to be satisfied.
Fuzzification
Fuzzification in PAPS aims to map the crisp values assigned to the prioritization criteria (impact, cost, and technical-ability) of the requirements to their corresponding categories: Low (L), Medium (M), and High (H). To do so, three membership functions are defined for each input and its related categories. We have employed a semi-trapezoids shape [44] for the membership functions; four diverse points are required to define each membership function (Figure 4). The membership functions are defined by (4) and listed in Table 5. Each membership function will be calculated based on four specific points as depicted equation (4) and Figure B.1. We have implemented the membership functions using Fuzzy Control Language (FCL) [43] and jFuzzyLogic [45].
Membership Functions of the FIS Inputs (Output)
Membership Functions of the FIS Inputs (Output)

Example of a membership function μ iv .
For a requirement r in the security requirement list (SRL) of a security goal g, function “PrioritizationAndSelection” in Figure B.2 fuzzifies the prioritization criteria of r (SRL [g] [r] . impact, SRL [g] [r] . cost, and SRL [g] [r] . technicalAbility) using the membership functions in Table 5.
Our proposed PAPS framework uses Mamdani-type fuzzy inference [46–48] to specify the linguistic priorities of the security requirements based on their prioritization criteria (cost, impact, and technical-ability). A fuzzy inference system (FIS) is used for this purpose. Using a fuzzy-rule base, the FIS prioritizes the security requirements under four distinct categories: Optional (O), Weak (W), Normal (N), and Strong (S), as shown in Figure B.2. We have implemented the fuzzy inference rules using fuzzy control language (FCL) as discussed earlier. The inference rules can be modified to reflect the organizational and technical preferences of the stakeholders.
As depicted in Table 6, 27 fuzzy rules are listed in the rule-base of the system. The FIS has used these rules to prioritize the security requirements of the running example (OBS) as listed in Table 7. Each security requirement is assigned 14 different priorities, each of which concerning a specific security goal in the security requirement model of OBS(Figure 3).
Fuzzy Rules
Fuzzy Rules
The priorities of the security requirements of OBS
Considering the priorities of the requirements with respect to different security goals enables goal-based selection of security requirements in PAPS. For example, requirement “R7: achieve password encryption” of OBS is normally required for the satisfaction of goal “G2: avoid [unauthorized online transfer]” while it is weakly recommended as far as satisfying “G6: avoid guess password” is concerned. Thus, R5 and R8 are preferred as they are prioritized normal with respect to G6 (Table 7). Figure 5 demonstrates the membership functions of the FIS inputs (impact, cost, and technical-ability) and output (priority) for prioritizing R7 with respect to the top-level security goal S.

Inferring the fuzzy priority of R7 with respect to the top-level security goal S. The membership values of the FIS inputs/output are denoted by vertical lines.
Our proposed PAPS framework allows for partial selection of a security requirement x if budget is tight or x conflicts with other quality aspects of the system. For instance, implementing “x: achieve a complex password policy” may reduce the usability of the system [49]. When partial satisfaction of x is tolerated, however, a less complex password policy can be implemented to maintain the usability of the system. Partial selection in PAPS comprises two major components (Figure 2): (i) defuzzifying the linguistic priorities of the security requirements and (ii) RELAX-ing [18, 21] the satisfaction conditions of those requirements based on their corresponding defuzzified priorities.
Defuzzification
As discussed earlier, security requirements can be partially selected in PAPS by RELAX-ing their satisfaction conditions; the extent to which a requirement needs to be satisfied is determined by its linguistic priority. But the satisfaction conditions of the requirements are quantified by numbers (e.g., % availability, the length of a password, and the number of login attempts). As such, it is important to provide a mechanism to map the linguistic priorities into their corresponding crisp values when needed. We have achieved this by defuzzifying the priorities of the security requirements using their corresponding membership functions (FIS output in Table 5). The defuzzified priority of a requirement specifies its Required Degree of Satisfaction (RDS). Function “PrioritizationAndSelection” in Figure B.2 achieves defuzzification using the Center of Gravity (COG) method [50].
RELAX-ation
RELAX-ation is the final step in PAPS (Figure 2), that aims to RELAX the satisfaction conditions of the security requirements whose partial satisfaction is tolerated. This will be achieved by specifying the required degree of satisfaction (RDS) for each requirement; RDS values are determined by the defuzzified priorities of the requirements as discussed in Section 5.3.1. We use a combination of RELAX [21] and KAOS languages to formally describe the RELAX-ed securityrequirements.
The fuzzy semantic of the RELAX statements properly captures the partiality of security requirements [18]. As an example, consider RELAX-ing one of the security requirements of OBS: “R6: achieve password policy”. Based on Table 8, SRL [S] [R6]= ‘weak’, that means R6 can be tolerated to be weakly satisfied; R6 can be partially included (selected) in SRL[S] through RELAX-ing its satisfaction condition. If a less complex password encryption can be tolerated in SRL [S], the satisfaction condition of R6 can be RELAX-ed with the semantic given by (5), that is “system shall generally (G) achieve a password policy [complexity] as close as possible to (R6 . RDS × R6 . OV) at all times (A). OV denotes the Optimal Value for the satisfaction criterion of R6. Also, Δ (R6) specifies the complexity of R6 and μ (x) is the membership function offuzzy set Z.
Required degrees of satisfaction, denoted by RDS, for the security requirements of OBS
Phrase “complexity as close as possible to R6 . RDS” then can be assigned to the ‘relaxed’ attribute of R6 as explained earlier. The value of RDS maximizes the membership function μ as given by (6). Also, the fuzzy membership function μ gives the degree of satisfaction of R6 based on the difference between the current password complexity (Δ (R6)) and R6 . RDS × R6 . OV. Membership function μ has its maximum (1) at RDS as given by (6).
Similarly, the security requirements in the SRL [S] of the running example (OBS) are RELAX-ed and listed in Table 9; the ‘relaxed’ descriptions are specified based on the satisfaction criteria of the requirements. As given in Table 9, the satisfaction criteria of the requirements are placed inside the brackets. For instance, the satisfaction criterion of R6 is “complexity” of password policy while “length of the encryption key” is used to measure the satisfaction of R7.
The RELAX-ed OBS requirements. R i . OV denotes the optimal value for the satisfaction criterion of requirement R i
In the following, we discuss the complexity of the prioritization and selection (PAS) process in PAPS.
Complexity of the prioritization process
Prioritization in PAPS comprises (a) fuzzifying the prioritization criteria and (b) inferring the priorities of the requirements (Figure 2). The fuzzification process maps the crisp values of the prioritization criteria into their corresponding fuzzy terms using fuzzy membership functions. To fuzzify all m prioritization criteria of a requirement, we need m mapping, where each mapping needs k (the number of possible values for each criterion) comparisons in the worst case. Therefore, the complexity of fuzzification for n requirements will be O (n × (m × k)).
Moreover, inference in PAPS is based on a set of fuzzy rules. For m prioritization criteria and k possible values for each criterion, k m rules may be needed to capture all possible combinations of the values assigned to the criteria. Thus, for n requirement O (n × k m ) comparison may be needed to apply the relevant inference rules. Equation (7) gives the complexity of prioritization in PAPS for n requirements, m prioritization criteria, and k possible values for each criterion.
Assuming that the number of requirements (n) is significantly greater than m and k, which is very likely in real-world software projects, (m × k + k m ) can be treated as a constant; the complexity of the prioritization process in PAPS will be O (n).
The selection process in PAPS comprises (a) defuzzification of the linguistic priorities of the security requirements and (b) RELAX-ing the satisfaction conditions of the requirements. Defuzzification maps the linguistic priorities of the requirements into their corresponding crisp values using the membership functions of the priorities (FIS output). Thus, for n requirements and l values for the priority of each requirement, n × l comparisons may be needed. Assuming that the optimal values for the satisfaction criteria of the requirements (OV in Table 9) are specified prior to the selection process, the RELAX-ation process is as complex as multiplying each optimal value by its corresponding required degree of satisfaction (RDS), achieved from the defuzzified priorities (Section 5.3.2). That will be n operations for n security requirements of a software system.
Overall complexity
For n requirements, m prioritization criteria, k possible values for each criterion, and l possible values for the priorities, the overall complexity of prioritization and selection in PAPS is as given by (8).
Assuming that the number of requirements (n) is significantly greater than m, k, and l, (m × k + k m + l) will be a constant and therefore the overall complexity of the prioritization and selection in PAPS will be O (n). This is significantly less complex than AHP (the most reliable prioritization and selection technique [7]), which requires O (n2) operations [7]. The overall complexity of the prioritization and selection in PAPS is also less than the standard ranking-based prioritization and selection techniques such as Bubble Sort (O (n2)) and Binary Search Tree (O (n log n)) [7]. Also, it is clear that the complexity of any prioritization technique based on pairwise comparisons is at least O (n2), which is more complex than PAPS. The complexity of other prioritization and selection techniques (e.g. Cumulative Voting, EVOLVE, and Planning Game [13]), however, have not been formulated in the literature thus cannot be mathematically compared against PAPS. The linear complexity of PAPS (O (n)) is a good indicator of its scalability in practice.
In this section, we discuss the limitations of our proposed PAPS framework to contain it within a full understanding of its theoretical and practical boundaries.
RELAX-ation. The PAPS framework RELAX-es the satisfaction conditions of the security requirements when tolerated (Section 5.3). That allows for a higher number of requirements to be selected, thus (a) reducing the number of unattended security threats and (b) mitigating the risk of ignoring the dependencies of the security requirements. But the effectiveness of PAPS may be restricted when only a small number of the security requirements are tolerated to be RELAX-ed.
Conflicts. It has been widely recognized that the security requirements of software projects may conflict with other quality aspects of software [51] such as the usability [52] and privacy [53]. This has not been considered in PAPS to avoid further complexity. More sophisticated variations of the framework, however, are needed to explicitly account for conflicts between security and other quality aspects of software.
Computational Complexity. We demonstrated (Section 6) that the process of prioritization and selection in PAPS is less complex than the conventional prioritization and selection techniques such as AHP and Ranking-Based algorithms (e.g., Bubble Sort and Binary Search Tree). While the lower computational complexity of PAPS (O (n)) is a good indicator of its scalability, real-world experiments are needed to further verify this in practice.
Fuzzy Inference. We have used a Mamdani-based fuzzy inference system (FIS) in PAPS to infer the priorities of the requirements. But there are some limitations (e.g., intersected contradictory decision boundaries) with those inference systems [54], that may impact the practicality of PAPS. Solutions to overcome these limitations have been proposed by Perera et al. [54], which can be explored in the future. Moreover, the effectiveness of PAPS may depend on how well the membership functions of the FIS inputs/outputs are defined. That requires a level of expertise, which may not be available in all software projects.
Conclusions and future work
In this paper, we proposed a fuzzy framework referred to as PAPS (Prioritization and Partial Selection), that enhances the accuracy of prioritizing and selecting security requirements by taking into account the partiality of security. To achieve this, the proposed framework allows for partial selection of security requirements by relaxing their satisfaction conditions, when tolerated. A fuzzy inference system is used to specify the requirement priorities, which eventually determine the satisfaction conditions of those requirements. Partial selection in PAPS helps reduce the number of ignored security requirements, thus (a) reducing the number of unattended security threats and (b) mitigating the risk of neglecting the dependencies of the requirements. To demonstrate the practicality of PAPS, we applied it to an online banking system, which served as our running example.
We are planning to extend the work in several directions. One is to develop more sophisticated variations of PAPS that consider the impacts of security requirements on other quality aspects of software such as usability and performance. We are also planning to apply the proposed framework to a real-world software project to verify its scalability in practice.
