¿Por qué las decisiones de diseño de software se expresan como sintagmas nominales?

Vamos con lo primero: ¿qué es un sintagma nominal? Un sintagma nominal es una secuencia de palabras (constituyente sintáctico) en el que un nombre (sustantivo, en nuestro caso) es la interpretación central. Los sintagmas nominales son el equivalente a las noun phrases del inglés. En la práctica, y para nuestros efectos, un sintagma nominal refleja un sustantivo y no una acción.

Ahora bien, ¿qué es una decisión? Una decisión es una determinación. Es decir, no es el acto de determinar, sino que es el resultado, como producto, del acto de tomar una determinación frente a un problema de diseño de software (ver Nota 1 al pie). Cómo llegamos a estas determinaciones queda fuera del alcance de este artículo, pero en publicaciones anteriores he dedicado algunas líneas a este tema.

Dadas las definiciones anteriores, me parece que ya es claro por qué una decisión de diseño, sea arquitectónica o no, se expresa como un sintagma nominal: estas corresponden a entidades (y de primera clase, en palabras de Bosch [1]) y las entidades o clases de estas son mejor expresadas como sintagmas nominales o, en otras palabras, como una frase que sea interpretable como un sustantivo (ver Nota 2 al pie).

La expresión de decisiones de diseño como sintagmas nominales no se queda en un mero juego reflexivo: el nombre de la decisión en un ADR (architecture decision record [2]) está prescrito como un sintagma nominal, haciendo de los sintagmas nominales un «estándar» para la expresión de decisiones de diseño.

Nota 1: en el modelo de objetos es posible tener una entidad (clase o abstracción) representando la acción de tomar una decisión. Sin embargo, esto ocurre así para el software, cuyos componentes son análogos a abstracciones de un espacio que corresponde a una realidad de diseño. Fuera del software, los verbos representan acciones y los sustantivos entidades o clases de estas y por esta razón evitamos el uso de verbos para representar una decisión.

Nota 2: se prefiere un sintagma nominal a un sustantivo singular por razones prácticas: una decisión de diseño se asocia a demasiada información como para ser expresada con una sola palabra.

[1] «Software Architecture: The Next Step,» Bosch, Springer, 2004.

[2] «Documenting Architecture Decisions,» Nygard, https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions, 2011. Última revisión: octubre de 2023.