Appendix C: Computation
The problem is to estimate the extent of risk involved during a software engineering project. For the sake of simplicity, we'll reach our conclusion supported by two inputs: project funding and project staffing.
C.l Introduction
The first step is to convert the crisp input into a fuzzy one. Since we've two inputs, we'll have two crisp values to convert. The first value is the level of project staffing. The second value is the level of project funding. Suppose our inputs are project_funding = 35% and project_staffing=60%. We can get the fuzzy values for these crisp values by using the membership functions of the acceptable sets. The sets defined for project_funding are inadequate, marginal, and adequate. The sets defined for project_staffing are small and enormous.
Thus, we've the following fuzzy values for project_funding:
C.2 The Rules
Now that we've the fuzzy values, we will use the fuzzy rules to reach the ultimate fuzzy value. The rules are as follows:
- 1. If project_funding is adequate or project_staffing is little, then risk is low.
- 2. If project_funding is marginal and project_staffing is large, then risk is normal.
- 3. If project_funding is insufficient, then risk is high.
Rule 1: If project_funding is adequate or project_staffing is small, then risk is low
Rules containing disjunctions, OR, are evaluated using the UNION operator.

Rule 2: If project_funding is marginal and project_staffing is large, then risk is normal.
Conjunctions in fuzzy rules are evaluated using the INTERSECTION operator.

Rule 3: If project_funding is insufficient, then risk is high:
![]()
C.3 Rule Evaluation Results
The result of evaluating the rules is shown below:

We now use the results to scale or clip the resultant membership functions. Once again for the sake of simplicity, we'll clip each of the functions:
![]()
We perform a union on all of the scaled functions to get the ultimate result.
C.4 Defuzzification
The defuzzification is often performed in several alternative ways. The most popular method is the centroid method.
C.5 Centroid method
This method calculates the middle of gravity for area under the curve:
Bisector
A vertical line that divides the region into two sub-regions of equal area. It is sometimes, but not always, coincident with the centroid line.
Mean of maximum
Assuming there's a plateau at the utmost value of the ultimate function take the mean of the values it spans.
Smallest value of maximum
Assuming there's a plateau at the utmost value of the ultimate function take the littlest of the values it spans.
Largest value of maximum
Assuming there's a plateau at the utmost value of the ultimate function take the most important of the values it spans.
We chose the centroid method to seek out the ultimate non-fuzzy risk value related to our project. This is shown below:
The result is that this project has 67.4% risk related to it given the definitions above.