Feature oriented programming (FOP) is the study of feature mod ularity and its use in program synthesis. AHEAD is a theory of FOP that is based on a fundamental concept of generative programming that functions map programs. This enables the design of programs to be expressed compo sitionally as algebraic expressions, which are suited for automated analysis, manipulation, and program synthesis. This paper is a tutorial on FOP and AHEAD. We review AHEAD’s theory and the tool set that implements it.


Propositional Formula Automatic Programming Feature Diagram Equation File Java File 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    AHEAD Tool Suite, (ATS documentation)
  2. 2.
    Balzer, R.: A Fifteen-Year Perspective on Automatic Programming. IEEE Trans. Software Engineering, 1257–1267 (November 1985); Mid-80’s state-of-art-report on automatic programmingGoogle Scholar
  3. 3.
    Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Trans. Software Engineering and Methodology, 355–398 (October 1992); The GenVoca Model.Google Scholar
  4. 4.
    Batory, D.: The Road to Utopia: A Future for Generative Programming. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 1–18. Springer, Heidelberg (2004); Rela¬tionship of query optimization to AHEADCrossRefGoogle Scholar
  5. 5.
    Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling Stepwise Refinement. IEEE Trans. Software Engineering, 355–371 (2004); The AHEAD modelGoogle Scholar
  6. 6.
    Batory, D., Liu, J., Sarvela, J.N.: Refinements and Multi-Dimensional Separation of Concerns. In: ACM SIGSOFT 2003, pp. 48–57 (2003); A sophisticated example of OrigamiGoogle Scholar
  7. 7.
    Batory, D., Johnson, C., MacDonald, R., von Heeder, D.: Achieving Extensibility Through Product-Lines and Domain-Specific Languages: A Case Study. ACM Transactions on Software Engineering and Methodology, 191–214 (April 2002); A product-line that needs both extensions and embedded DSLsGoogle Scholar
  8. 8.
    Batory, D., Chen, G., Robertson, E., Wang, T.: Design Wizards and Visual Programming Environments for GenVoca Generators. IEEE Transactions on Software Engineering, 441–452 (May 2000); Explains relationship between automatic programming and GenVoca equation optimizationGoogle Scholar
  9. 9.
    Batory, D., Geraci, B.J.: Composition Validation and Subjectivity in GenVoca Generators. IEEE Transactions on Software Engineering, 67–82 (1997); Early form of design rule checkingGoogle Scholar
  10. 10.
    Batory, D.: Feature Models, Grammars, and Propositional Formulas. In: Software Product-Line Conference (SPLC) 2005, pp. 7–20 (2005); Generalizes results inGoogle Scholar
  11. 11.
    de Jong, M., Visser, J.: Grammars as Feature Diagrams. In: Workshop on Generative Programming (GP 2002), April 15, Austin Texas, USA (2002); Relates feature diagrams to grammarsGoogle Scholar
  12. 12.
    Jung, E.J.: Feature Oriented Programming and Product Line Architectures for Open Architecture Robot Software, M.Sc. Thesis, Dept. Mechanical Engineering, University of Texas at Austin (2004); Application of FOP ideas to robotics, OrigamiGoogle Scholar
  13. 13.
    Kang, K., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report, CMU/SEI-90TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA (November 1990); First significant paper on features and product-linesGoogle Scholar
  14. 14.
    Liu, J., Batory, D.: Automatic Remodularization and Optimized Synthesis of Product-Families. In: Generative Programming and Component Engineering (GPCE), pp. 379–395 (October 2004); Shows how sets of equations can be optimizedGoogle Scholar
  15. 15.
    Lopez-Herrejon, R.E., Batory, D.: A Standard Problem for Evaluating Product-Line Methodologies. In: Bosch, J. (ed.) GCSE 2001. LNCS, vol. 2186, pp. 10–24. Springer, Heidelberg (2001); A simple product-line defined using the GenVoca modelCrossRefGoogle Scholar
  16. 16.
    Kohlbecker, E., Friedman, D.P., Felleisen, M., Duba, B.: Hygienic Macro Expansion. In: SIGPLAN 1986 ACM Conference on Lisp and Functional Programming, pp. 151–161 (1986); Classic paper on the inadvertent capture problemGoogle Scholar
  17. 17.
    Product-Line Architecture Research Group,
  18. 18.
    Lopez-Herrejon, R., Batory, D., Cook, W.: Evaluating Support for Features in Advanced Modularization Technologies. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 169–194. Springer, Heidelberg (2005); Using the expression problem to evaluate different modularization technologiesCrossRefGoogle Scholar
  19. 19.
    Lopez-Herrejon, R., Batory, D., Lengauer, C.: A Disciplined Approach to Aspect Composition. In: Program Evaluation and Program Manipulation (PEPM), pp. 68–77 (2005); Formalizes the AspectJ composition modelGoogle Scholar
  20. 20.
    Selinger, P.P., Astrahan, M.M., Chamberlin, D.D., Lorie, R.A., Price, T.G.: Access Path Selection in a Relational Database System. In: ACM SIGMOD 1979, pp. 23–34 (1979); Classic paper on relational query optimizersGoogle Scholar
  21. 21.
    Teitelbaum, T., Reps, T.: The Cornell Program Synthesizer: a Syntax-Directed Programming Environment. CACM 24(9), 563–573 (1981); Classic paper on syntax-directed editorsGoogle Scholar
  22. 22.
    Torgersen, M.: The Expression Problem Revisited. Four New Solutions Using Generics. In: ECOOP 2004, pp. 123–146 (2004); A recent paper on the Expression problemGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Don Batory
    • 1
  1. 1.Department of Computer SciencesUniversity of Texas at AustinAustinU.S.A.

Personalised recommendations