A este caso de abuso
originalmente lo titulé:
Las precondiciones
son validaciones que hace el caso de uso al comienzo del mismo o en algún paso
siguiente. Las poscondiciones y el resultado del caso de uso son una misma
cosa.
Este es
quizás el mayor de los abusos. Las precondiciones no ocurren dentro del caso de
uso, es justamente lo contrario. Las precondiciones representan el estado en el
que debe estar el sistema para que se ejecute el caso de uso a la que
pertenecen. Son acciones que ocurren antes, en algún momento del tiempo, de la
ejecución (o de la necesidad de ejecución) del caso de uso. Y cuando digo “en
algún momento del tiempo” no me refiero a que tiene que ser inmediatamente
antes del caso de uso, puede ser en cualquier instante, mientras sea antes de
la ejecución del caso de uso. Para usar términos bastante reconocidos por
nosotros, si un caso de uso tiene precondiciones, se encuentra deshabilitado
hasta tanto todas las precondiciones no se hayan ejecutado y hayan producido
los resultados necesarios para que el caso de uso se habilite y pueda ejecutarse.
Figura
2: Representación Visual de las Precondiciones y las poscondiciones de un caso
de uso. Fuente: Adaptado de
IBM Rational Unified Process
El error más
común ocurre cuando confundimos una precondición con la validación a un
elemento específico del negocio, por ejemplo, que el Cliente debe tener una
cuenta corriente para solicitar aumento de cupo de sobregiro. Esta, a todas
luces, es una verificación que debe ocurrir en el caso de uso “solicitar
aumento de cupo de sobregiro” después de que el cliente se haya identificado,
antes no es posible.
Un análisis
similar puede hacerse para las poscondiciones, confundidas casi siempre con los
resultados del caso de uso. Por ejemplo, es frecuente leer en la especificación
de un caso de uso: “el sistema almacena los datos de la solicitud.”, “el
sistema muestra el mensaje ‘no se pudo realizar la operación’.”, “el sistema
cancela la ejecución del proceso.” Todas estos detalles corresponden a eventos
que ocurren (deben ocurrir) dentro del caso de uso, no después de su ejecución,
que es el terreno donde se mueven las poscondiciones.
Una
poscondición típica puede ser: “el cliente puede consultar el estado de sus
facturas.” Otra puede ser: “la cuenta del usuario queda deshabilitada.” Una
más: “el cliente VIP puede modificar el estado de su reserva.” Todas estas son
acciones que los usuarios pueden hacer después de que un determinado caso de
uso se haya ejecutado, satisfactoriamente o no. El momento en el que se haga
tampoco tiene que ser inmediatamente después, casi siempre depende de las
necesidades de los usuarios particulares de cada funcionalidad.
Una
situación adicional que ocurre en muchas oportunidades es que nos quedamos buscando
precondiciones y poscondiciones del caso de uso durante un tiempo
considerablemente extenso. Siempre recomiendo a los neófitos que si no las
encuentran en las primeras de cambio pueden estar sucediendo dos cosas
importantes:
- No tenemos información suficiente del caso de uso (o no lo hemos entendido bien)
O
- No tenemos la experiencia práctica o el conocimiento teórico suficiente para lidiar con estos dos aspectos de los casos de uso.
En el primer
caso, debemos siempre buscar la información que nos hace falta con las personas
involucradas, los usuarios; en el segundo caso es un poco más difícil, pero mientras
este tema se nos vuelve una costumbre, recomiendo no quedarnos mucho tiempo
paralizados por ello y seguir adelante. Las precondiciones y las poscondiciones
son aspecto importantes para el diseño y la implementación del caso de uso,
pero si no las encontramos, existen otras formas de llegar a la misma solución,
quizás tome un poco más de tiempo a los diseñadores, pero este será mucho menos
que si los analistas se quedan horas o días buscando algo que no conocen.
Otra cosa
más, tanto las precondiciones como las poscondiciones son opcionales: no
siempre son un elemento adherido al caso de uso. Es posible que haya casos de
uso que no tengan unas o las otras, o ambas.
Impacto en la calidad: Alto.
PD. Para saber más de precondiciones y
poscondiciones y de otras características de los casos de uso pueden leer mi Lectura Fundamental 3: “Casos de Uso: del todo y de sus
partes”, en mi Gazafatonario IT: