This Article 
 Bibliographic References 
 Add to: 
Design Wizards and Visual Programming Environments for GenVoca Generators
May 2000 (vol. 26 no. 5)
pp. 441-452

Abstract—Domain-specific generators will increasingly rely on graphical languages for declarative specifications of target applications. Such languages will provide front-ends to generators and related tools to produce customized code on demand. Critical to the success of this approach will be domain-specific design wizards, tools that guide users in their selection of components for constructing particular applications. In this paper, we present the P3 ContainerStore graphical language, its generator, and design wizard.

[1] A.V. Aho,J.E. Hopcroft, and J.D. Ullman,The Design and Analysis of Computer Algorithms.Reading, Mass.: Addison-Wesley, 1974.
[2] R. Allen, R. Douence, and D. Garlan, “Specifying and Analyzing Dynamic Software Architectures,” Proc. Conf. Fundamental Approaches to Software Eng., Mar. 1998.
[3] R. Balzer, "A 15 Year Perspective on Automatic Programming," IEEE Trans. Software Eng., vol. 11, Nov. 1985.
[4] D. Batory, “On the Complexity of the Index Selection Problem,” unpublished manuscript, 1978.
[5] D. Batory et al., "Scalable Software Libraries," Proc. ACM SIGSOFT, pp. 191-199, Dec. 1993.
[6] D. Batory, J. Thomas, and M. Sirkin, "Reengineering a Complex Application Using a Scalable Data Structure Compiler," Proc. ACM SIGSOFT '94, Dec. 1994.
[7] 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.
[8] D. Batory, “Intelligent Components and Software Generators,” Proc. Software Quality Inst. Symp. Software Reliability, Apr. 1997.
[9] D. Batory, B. Lofaso, and Y. Smaragdakis, JTS: Tools for Implementing Domain-Specific Languages Proc. Fifth Int'l Conf. Software Reuse, June 1998.
[10] I.D. Baxter, ”Design Maintenance Systems,” Comm. ACM, vol. 35, no. 4, pp. 73–89, Apr. 1992.
[11] T. Biggerstaff, "The Library Scaling Problem and the Limits of Concrete Component Reuse," Int'l Conf. Software Reuse,Rio de Janeiro, pp. 102-109, 1994.
[12] S.V. Browne and J.W. Moore, “Reuse Library Interoperability and the World Wide Web,” Proc. Int'l Conf. Software Eng., pp. 684-691, May 1997.
[13] D. Cohen and N. Campbell, “Automating Relational Operations on Data Structures,” IEEE Software, May 1993.
[14] D. Das and D. Batory, “Prairie: A Rule Specification Framework for Query Optimizers,” Proc. Int'l Conf. Data Eng., pp. 201-210, Mar. 1995.
[15] A. Van Duersen and P. Klint, “Little Languages: Little Maintenance?” Proc. First ACM SIGPLAN Workshop Domain-Specific Languages, 1997.
[16] C.M. Eastman, “Automated Space Planning,” Artificial Intelligence, vol. 4, pp. 41-64, 1973.
[17] G. Graefe and D. DeWitt, “The Exodus Optimizer Generator,” Proc. ACM SIGMOD, 1987.
[18] P. Jenkins, D. Whitmore, G. Glass, and M. Klobe, “JGL: The Generic Collection Library for Java,” ObjectSpace Inc., URL:http://www.objectspace.comjgl/, 1997.
[19] E. Kant, "Synthesis of Mathematical Modeling Software," IEEE Software, Vol. 10, No. 3, 1993, pp. 30-41.
[20] G. Kiczales, J. Lampling, C.V. Lopes, C. Maeda, A. Mendhekar, and G. Murphy, “Open Implementation Design Guidelines,” Proc. Int'l Conf. Software Eng., 1997.
[21] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.V. Lopes, J. Loingtier, and J. Irwin, “Aspect-Oriented Programming,” Proc. European Conf. Object-Oriented Programming '97 pp. 220-242, 1997.
[22] R. Kieburtz, L. McKinney, J. Bell, J. Hook, A. Kotov, J. Lewis, D. Oliva, T. Sheard, I. Smith, and L. Walton, “A Software Engineering Experiment in Software Component Generation,” Proc. 18th IEEE Int'l Conf. Software Eng, ICSE-18, pp. 542–553, 1996.
[23] R. Laddaga, Self-Adaptive Software Workshop, Kestrel Inst., July 1997.
[24] M. Lowry, A. Philpot, T. Pressburger, and I. Underwood, “AMPHION: Automatic Programming for Scientific Subroutine Libraries,” Proc. Int'l Symp. Methodologies for Intelligent Systems, pp. 326-335, Oct. 1994.
[25] Z. Manna and R. Waldinger, "Fundamentals of Deductive Program Synthesis," IEEE Trans. Software Eng., Aug. 1992, pp. 674-704.
[26] M.F. Mitoma and K.B. Irani, “Automatic Database Schema Design and Optimization,” Proc. 1975 Very Large Databases Conf., pp. 286-321, 1975.
[27] D.R. Musser, A. Saini, and A. Stepanov, STL Tutorial&Reference Guide: C++ Programming with the Standard Template Library. Addison-Wesley, 1996.
[28] G. Novak, “Software Reuse by Specialization of Generic Procedures through Views,” IEEE Trans. Software Eng., vol. 23, no. 7, pp. 401-417, July 1997.
[29] M. Odersky and P. Wadler, “Pizza into Java: Translating Theory into Practice,” Proc. ACM Principles of Programming Languages, 1997.
[30] P. Oreizy, N. Medvidovic, and R.N. Taylor, “Architecture-Based Runtime Software Evolution,” Proc. Int'l Conf. Software Eng., 1998.
[31] V. Poosala, Y. Ioannidis, P. Haas, and E. Shekita, “Improved Histograms for Selectivity Estimation of Range Predicates,” Proc. ACM SIGMOD 1996, pp. 294-305, 1996.
[32] E. Schonberg, J.T. Schwartz, and M. Sharir, "An Automatic Technique for Selection of Data Representations in SETL Programs," ACM Trans. Prog. Language and Systems, vol. 3, no. 2 pp. 126-143, Apr. 1981.
[33] M. Sirkin,D. Batory,, and V. Singhal,“Software components in a data structure precompiler, Proc. 15th Int’l Conf. on Software Engineering, pp. 437-446,Baltimore, Maryland, May17-21, 1993, ACM Press.
[34] Y. Smaragdakis and D. Batory, “DiSTiL: A Transformation Library for Data Structures,” Proc. USENIX Conf. Domain-Specific Languages, 1997.
[35] D.R. Smith, KIDS: A Semiautomatic Program Development System IEEE Trans. Software Eng., vol. 16, no. 9, pp. 1024-1043, 1990.
[36] J. Sztipanovits, G. Karsai, and T. Bapty, “Self-Adaptive Software for Signal Processing,” Comm. ACM, pp. 67-73, May 1998.
[37] L. Warshaw, D. Miranker, and T. Wang, “A General Purpose Rule Language as the Basis of a Query Optimizer,” UTCS TR97-19, Univ. of Texas at Austin, July 1997.
[38] J.S. Poulin and K.J. Werkman, “Melding Structured Abstracts and the World Wide Web for Retrieval of Reusable Components,” Proc. Symp. Software Reusability, pp. 160-168, 1995.
[39] X3M Solutions, “CAL: The Container and Algorithm Library for the Java Platform,” URL:, 1997.

Index Terms:
Self-adaptive software, architectural optimizations, generators, components, refinements, applications product-lines.
Don Batory, Gang Chen, Eric Robertson, Tao Wang, "Design Wizards and Visual Programming Environments for GenVoca Generators," IEEE Transactions on Software Engineering, vol. 26, no. 5, pp. 441-452, May 2000, doi:10.1109/32.846301
Usage of this product signifies your acceptance of the Terms of Use.