Universidad Simón Bolívar
Departamento de Computación y Tecnología de la Información
Ingeniería de Software
 

Justificaciones


Introducción

La documentación tradicional de un desarrollo tradicional se basa en un modelo estático en donde se describe cómo se usa y comporta el sistema, qué es el sistema y cuáles son sus componentes. Frecuentemente quedan implícitas las decisiones que se tomaron para que el sistema tomara exactamente la forma que tiene actualmente.

Una justificación es un argumento que busca convencer o persuadir a alguien que una decisión tomada es (la más) apropiada.

Las justificaciones pueden jugar un papel crucial en el mantenimiento de sistemas, dado que implica no sólo explicitar las decisiones sino por qué se tomaron. Una buena justificación aclara:

Para quien hace mantenimiento es frecuente toparse, por ejemplo con un diseño al que "no le ve la lógica". En tales casos, el mantenedor puede estar convencido de que el diseño es innecesariamente complicado o inadecuado y que él tiene, en la mente, un mejor diseño. Desafortunamente es usual que el mantenedor no haya entendido completamente el problema (por lo que su solución puede quedar corta), las implicaciones de su "solución" (incluyendo el impacto en la duración y costos del mantenimiento, así como en la aceptabilidad por parte de sus clientes), o los criterios que se usaron para escoger el diseño vigente;  ¡hasta puede ocurrir que su diseño fue uno que fue considerado y descartado por los desarrolladores originales!

Si bien la documentación tradicional busca ayudar a responder qué y cómo es un sistema, una documentación basada en justificaciones busca adicionalmente ayudar a responder el por qué es así. En principio, puede intentar justificarse todas las decisiones incluidas en los artefactos de un desarrollo o de un mantenimiento, por lo que pueden haber justificaciones de  metas, requerimientos, modelos conceptuales, modelos de uso, arquitectura, diseños, proceso (o subproceso) de desarrollo. En la práctica son demasiadas las decisiones, por lo que debe justificarse sólo algunas de las decisiones: ojalá las que resulten claves en la posterior evolución del desarrollo.
 

Componentes de una justificación

Para tener una justificación lograda debemos distinguir claramente:

Podemos organizar/estructurar la justificación de diferentes formas, entre ellas:

(Note que la última forma de estructurar una justificación, no hace referencia a otras posibles soluciones). Quizás el siguiente modelo conceptual puede ayudar a aclarar por qué puede haber más de una forma de estructurar una justificación.
 
 


En general, podemos adelantar que las justificaciones de un artefacto suele basarse en los artefactos anteriores que lo restringen. Así:

¿Cuánto justificar?

Puede ser muy pesado capturar y mantener las justificaciones de un sistema; sin embargo debe recalcarse que la justificación es una inversión para facilitar el mantenimiento. Por ende, cuánto invertir en justificaciones depende de cuánto queremos facilitar el proceso de mantenimiento.

Podemos distinguir tres  niveles de  justificaciones:

  1.  No justificar. Esto significa que la documentación del sistema se limita a los modelos tradicionales y las justificaciones se quedan en las memorias de quienes desarrollan --y quizás alguna que otra comunicación escrita entre ellos (e-mail, fax, memo);
  2. Justificar las decisiones principales. Típicamente se "reconstruye" las justificaciones de lo que se identifican como decisiones claves,  cuando se escribe la versión definitiva de la documentación para los futuros desarrolladores. No se intenta capturar propuestas descartadas.
  3. Justificación completa. Se captura la discusión sobre el problema, las propuestas, los criterios y  la decisión cuando ocurre (en vivo).

Justificaciones en Delta Pensum

La incorporación de justificaciones en Delta Pensum es un proyecto en curso y se realiza de manera muy modesta. Actualmente no se pretende más que explorar las implicaciones de justificar algunas decisiones.

La descripción de los requerimientos de Delta Pensum 3.x incluye  elementos de algunas justificaciones.

La descripción del requerimiento de Delta Pensum 3.1.x,  presenta:

No presenta una  decisión, (y por eso es un requerimiento) . Para llegar a resolver el problema planteado se debe:


Es interesante analizar la justificación incluida en la presentación del requerimiento de Delta Pensum 3.2.x:


En la Justificación de Diseño de Delta Pensum: Pensum [**falta referencia http] se aborda la justificación de una parte del modelo conceptual se aborda otro aspecto del modelo conceptual. En honor a la verdad, la solución propuesta corresponde más a un diseño que a un modelo conceptual.

En el documento titulado Justificación de Diseño de Delta Pensum: Encajables, Bloques y Elementos Genéricos [**falta  referencia http]:


 

[**Sección en construcción. Contiene ideas y reflexiones sin depurar, que no recomiendo para mis estudiantes]

Una justificación no es una demostración

Hasta ahora en la carrera han estado expuestos formalmente a un sólo tipo de argumentación: el argumento deductivo característico de las demostraciones formales.

En este modelo se explicitan los axiomas, los cuales no admiten discusión, y se deducen, más o menos rigurosamente, las consecuencias de tales axiomas, dentro de un "sistema" cerrado (es decir uno en el que se conocen de antemano todos los axiomas y todas las reglas de deducción) , hasta llegar al "teorema"de interés. Así, en este modelo de argumentación los requerimientos del sistema fungen de axiomas a partir del cual deducimos/construimos el sistema óptimo que satisface los axiomas.

Son varios los problemas asociados con este modelo:

En términos metodológicos, la diferencia es entre un modelo de cálculo lógico y un modelo de persuasión retórico. Hay que advertir que por retórica nos referimos al arte del persuadir en buena lid. En este sentido es importante analizar las siguientes citas de  Chaïm Perelman (El Imperio Retórico: Retórica y Argumentación, Norma, 1997):

"Constatamos que en los dominios donde se trata de establecer lo que es preferible, lo que es aceptable y razonable, los razonamientos no son deducciones formalmente correctas ni inducciones que van de lo particular a lo general, sino argumentaciones de toda especie que pretenden ganar la adhesión de los espíritus a las tesis que se presentan a su asentimiento."
"[Los razonamientos dialécticos] parten de lo que es aceptado [...] Se proponen, pues, persuadir o convencer: no consisten en inferencias válidas y constrictivas, sino que presentan argumentos más o menos fuertes, más o menos convincentes y que jamás son puramente formales. Un argumento persuasivo es aquel que persuade a aquel a quien se dirige."
"Aristóteles reconoce que es en disciplinas prácticas tales como la ética y la política, en las que las decisiones y las controversias son inevitables, donde el recurso a la argumentación se impone [... Al lado del estudio del] razonamiento formal [Aristóles examina] los razonamientos dialécticos que permiten justificar la mejor opinión, la opinión razonada."
"Todos aquellos que creen en la existencia de decisiones razonables precedidas de una deliberación o de discusiones donde las diferentes soluciones se confrontan las unas con las otras, no podrán prescindir [...] de una teoría de la argumentación."
"¿Qué es lo que distingue a la argumentación de una demostración formalmente correcta?
"En primer lugar, el hecho de que en una demostración los signos utilizados deben estar desprovistos de toda ambigüedad, contrario a lo que sucede en la argumentación que se sucede en  una lengua natural, en la que la ambigüedad no está excluida por anticipado. En segundo lugar, porque la demostración correcta es una demostración conforme a reglas que son explicitadas en los sistemas formalizados. También [...] porque el status de los axiomas, de los principios de los que se parte, es diferente en la demostración y en la argumentación."
"...el fin de la argumentación no es, como el de la demostración, probar la verdad de la conclusión partiendo de la verdad de las premisas, sino transferir a las conclusiones la adhesión concedida a las premisas. [...] entre los objetos de acuerdo, donde el orador escogerá el punto de partida de su discurso, hay que distinguir aquellos que se refieren a lo real, a saber: los hechos, las verdades y las presunciones; y aquellos que se refieren a lo preferible, a saber: los valores, las jerarquías y los lugares comunes de lo preferible."

Referencias

Bernd Bruegge, Allen H. Dutoit: Object-Oriented Software Engineering. Prentice-Hall, 2000. La exposición del tópico está fuertemente basado en el capítulo 8 (Gestión de justificaciones) de este libro..


Esta página fue creada el 12  de febrero  de 2002.
Ultima actualización: 12  de febrero  de 2002.
Por favor dirija sus comentarios al Prof. Alejandro Teruel.