Skip to Main Content
Software is expected to be derived from requirements whose properties have been established perfectly. However, requirements are often inaccurate, incomplete or inconsistent as it is a very difficult task to define and analyze requirements. On the other hand, programs most likely deviates from requirements during implementation as the result of misunderstanding or/and neglecting requirements of software engineers. Deviations between programs and requirements are error prone, or cause software to act in unpredictable or unexpected ways. In this paper, we propose a novel framework that uses graph-based mining techniques to discover software execution patterns from object graph firstly, and then searches and matches within a pattern repository to determine whether the discovered software execution patterns are potential deviations from requirements corresponding to neglected requirements or not. After that, the new discovered software execution patterns are labeled and saved back into pattern repository. Hence, the framework is evolutionary and its ability will be more powerful. We give a case study to show how the framework works. The work indicates that the framework is effective and reasonably efficient for improving software quality.