201. Software Crucial Functions Ranking and Detection in Dynamic Execution Sequence Patterns
- Author
-
Guoyan Huang, Munawar Hussain, Jiadong Ren, Bing Zhang, and Shan Chun
- Subjects
Software network ,Computer Networks and Communications ,Computer science ,business.industry ,020207 software engineering ,02 engineering and technology ,computer.software_genre ,01 natural sciences ,Computer Graphics and Computer-Aided Design ,Sequence pattern ,010305 fluids & plasmas ,Ranking (information retrieval) ,Software ,Artificial Intelligence ,0103 physical sciences ,0202 electrical engineering, electronic engineering, information engineering ,Decision function ,Data mining ,business ,computer ,Sequence (medicine) - Abstract
Because of the sequence and number of calls of functions, software network cannot reflect the real execution of software. Thus, to detect crucial functions (DCF) based on software network is controversial. To address this issue, from the viewpoint of software dynamic execution, a novel approach to DCF is proposed in this paper. It firstly models, the dynamic execution process as an execution sequence by taking functions as nodes and tracing the stack changes occurring. Second, an algorithm for deleting repetitive patterns is designed to simplify execution sequence and construct software sequence pattern sets. Third, the crucial function detection algorithm is presented to identify the distribution law of the numbers of patterns at different levels and rank those functions so as to generate a decision-function-ranking-list (DFRL) by occurrence times. Finally, top-k discriminative functions in DFRL are chosen as crucial functions, and similarity the index of decision function sets is set up. Comparing with the results from Degree Centrality Ranking and Betweenness Centrality Ranking approaches, our approach can increase the node coverage to 80%, which is proven to be an effective and accurate one by combining advantages of the two classic algorithms in the experiments of different test cases on four open source software. The monitoring and protection on crucial functions can help increase the efficiency of software testing, strength software reliability and reduce software costs.
- Published
- 2020