Abstract

Program invariants can be detected using both static and dynamic approaches. Dynamic methods that complement static methods will be more useful and effective in analyzing software artifacts. Existing dynamic invariant detection techniques detect both relevant and irrelevant invariants due to the presence of relevant and irrelevant/unused variables in the program. Therefore, the speed and efficiency of the techniques are affected. Also, displaying properties about irrelevant variables distracts the user from concentrating on properties of relevant variables. Moreover, these irrelevant invariants do not contribute to the correctness of the program. Therefore, there is a need to overcome the above deficiencies. This is done in three phases in this paper. In the first phase, only the relevant variables are considered by ignoring irrelevant variables. In the second phase, relevant variables are classified into two different types as design variables and non-design variables by using proposed metrics. These metrics are validated analytically against Weyuker's principles. Similarly, relevant invariants are categorized into three types as design invariants, non-design invariants and hybrid invariants in the third phase. For this purpose a set of rules are proposed. This process enormously improves the speed and efficiency of dynamic invariant detection techniques. Also, it drastically reduces the effort that is required to validate program correctness.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call