Keywords

1 Introduction

Traditional software reliability models are often founded on failure data from the software testing or the actual running phase, ignoring the influence of various uncertainty factors in the software development process. If there is very few data or no information related to software failure, we can indirectly evaluate software reliability by means of investigating some uncertain factors which determine the level of software reliability in the software development process. Abundance of uncertain information for software reliability engineering requires a formal symbol system to portray. Concepts and the overall characteristics of things are perceived through language, not by precise calculation of some values. There is a very good relationship between the uncertainty inherent in natural language and fuzzy prevalent in the objective world. Cloud model [1] can be used to describe language atoms and then just to reflect this relationship.

For comprehensive analysis of the relationship between several uncertain factors affecting software reliability and software reliability level, we will first determine the weighs of the factors, and then, we can obtain software reliability qualitative rules using standard weighted association rule mining algorithm [2]. Thus, software reliability qualitative evaluation can be achieved through uncertainty reasoning based on cloud model.

2 Uncertain Factors Affecting Software Reliability

Software development is a very complex dynamic process including people, development tools, and application background. Researchers [3, 4] realized that the implied useful knowledge, which can be dug out from the various factors affecting the software reliability, software application features, and software failure data in the software development process, may be used for qualitative and quantitative software reliability assessment process. Thus, more credible and accurate software evaluation results can be obtained. Because software reliability is subjected to common effect of numerous uncertainties factors, we need to analyze comprehensively such factors to assess. The degree of the factors impacting on the software reliability need to be determined by means of engineering experience and subjective judgment, inevitably bearing subjectivity and uncertainty. Cloud model theory is suitable for processing the information with uncertain attributes.

According to the survey of existing research and analysis, there are 32 uncertainty factors affecting software reliability during the entire software development process. These factors constitute a qualitative evaluation index system for software reliability. Here mainly introduce the six most important factors.

  1. 1.

    Program Complexity, abbreviated as PC: the more complex the software is, in the development and maintenance process, the more resources are consumed, and the greater possibility of errors are introduced in the design. The program size, function modules themselves, and the connections between modules are the main factors determining software complexity.

  2. 2.

    Programmer Skills, abbreviated as PS: programmer skills mainly depend on the programmer’s level, number of developed software products, the scale of the developed software, and the experience of developing software. In general, the programmer skills directly affect software reliability. Due to personal programming experience, work stress, and personal qualities, programmers often make errors in the program modules.

  3. 3.

    Testing Efforts, abbreviated as TEF: the number of test cases, test workload, and test time reflect the testing efforts.

  4. 4.

    Testing Coverage, abbreviated as TC: the proportion of source code covered by test cases.

  5. 5.

    Testing Environment, abbreviated as TE: in order to find more software bugs in the testing phase, testing environment should be as close as possible to the actual operating environment.

  6. 6.

    Frequency of Specification Change, abbreviated as FSC: because users have new requirements, or developers do not properly understand the user’s needs, specification needs to add or correct during the period of software development. This will certainly affect the subsequent software development. The more the number of changes or the later change occurs, the greater the impact on reliability.

Because the factors affecting software reliability, which are taken from the software development process at all stages, are closely related to software reliability levels, can truly reflect the software reliability from different angles. But various factors have primary and secondary points, so you need to assigning weights to highlight the main factors.

3 Delphi Hierarchy Process Based on Cloud Model

Delphi hierarchy process based on cloud model [5, 6], DHP for short, synthesizing a number of experts’ opinion on many factors affecting software reliability, cleaning up and selecting factors, and assigning weights can implement visualized heuristic optimization n of the complex data objects.

By using DHP method, we can select factors affecting software reliability and calculate initial weights with Delphi method, and then, using the analytic hierarchy process, known as AHP, we can obtain hierarchical factors and determine the final weights.

DHP is briefly introduced as follows: First, the issues to be assessed and the necessary background material in the form of communication may be sent to experts, and then, the replies should be synthesized and concluded based on cloud model. Once again back to the experts for further advice, so repeatedly 2–4 times, until we get satisfactory results. Second, the relative weights of each level can be calculated, and the combined weights of the elements can also be calculated. Finally, the total weight can be calculated.

4 The Mining Approach of Software Reliability Qualitative Rules

4.1 Establishment and Transformation of Related Databases

For some factors affecting software reliability, we cannot get the real data, but with qualitative description language, such as “programmer skills are ordinary” and “testing method is good”. These language values can be represented appropriately by the cloud model in the domain of [0, 1], which can be converted to a numeric representation through a forward cloud generator. Thus, by some typical case studies, we can get numeric databases about factors and software reliability, as shown in Table 1.

Table 1 Databases about factors and software reliability

Obviously, using raw numeric data for data mining, it will be hard to find useful rules. Therefore, firstly, adopt cloud transformation method for discretization of continuous attributes, raise the basic concepts to the appropriate concept hierarchy, and then make a soft partition to the original data set by maximum determination principle according to the gained concept sets. The six most important factors using qualitative language values may be constructed with evaluation concept sets including five grades, such as follows:

PC:

{very low, low, medium, high, very high};

PS:

{very poor, poor, average, good, very good};

TEF:

{very few, few, average, many, a great many};

TC:

{very small, small, medium, large, very large};

TE:

{not very close, not close, medium, close, very close};

FSC:

{very few, few, average, many, a great many}.

Other factors affecting software reliability can be similarly constructed. Of course, we can get more coarse or fine division according to the specific situation.

Table 2 shows the soft partition for original attribute values based on concept sets. Because of the uncertainties of soft partition based on cloud model, the percentage of the value attribute table is slightly different in different times, and then, we can calculate the mean result for multiple soft partitions. Clearly, the amount of data is substantially reduced, and the intrinsic correlation between attributes is also highlighted after the soft partition. According to the requirement of the association rule mining algorithm, the category type attribute Table 2 can be converted to a Boolean database as shown in Table 3.

Table 2 Soft partition for the attribute values table
Table 3 Boolean database from the converted category type attribute Table 2

4.2 Standard Weighted Association Rules Mining Based on Cloud Model

When the weighs of the factors affecting software reliability are gained, for a given level of soft support threshold and soft confidence threshold, we can get a standard weighted association rules list with “software reliability” as rule consequent using standard weighted association rules algorithm mining based on cloud model.

If the conjunction of “PC,” “PS,” and “TEF” is the rule antecedent, “software reliability” as the rule consequent, the following six qualitative rules are assumed to be produced on the above conceptual granularity:

If PC is “very low,” PS is “very good,” and TEF is “a great many,” then software reliability is “very high”;

If PC is “low,” PS is “very good,” and TEF is “a great many,” then software reliability is “high”;

If PC is “medium,” PS is “very good,” and TEF is “a great many,” then software reliability is “high”;

If PC is “medium,” PS is “good,” and TEF is “many,” then software reliability is “medium”;

If PC is “high,” PS is “average,” and TEF is “a great many,” then software reliability is “low”;

If PC is “very high,” PS is “average,” and TEF is “many,” then software reliability is “very low.”

These rules reflect the relationships between qualitative concepts such as software complexity, programmer skills, testing efforts, and software reliability (also available for other software reliability indexes).

We might as well set [0, 1] as the three factors’ domain U, cloud representations of the given five qualitative concepts in the domain of software complexity are as follows:

$$ \begin{aligned} C_{{A_{11} }} & = C(0,\;0.08,\;0.0008),\;C_{{A_{12} }} = C(0.25,\;0.08,\;0.0008), \\ C_{{A_{13} }} &= C(0.5,\;0.08,\;0.0008),\,C_{{A_{14} }} = C(0.75,\;0.08,\;0.0008),\\ C_{{A_{15} }} &= C(1,\;0.08,\;0.0008). \\ \end{aligned} $$

Cloud representations of the given five qualitative concepts in the domain of PS are as follows:

$$ \begin{aligned} C_{{A_{21} }} & = \left\{ {\begin{array}{*{20}l} 1 & {x \in [0,0.6]} \\ {C(0.6,\;0.03,\;0.0003)} & {\text{else}} \\ \end{array} } \right.,\\ C_{{A_{22} }} & = C(0.7,\;0.03,\;0.0003),\, C_{{A_{23} }} = C(0.8,\;0.03,\;0.0003),\\ C_{{A_{24} }} & = C(0.9,\;0.03,\;0.0003), \, C_{{A_{25} }} = C(1,\;0.03,\;0.0003). \\ \end{aligned} $$

Cloud representations of the given five qualitative concepts in the domain of TEF are as follows:

$$ \begin{aligned} C_{{A_{31} }} & = \left\{ {\begin{array}{*{20}l} 1 & {x \in [0,0.9]} \\ {C(0.9,\;0.03,\;0.0003)} & {\text{else}} \\ \end{array}}\right. ,\\ C_{{A_{32} }} & = C(0.99,\;0.003,\;3 \times 10^{ - 5} ), \, C_{{A_{33} }} = C(0.999,\;3 \times 10^{ - 4} ,\;3 \times 10^{ - 6} ),\\ C_{{A_{34} }} & = C(0.9999,\;3 \times 10^{ - 5} ,\;3 \times 10^{ - 7} ), \, C_{{A_{35} }} = C(1,\;3 \times 10^{ - 5} ,\;3 \times 10^{ - 7} ), \\ \end{aligned} $$

where A 11, A 21, and A 31 are descending half-clouds, and A 15, A 25, and A 35 are ascending half-clouds.

5 Software Reliability Qualitative Evaluation

The summary steps of software reliability qualitative evaluation method are as follows:

  1. 1.

    clean up, select, and assign weights for the 32 factors affecting software reliability, using DHP method based on cloud model;

  2. 2.

    generate some association rules about the factors and software reliability, using standard weighted association rule mining method based on cloud model;

  3. 3.

    give a new determined input, activate the corresponding rules based on these qualitative rules, and then generate uncertainty output from the rule generator based on cloud model;

Based on multi-conditions and multi-rules reasoning mechanism, firstly, activate these six qualitative rules using the input values through quantitative analysis; secondly, synthesize the above generated clouds using geometric cloud technology; and finally, the expected value Ex of the generated geometric cloud C(Ex, En, He) can be set as the quantitative assessment of software reliability. Reference to the software reliability evaluation conception set, the quantitative evaluation of the software cloud reliability is actually a virtual cloud in software reliability domain [0, +1]. With the input of expectation Ex, X condition cloud generators may individually output the certain degrees corresponding to the different evaluation concepts. Finally, according to maximum determination principle for membership concept may judge the software reliability.