This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Automated Software Synthesis: An Application in Mechanical CAD
October 1998 (vol. 24 no. 10)
pp. 848-862

Abstract—Automated program synthesis has not gained widespread acceptance among software practitioners despite considerable efforts by several researchers. We outline some of the difficulties in applying program synthesis for practical problems and argue that a careful analysis of the cost vs. benefit tradeoff is essential when considering such an approach. We describe a successful application of automated program generation for synthesizing geometric constraint satisfaction routines in the domain of mechanical CAD. We present a general framework for modeling and solving the problem, illustrate the framework using examples from the geometric constraint satisfaction domain, and describe experimental results on productivity increase using this approach. We also discuss characteristics of the problem domain and our approach that were critical for success.

[1] IEEE Trans. Software Eng., vol. 21, no. 4, Apr. 1995.
[2] G.F. Arango, "Domain Analysis—From Art Form to Engineering Principle," Proc. Fifth Int'l Workshop on Software Specification and Design, 1989.
[3] D. Batory and S. O'Malley, "The Design and Implementation of Hierarchical Software Systems with Reusable Components," ACM TOSEM, pp. 355-398, Oct. 1992.
[4] D. Batory and B.J. Geraci, ”Composition Validation and Subjectivity in (GenVoca) Generators,” IEEE Trans. Software Eng., vol. 23, no. 2, pp. 67–82, Feb. 1997.
[5] I.D. Baxter, "Transformational Maintenance by Reuse of Design Histories," PhD thesis, Dept. of Information and ComputerScience, Univ. of California, Irvine, 1990.
[6] I.D. Baxter and C. Pidgeon, "Software Change through Design Maintenance," Proc. Int'l Conf. Software Maintenance,Bari, Italy, 1997.
[7] S. Bhansali and M.T. Harandi, "Synthesis of UNIX Programs Using Derivational Analogy," Machine Learning, vol. 10, no. 1, pp. 7-56, 1993.
[8] S. Bhansali, G.A. Kramer, and T.J. Hoar, "A Principled Approach Towards Symbolic Geometric Constraint Satisfaction," J. Artificial Intelligence Research, vol. 4, pp. 419-443, 1996.
[9] T.J. Biggerstaff and A.J. Perlis, Software Reusability: Volume I: Concepts and Models. ACM Press, A Division of the Association for Computing Machinery, 1989.
[10] M.R. Genesereth and N.J. Nilsson,Logical foundations of artificial intelligence, Morgan Kaufmann, Los Altos, CA, 1987.
[11] C.P. Gomes, D. Smith, and S. Westfold, "Synthesis of Schedulers for Planned Shutdowns of Power Plants," Proc. 11th Knowledge-Based Software Eng. Conf.,Syracuse, New York, pp. 12-20, 1996.
[12] T. Hoar, "Automatic Program Synthesis for Geometric Constraint Satisfaction," Masters thesis, School of EECS, Washington State Univ., 1995.
[13] J.E. Hopcroft and J.D. Ullman, Introduction to Automata Theory, Languages and Computation. Addison-Wesley, Apr. 1979.
[14] G. Huet, "A Unification Algorithm for Typed Lambda-Calculus," Theoretical Computer Science, vol. 1, no. 1, pp. 27-57, 1975.
[15] G.A. Kramer, Solving Geometric Constraint Systems: A Case Study in Kinematics.Cambridge, Mass.: MIT Press, 1992.
[16] G.A. Kramer, "A Geometric Constraint Engine," Artificial Intelligence, vol. 58, nos. 1-3, pp. 327-360, 1993.
[17] C. Krueger, “Software Reuse,” ACM Computing Surveys, June 1992, pp. 131‐183.
[18] L.S. Levy, Taming the Tiger: Software Eng. and Software Economics.New York: Springer-Verlag, 1987.
[19] Y. Liu and R.J. Popplestone, "Symmetry Constraint Inference in Assembly Planning: Automatic Assembly Configuration Specification," Proc. Natinal Conf. Artificial Intelligence,Boston, Mass., 1990.
[20] M. Lowry and R. McCartney, Automating Software Design, AAAI Press/The MIT Press, Menlo Park, 1991.
[21] M. Lowry, A. Philpot, T. Pressburger, and I. Underwood, "A Formal Approach to Domain-Oriented Software Design Environments," Proc. Ninth Knowledge-Based Software Eng. Conf.,Monterey, Calif., 1994.
[22] E. Mettala and M.H. Graham, "The Domain-Specific Software Architecture Program," CMU/SEI-92-SR-9, 1992.
[23] H. Mili, F. Mili, and A. Mili, Reusing Software: Issues and Research Directions IEEE Trans. Software Eng., vol. 21, no. 6, pp. 528-562, June 1995.
[24] J. Neighbors, "The DRACO Approach to Constructing Software from Reusable Components," IEEE Trans. Software Eng., vol. 10, no. 9, pp. 564-573, 1984.
[25] G. Novak, “Software Reuse by Specialization of Generic Procedures through Views,” IEEE Trans. Software Eng., vol. 23, no. 7, pp. 401-417, July 1997.
[26] W.H. Press, B.P. Flannery, S.A. Teukolsky, and W.T. Vetterling, Numerical Recipes, the Art of Scientific Computing. Cambridge, Mass.: Cambridge Univ. Press, 1986.
[27] R. Prieto-Diaz and G. Arango, Eds.,Domain Analysis and Software Systems Modeling.Los Alamitos, CA: IEEE Computer Society Press, 1991.
[28] C. Simonyi, "The Death of Computer Languages, the Birth of Intentional Programming," NATO Science Committee Conf., 1995.
[29] D.R. Smith, KIDS: A Semiautomatic Program Development System IEEE Trans. Software Eng., vol. 16, no. 9, pp. 1024-1043, 1990.
[30] D.R. Smith, E. Parra, and S. Westfold, "Synthesis of High Performance Transportation Schedulers," Technical Report KES.U.95.1, Kestrel Institute, 1995.
[31] Usenix, "The Conference on Domain-Specific Languages Proceedings,"Santa Barbara, Calif., 1997.
[32] Q. Xia, "Implementation of a Geometric Constraint Satisfaction System," Masters Project Report, School of EECS, Washington State Univ., 1995.

Index Terms:
Program synthesis, reuse, domain engineering, geometric constraint-satisfaction, planning.
Citation:
Sanjay Bhansali, Tim J. Hoar, "Automated Software Synthesis: An Application in Mechanical CAD," IEEE Transactions on Software Engineering, vol. 24, no. 10, pp. 848-862, Oct. 1998, doi:10.1109/32.729684
Usage of this product signifies your acceptance of the Terms of Use.