Condición previa

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Concepto de programación informática

En la programación informática, una precondición 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.

En programación orientada a objetos

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 en 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.

Ejemplo de Eiffel

La rutina del siguiente ejemplo escrito en Eiffel toma como argumento un número entero que debe ser un valor válido para una hora del día, i. ej., del 0 al 23, inclusive. La condición previa sigue a la palabra clave require. Especifica que el argumento debe ser mayor o igual a cero y menor o igual a 23. La etiqueta "valid_argument:" describe esta cláusula de condición previa y sirve para identificarla en caso de una violación de la condición previa en tiempo de ejecución.

 set_hour ()a horas: INTEGER) -- Set `hour' to `a_hour ' necesidad valid_argument: 0 . a horas y a horas . 23 do hora := a horas asegurar hour_set: hora = a horas final

Precondiciones y herencia

En presencia de herencia, las rutinas heredadas por las clases descendientes (subclases) lo hacen con sus condiciones previas vigentes. Esto significa que cualquier implementación o redefinición de rutinas heredadas también debe escribirse para cumplir con su contrato heredado. Las condiciones previas se pueden modificar en rutinas redefinidas, pero solo se pueden debilitar. Es decir, la rutina redefinida puede disminuir la obligación del cliente, pero no aumentarla.

Contenido relacionado

FX-87

FX-87 es un lenguaje funcional de tipos polimórficos basado en un sistema de análisis estático de programas en el que cada expresión tiene dos propiedades...

Datos de paquetes digitales celulares

Paquetes de datos digitales celulares era un servicio de datos móviles de área amplia que utilizaba el ancho de banda no utilizado que normalmente utilizan...

Andres tridgell

Andrés "Tridge" Tridgell OAM es un programador informático australiano.. Es el autor y colaborador del servidor de archivos Samba, y co-inventor del...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save