Condición previa


En programación de computadoras , una condición previa es una condición o predicado que siempre debe ser cierto justo antes de la ejecución de alguna sección de código o antes de una operación en una especificación formal .

Si se viola una condición previa, el efecto de la sección de código se vuelve indefinido y, por lo tanto, puede o no llevar a cabo su trabajo previsto. Pueden surgir problemas de seguridad debido a condiciones previas incorrectas.

A menudo, las condiciones previas simplemente se incluyen en la documentación de la sección de código afectada. A veces, las condiciones previas se prueban utilizando protecciones o aserciones dentro del propio código, y algunos lenguajes tienen construcciones sintácticas específicas para hacerlo.

Por ejemplo: el factorial solo se define para números enteros mayores o iguales a cero. Entonces, un programa que calcula el factorial de un número de entrada tendría condiciones previas de que el número sea un número entero y que sea mayor o igual a cero.

Las condiciones previas en el desarrollo de software orientado a objetos son una parte esencial del diseño por contrato . El diseño por contrato también incluye nociones de condición posterior e invariante de clase .

La condición previa para cualquier rutina define cualquier restricción sobre el estado del objeto que sea necesaria para una ejecución exitosa. Desde el punto de vista del desarrollador del programa, esto constituye la parte del contrato de la persona que llama de rutina. La persona que llama está entonces obligada a asegurarse de que la condición previa se cumpla antes de llamar a la rutina. La recompensa por el esfuerzo de la persona que llama se expresa en la condición posterior de la rutina llamada . [1]