The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.03 - May/June (2010 vol.36)
pp: 431-448
Chunying Zhao , The University of Texas at Dallas, Richardson
Jun Kong , North Dakota State University, Fargo
Kang Zhang , The University of Texas at Dallas, Richardson
ABSTRACT
Discovering program behaviors and functionalities can ease program comprehension and verification. Existing program analysis approaches have used text mining algorithms to infer behavior patterns or formal models from program execution. When one tries to identify the hierarchical composition of a program behavior at different abstraction levels, textual descriptions are not informative and expressive enough. To address this, we present a semi-automatic graph grammar approach to retrieving the hierarchical structure of the program behavior. The hierarchical structure is built on recurring substructures in a bottom-up fashion. We formulate the behavior discovery and verification problem as a graph grammar induction and parsing problem, i.e., automatically iteratively mining qualified patterns and then constructing graph rewriting rules. Furthermore, using the induced grammar to parse the behavioral structure of a new program could verify if the program has the same behavioral properties specified by the grammar.
INDEX TERMS
Visual language, graph grammar induction, program comprehension, reengineering.
CITATION
Chunying Zhao, Jun Kong, Kang Zhang, "Program Behavior Discovery and Verification: A Graph Grammar Approach", IEEE Transactions on Software Engineering, vol.36, no. 3, pp. 431-448, May/June 2010, doi:10.1109/TSE.2010.3
REFERENCES
[1] G. Ammons, R. Bodik, and J.R. Larus, "Mining Specifications," Proc. 29th ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages, pp. 4-16, Jan. 2002.
[2] K. Ates, J.P. Kukluk, L.B. Holder, D.J. Cook, and K. Zhang, "Graph Grammar Induction on Structural Data for Visual Programming," Proc. 18th IEEE Int'l Conf. Tools with Artificial Intelligence, pp. 232-242, Nov. 2006.
[3] K. Ates and K. Zhang, "Constructing VEGGIE: Machine Learning for Context-Sensitive Graph Grammars," Proc. 19th IEEE Int'l Conf. Tools with Artificial Intelligence, pp. 456-463, Oct. 2007.
[4] L. Baresi, R. Heckel, S. Thöne, and D. Varró, "Modeling and Validation of Service-Oriented Architectures: Application vs. Style," Proc. 11th European Software Eng. Conf. held jointly with Ninth ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 68-77, Sept. 2003.
[5] L. Baresi and R. Heckel, "Tutorial Introduction to Graph Transformation: A Software Engineering Perspective," Proc. First Int'l Conf. Graph Transformation, pp. 402-429, 2002.
[6] H.A. Basit and S. Jarzabek, "Detecting Higher-Level Similarity Patterns in Programs," Proc. 10th European Software Eng. Conf. held jointly with 13th ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 156-165, Sept. 2005.
[7] L.C. Briand, Y. Labiche, and J. Leduc, "Toward the Reverse Engineering of UML Sequence Diagrams for Distributed Java Software," IEEE Trans. Software Eng., vol. 32, no. 9, pp. 642-663, Sept. 2006.
[8] G. Casella, G. Costagliola, F. Ferrucci, G. Polese, and G. Scanniello, "Visual Languages for Defining Adaptive and Collaborative e-Learning Activities," Proc. IADIS Int'l Conf.: e-Soc. '04, vol. 1, pp. 243-250, July 2004.
[9] E.J. Chikofsky and J.H. Cross,II, "Reverse Engineering and Design Recovery: A Taxonomy," IEEE Software, vol. 7, no. 1, pp. 13-17, Jan. 1990.
[10] M. Christodorescu, S. Jha, and C. Kruegel, "Mining Specifications of Malicious Behavior," Proc. Sixth Joint Meeting of the European Software Eng. Conf. and ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 5-14, Sept. 2007.
[11] C. Csallner, Y. Smaragdakis, and T. Xie, "DSD-Crasher: A Hybrid Analysis Tool for Bug Finding," ACM Trans. Software Eng. and Methodology, vol. 17, no. 2, pp. 345-371, July 2008.
[12] G. Costagliola, V. Deufemia, and G. Polese, "A Framework for Modeling and Implementing Visual Notations with Applications to Software Engineering," ACM Trans. Software Eng. and Methodology, vol. 13, no. 4, pp. 431-487, Oct. 2004.
[13] G. Costagliola, A.D. Lucia, V. Deufemia, C. Gravino, and M. Risi, "Design Pattern Recovery by Visual Language Parsing," Proc. Ninth European Conf. Software Maintenance and Reeng., pp. 102-111, Mar. 2005.
[14] G. Costagliola, V. Deufemia, F. Ferrucci, and C. Gravino, "Constructing Meta-CASE Workbenches by Exploiting Visual Language Generators," IEEE Trans. Software Eng., vol. 32, no. 3, pp. 156-175, Mar. 2006.
[15] G. Costagliola, V. Deufemia, and M. Risi, "Using Grammar-Based Recognizers for Symbol Completion in Diagrammatic Sketches," Proc. Ninth Int'l Conf. Document Analysis and Recognition, pp. 1078-1082, Sept. 2007.
[16] D.J. Cook and L.B. Holder, "Substructure Discovery Using Minimum Description Length and Background Knowledge," J. Artificial Intelligence Research, vol. 1, pp. 231-255, Feb. 1994.
[17] J.E. Cook and A.L. Wolf, "Discovering Models of Software Processes from Event-Based Data," ACM Trans. Software Eng. and Methodology, vol. 7, no. 3, pp. 215-249, July 1998.
[18] M.M. Diep, S. Elbaum, and M. Dwyer, "Reducing Irrelevant Trace Variation," Proc. 22nd IEEE/ACM Int'l Conf. Automated Software Eng., pp. 477-480, Nov. 2007.
[19] P. Dupont, B. Lambeau, C. Damas, and A.V. Lamsweerde, "The QSM Algorithm and Its Application to Software Behavior Model Induction," Applied Artificial Intelligence, vol. 22, no. 1-2, pp. 77-115, Jan. 2008.
[20] Handbook on Graph Grammars and Computing by Graph Transformation: Applications, Languages and Tools, H. Ehrig, G. Engels, H.J. Kreowski, and G. Rozenberg, eds. World Scientific, 1999.
[21] Handbook of Graph Grammars and Computing by Graph Transformation: Concurrency, Parallelism, and Distribution, H. Ehrig, H.J. Kreowski, U. Montanari, and G. Rozenberg, eds. World Scientific, 1999.
[22] Y.G. Gueheneuc and T. Ziadi, "Automated Reverse-Engineering of UML 2.0 Dynamic Models," Proc. Sixth ECOOP Workshop Object-Oriented Reeng., pp. 1-5, July 2005.
[23] A. Hamou-Lhadj and T. Lethbridge, "Compression Techniques to Simplify the Analysis of Large Execution Traces," Proc. 10th Workshop Program Comprehension, pp. 159-168, June 2002.
[24] A. Hamou-Lhadj and T. Lethbridge, "Summarizing the Content of Large Traces of Facilitate the Understanding of the Behavior of a Software System," Proc. 14th IEEE Int'l Conf. Program Comprehension, pp. 181-190, June 2006.
[25] C.E. Hrischuk and C.M. Woodside, "Logical Clock Requirements for Reverse Engineering Scenarios from a Distributed System," IEEE Trans. Software Eng., vol. 28, no. 4, pp. 321-339, Apr. 2002.
[26] G. Hughes and T. Bultan, "Interface Grammars for Modular Software Model Checking," Proc. Int'l Symp. Software Testing and Analysis, pp. 39-49, July 2007.
[27] R. Jin, C. Wang, D. Polshakov, S. Parthasarathy, and G. Agrawal, "Discovering Frequent Topological Structures from Graph Datasets," Proc. ACM SIGKDD, pp. 606-611, Aug. 2005.
[28] I. Jonyer, "Context-Free Graph Grammar Induction Based on the Minimum Description Length Principle," PhD dissertation, Dept. of Computer Science, Univ. of Texas at Arlington, 2003.
[29] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W.G. Griswold, "An Overview of AspectJ," Proc. 15th European Conf. Object-Oriented Programming, pp. 327-353, June 2001.
[30] J. Kukluk, L. Holder, and D. Cook, "Inference of Node Replacement Recursive Graph Grammar," Proc. Sixth SIAM Int'l Conf. Data Mining, pp. 544-548, Apr. 2006.
[31] J. Kong, "Visual Programming Languages and Applications," PhD dissertation, Univ. of Texas at Dallas, 2006.
[32] J. Kong, K. Zhang, and X.Q. Zeng, "Spatial Graph Grammars for Graphical User Interfaces," ACM Trans. Computer-Human Interaction, vol. 13, no. 2, pp. 268-307, June 2006.
[33] Z. Li and Y. Zhou, "PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code," Proc. 10th European Software Eng. Conf. held jointly with 13th ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 306-315, June 2005.
[34] Z. Li, S. Lu, S. Myagmar, and Y. Zhou, "CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code," IEEE Trans. Software Eng., vol. 32, no. 3, pp. 176-192, Mar. 2006.
[35] X. Liu, Y. Xiong, and E.A. Lee, "The Ptolemy II Framework for Visual Languages," Proc. IEEE Symp. Human-Centric Computing Languages and Environments, pp. 50-51, Sept. 2001.
[36] M. Minas, "Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation," Science of Computer Programming, vol. 40, pp. 157-180, 2002.
[37] H. Safyallah and K. Sartipi, "Dynamic Analysis of Software Systems Using Execution Pattern Mining," Proc. 14th IEEE Int'l Conf. Program Comprehension, pp. 84-88, June 2006.
[38] M. Salah, S. Mancoridis, G. Antoniol, and M.D. Penta, "Scenario-Driven Dynamic Analysis for Comprehending Large Software System," Proc. 10th European Conf. Software Maintenance and Reeng., pp. 10-19, Mar. 2006.
[39] K. Sartipi and H. Safyallah, "Application of Execution Pattern Mining and Concept Lattice Analysis on Software Structure Evaluation," Proc. 18th Int'l Conf. Software Eng. and Knowledge Eng., pp. 302-308, July 2006.
[40] A. Schürr, A.J. Winter, and A. Zündorf, "The PROGRES Approach: Language and Environment," Handbook on Graph Grammars and Computing by Graph Transformation: Applications, Languages and Tools, H. Ehrig, G. Engels, H.J. Kreowski, and G. Rozenberg, eds., pp. 487-550, World Scientific, 1999.
[41] I. Sommerville, Software Engineering, sixth ed. Addison-Wesley, 2000.
[42] T. Standish, "An Essay on Software Reuse," IEEE Trans. Software Eng., vol. 10, no. 5, pp. 494-497, Sept. 1984.
[43] Software Visualization: Programming as a Multimedia Experience, J. Stasko, J. Domingue, M.H. Brown, and B.A. Price, eds. MIT Press, 1998.
[44] M. Taghdiri, R. Seater, and D. Jackson, "Lightweight Extraction of Syntactic Specifications," Proc. 14th ACM SIGSOFT Symp. Foundation of Software Eng., pp. 276-286, Nov. 2006.
[45] R.M.H. Ting and J. Bailey, "Mining Minimal Contrast Subgraph Patterns," Proc. Sixth SIAM Int'l Conf. Data Mining, pp. 638-642, Apr. 2006.
[46] N. Walkinshaw, K. Bogdanov, M. Holcombe, and S. SalaHuddin, "Reverse Engineering State Machines by Interactive Grammar Inference," Proc. 14th Working Conf. Reverse Eng., pp. 209-218, Oct. 2007.
[47] W. Weimer and G.C. Necula, "Mining Temporal Specifications for Error Detection," Proc. 11th Int'l Conf. Tools and Algorithms for the Construction and Analysis of Systems, pp. 461-476, Apr. 2005.
[48] T. Xie, J. Pei, and A.E. Hassan, "Mining Software Engineering Data," Proc. 29th Int'l Conf. Software Eng., pp.172-173, May 2007.
[49] X. Yan and J. Han, "gSpan: Graph-Based Substructure Pattern Mining," Proc. Int'l Conf. Data Mining, pp. 721-724, Dec. 2002.
[50] A. Zaidman, T. Calders, S. Demeyer, and J. Paredaens, "Applying Webmining Techniques to Execution Traces to Support the Program Comprehension Process," Proc. Ninth European Conf. Software Maintenance and Reeng., pp. 134-142, Mar. 2005.
[51] D.Q. Zhang, K. Zhang, and J. Cao, "A Context-Sensitive Graph Grammar Formalism for the Specification of Visual Languages," J. Computer, vol. 44, no. 3, pp. 186-200, 2001.
[52] K. Zhang, D.Q. Zhang, and J. Cao, "Design, Construction, and Application of a Generic Visual Language Generation Environment," IEEE Trans. Software Eng., vol. 27, no. 4, pp. 289-307, Apr. 2001.
[53] X. Zhang and R. Gupta, "Matching Execution Histories of Program Versions," Proc. 10th European Software Eng. Conf. held jointly with 13th ACM SIGSOFT Int'l Symp. Foundations of Software Eng., pp. 197-206, Sept. 2005.
[54] C. Zhao, K. Ates, J. Kong, and K. Zhang, "Discovering Program's Behavioral Patterns by Inferring Graph-Grammars from Execution Traces," Proc. 20th IEEE Int'l Conf. Tools with Artificial Intelligence, pp. 395-402, Nov. 2008.
[55] C. Zhao and K. Zhang, "A Grammar-Based Reverse Engineering Framework for Behavior Verification," Proc. 11th IEEE High Assurance Systems Eng. Symp., pp. 449-452, Dec. 2008.
[56] C. Zhao, K. Zhang, and Y. Lei, "Abstraction of Multiple Executions of Object-Oriented Programs," Proc. 24th Ann. ACM Symp. Applied Computing, pp. 549-550, Mar. 2009.
[57] http:/www.fujaba.de, 2010.
[58] http:/graphml.graphdrawing.org/, 2010.
[59] http:/www.jhotdraw.org/, 2010.
[60] http://user.cs.tu-berlin.de/~gragraagg, 2010.
6 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool