Title :
Iterative Planning in the Context of Automated Code Synthesis
Author :
Fu, Jicheng ; Bastani, Farokh B. ; Yen, I-Ling
Author_Institution :
Univ. of Texas, Dallas
Abstract :
Software development process has become increasingly complex and expensive due to the growing size and criticality of modern software systems. Deficiencies during the development process lead to significant quality problems that can hamper both the initial development as well as subsequent maintenance activities. Hence, it is imperative to develop advanced techniques to increase the overall software dependability and reduce its development cost and time. Automated code synthesis is a promising method of achieving the above goals. It is a constructive process that can be used to generate programs from specifications. It can accelerate the development process and simplify verification tasks. However, current automated code synthesis techniques have only limited abilities and are mostly able to generate sequential codes. Automated AI planning is attractive for software engineering automation because of its emphasis on goals and the similarity of plans to programs. In this paper, we present a novel iterative planning approach to generate parameterized procedure-like generic reusable plans, i.e., procedural plans. Specifically, we enhance the Graphplan algorithm to a two-phased algorithm that is able to generate loop and conditional constructs. The proposed iterative planning approach is targeted for automated code synthesis and leads to sophisticated code synthesis in combination with component-based software development (CBSD). We have implemented a prototype for our iterative planning approach and used it to solve several well-known planning problems. The results show that the implemented planner is able to reason about complex relationships among planning operators and automatically generate procedural plans. It preserves the good performance of Graphplan and can scale well when the search space grows larger.
Keywords :
automatic programming; data flow graphs; object-oriented programming; planning (artificial intelligence); program compilers; program control structures; program verification; software maintenance; software quality; software reusability; Graphplan algorithm; automated AI planning; automated code synthesis techniques; component-based software development; conditional constructs; iterative planning approach; loop constructs; maintenance activities; parameterized procedure-like generic reusable plans; quality problems; software dependability; software development process; software engineering automation; two-phased algorithm; verification tasks; Acceleration; Artificial intelligence; Automation; Costs; Iterative algorithms; Iterative methods; Programming; Software engineering; Software prototyping; Software systems;
Conference_Titel :
Computer Software and Applications Conference, 2007. COMPSAC 2007. 31st Annual International
Conference_Location :
Beijing
Print_ISBN :
0-7695-2870-8
DOI :
10.1109/COMPSAC.2007.132