1. Introduction: The Dictionary Problem. Onward and Upward. Other Program Generators. Why Use Program Generators? Organization of the Book.
2. Domain Analysis Concepts. Domains. Decisions-the Atoms of Domain Engineering. Variations-the Heart of Domain Engineering. Roles-Who Makes Decisions. Binding Times-When Decisions Are Made. Domain Engineering Lifecycle. Commonalities. Variabilities. A Balancing Act. Domain Analysis Methods. FAST Domain Model. Summary. Further Reading.
3. An Example Domain Analysis. Day One. Day Two. Day Three. Day Four. Day Five. The Domain Analysis Report. Summary.
4. Separation of Concerns. Abstractions. Techniques for Separating Concerns. Summary. Further Reading.
5. XML: A Standard Representation for Specifications. To XML or Not? XML Elements. XML Attributes. XML Predefined Entities. Creating a Domain-Specific XML Structure. Elements or Attributes? The Play Domain Using XML. DTDs. XML Tools. Play Domain Phase. Summary. Further Reading.
6. Run-Time Variabilities. Java Property Files. XML as a Configuration File. The Play Domain with Run-Time Variabilities. Summary.
7. Compile-Time Variabilities. Compile-Time Constants. Play Domain and Inheritance. Comparing Run-Time, Compile-Time, and Generation-Time Variabilities. Preprocessing-Time Variabilities. Summary. Further Reading.
8. The Styles of Generated Programs. Comparing Handcrafted and Generated Programs. Comparing Three Styles of Generated Programs. OO-Driven Style. Code-Driven Style. Table-Driven Style. Summary.
9. Using DOM to Generate Programs. Reading and Storing the Specification Using XML Parsers. DOM Analysis and Transformations. Program Generation from the DOM. The Play Program Generator using DOM. Summary. Further Reading.
10. Using Java Server Pages to Generate Programs. Applets and Servlets. Java Server Pages. Chart Applet Program Generator. The JSP Translator, a Simple Program Generator. Play Domain Program Generator. Summary.
11. Using XPath and XSLT to Generate Programs. XPath. XSLT. Using XPath and XSLT in the Play Domain. Summary.
12. Crafting Your Own Template Language. Evaluating JSP and XSLT. TL-A New Template Language. The Informal TL Specification. Translating TL to the Java Language. Summary. Further Reading.
13. Composition of Components. Components and JavaBeans. Components and Dependencies. Interfaces and IDLs. Module Interconnection Languages. Bean Markup Language. Crafting Your Own MIL. Summary. Further Reading.
Index.