Antes de poder construir cualquier artefacto debemos implementar el esquema de fábrica de software, definiendo los DSLs, patrones, marcos y herramientas que el mismo describe, empaquetarlos, y ponerlos a disposición de los desarrolladores del producto. Todos estos activos son denominados colectivamente: plantilla de fábrica de software.
Una plantilla de fábrica de software incluye código y metadata que puede ser cargado en herramientas extensibles, como un Ambiente de Desarrollo Interactivo (IDE), para automatizar el desarrollo y mantenimiento de los miembros de la familia. La llamamos plantilla de fábrica de software porque configura las herramientas para producir un tipo específico de software, de la misma manera que una plantilla de documento cargada en una herramienta como Microsoft Word o Excel configura la herramienta para producir un tipo específico de documento.Al igual que un esquema de fábrica de software, una plantilla de fábrica de software debe ser ajustada para un miembro específico de la familia. Mientras que ajustar un esquema de fábrica de software implica ajustar la descripción de la fábrica de software para el miembro de la familia, ajustar una plantilla implica el ajuste de los activos utilizados para construir al miembro de la familia. La plantilla de fábrica de software es generalmente ajustada al mismo tiempo que el software mediante el agregado, eliminación y modificación de los activos asociados con los puntos de vista.
Ejemplos de ajustes de plantillas de fábrica de software incluyen la creación de proyectos para los subsistemas y componentes a ser desarrollados, seleccionar los patrones a ser utilizados, etc. Por ejemplo, soportar personalización de contenido en una aplicación de comercio electrónico puede causar lo siguiente:
- El punto de vista utilizado para configurar el subsistema de personalización es agregado al esquema.
- Una herramienta de configuración de personalización aparece disponible en el ambiente de desarrollo.
- Un directorio para el subsistema de personalización es agregado al proyecto de la aplicación.
- El marco y los patrones de personalización son importados dentro del proyecto.
- El patrón Front Controller es aplicado automaticamente en la transformación entre el modelo de interacción del usuario y el modelo de diseño web y aparece disponible en el diseñador web en lugar de aplicarse el patrón Page Controller; de esta manera la aplicación puede utilizar páginas diferentes para cada usuario en lugar de mostrar un único contenido a todos los usuarios.
- La política en el directorio donde reside la capa de presentación es modificada para impedir la creación de clases que deriven de PageController.