SCT (Specification-Configuration-Templates) model defines generative application development as a process of several basic steps:
1. Application prototype (starting point). Application prototype is particular application from generator's problem domain that is syntactically and semantically correct.
2. Defining output types to be generated. An output type depends on top-level code template that is used in generation (e.g. templates could be defined for HTML forms, program files, XML files etc.).
3. Separation of concerns. This is the key step that include several operations:
- Defining application properties that vary among different generated applications.
- Modification of prototype code into code templates.
- Connecting Specification features with code templates in Configuration.
4. Testing. Model itself does not guarrantee the correctness (sintactic and semantic) of generated application. But, some issues could be tested automatically:
- Model correctness.
- Syntactic correctness of generated code.
Phases 3 and 4 are circular, because building generators and target applications are parralel processes.
Variation mechanism. SCT is, similar to Jarzabek's XVCL, a variation mechanism that enables making of Software product Lines (SPL). It uses fully configurable generator for automatic assembling of source code by modifying of code templates.
Typeless model. SCT is aspect oriented. Join points in SCT are typeless which makes Configuration clear and easy.
Object-oriented features. Main concepts of OOP, like Encapsulation, inheritance and dynamic polymorphism are achieved in SCT. That enables nesting of generators, similar to the nesting of program structures in OOP.
Graphic modelling. Graphic model of SCT based generator consist of two diagrams: Specification diagram and Configuration diagram, which are inherited from GSM.
XML representation. The XML format of the SCT frame is also given by the XML schema.