Colophon

This thesis is written in UK English, set with Trebuchet MS, 10pt, using a line spacing of 1.5. Program listings are illustrated with Courier New, 8pt, and syntax highlighted. Program code inlined in normal text is written using Courier New, 10pt, in grey as in java.lang.Object. Inlined code representing source code developed in this thesis is clickable and underlined with a dotted line; the links point to the generated JavaDoc, as in meta.model.Sequence<E>. Quotations are written using Times New Roman, 11pt, in italics; bold text within quotations identifies the author being quoted, or emphasises issues deemed important by the undersigned. Important terms or names, such as design pattern names, classifications, concepts, and type names are capitalised, as the Factory Method pattern or the Equilibrium property pertaining to pattern quality. Design pattern names are clickable, and point to the List of Patterns page.

References are alphabetised by the surname of the primary author, followed by the year of publication if possible. Citations are written in square brackets, separated by semicolon in alphabetical order, including the name and possible year with two digits only, for example [Alexander77; Lea00]. They are clickable, and point to the Bibliography. Page, table, figure, or item references are prefixed with p, t, f, and i, respectively, for example [Lea00, i.12] for the twelfth FAQ item presented there. Page references are supplied if possible and only if the reference in question has explicit page numbers, for example [Gamma95, p.6]. An item will be referenced the first time encountered in the context at hand, and only again if the context warrants it.

Figures, tables, program listings, and examples are enumerated for easy reference. The enumeration format is the chapter number followed by a dot and a sequence number local to the chapter, e.g. 2.1, 2.2, 3.1, 4.1, 4.2, 4.3, etc. References to chapters, sections, figures, tables, program listings, and examples are set in bold—face, as figure 2.1, and are clickable; the links naturally point to a respective figure, table, program listing, or example. By clicking on figures depicting UML Class Diagrams (in chapters 6 and 8), larger diagrams can be viewed as part of the generated JavaDoc.