¿Qué son los contratos de operación?

En el ámbito de la programación y las ciencias de la computación, los contratos de operación son una forma de especificar o documentar cómo una función en particular cambiará diferentes elementos dentro de un programa. A diferencia de una interfaz de programación abstracta (API) o un documento de control de interfaz, los contratos de operación se utilizan para ayudar durante la fase de desarrollo y modelado de la creación de una aplicación o sistema informático. En el nivel más básico, el contrato define cuatro características de la operación, específicamente el nombre de la operación, cualquier referencia a la operación en otras áreas del diseño, cualquier requisito de entrada o estado antes de que se realice la operación y el estado de la operación. el sistema o las variables una vez realizada la operación. El contrato no define nada específico sobre cómo funciona la operación internamente y, en cambio, solo se ocupa de cómo el estado de un programa se ve afectado por su uso.

Los contratos de operación, en general, no se construyen para cada operación dentro de un modelo de programa. En cambio, están reservados para operaciones que son particularmente complejas o difíciles de rastrear. Varios lenguajes de modelado por computadora, como el lenguaje de modelado unificado (UML), admiten contratos de operación y tienen formas de ayudar a visualizar cómo puede cambiar el estado de un programa una vez que se ha realizado la operación.

Las dos primeras definiciones necesarias para crear contratos de operación son el nombre de la operación, que puede ser cualquier cosa, y cualquier referencia cruzada. Una referencia cruzada es una lista de otras operaciones o áreas de un modelo de programa que utilizan la operación que se está definiendo o que la operación utilizará en su procesamiento. Esto ayuda a ver cómo interactúa un diseño general y es especialmente útil para ver cómo los cambios en un área del modelo afectarán a otras áreas.

A continuación, los contratos de operación definen las condiciones previas necesarias para ejecutar la operación. Esto puede implicar requerir que ciertas variables se carguen con valores apropiados, o puede requerir que ciertas partes del programa estén en un estado particular. Si no se cumplen las condiciones previas cuando se ejecuta la operación, la operación no se llevará a cabo o podría fallar por completo. El contrato se utiliza como una herramienta abstracta, por lo que las condiciones previas suelen ser bastante generales e involucran más el estado del programa que las variables específicas.

La parte final de los contratos de operación define las condiciones posteriores. Las condiciones posteriores son una lista de elementos dentro del modelo del programa que se han modificado debido a la ejecución de la operación. Esto puede especificar cambios en una estructura de datos o modificaciones en el estado del programa, como cambiar el control a un módulo separado. Mediante el uso de contratos de operación bien definidos, los programas se pueden modelar y modificar de manera efectiva antes de que comience la implementación real.