Indicar pre y post condiciones en el TAD

Indicar pre y post condiciones en el TAD

de Gaston Horacio Bogarin Petracca -
Número de respuestas: 1

Buenas tardes,

Viendo ejercicios de exámenes y del práctico, identifiqué que se dan tres situaciones distintas:

1) Casos donde a cada función o procedimiento se le indica en la especificación PRE y POST condición.

2) Casos donde en algunas funciones se indica solo PRE, en otras solo POST

3) Casos donde no se indica específicamente "POST", pero se deja un comentario y si hay pre-condiciones, se especifican al final del mismo (ejemplo: las tareas).

En lo personal me resulta más fácil especificar pre y post condiciones a cada función/procedimiento, pero tengo duda de si está bien hacerlo. ¿Estaría bien hacerlo así incluso cuando sabemos que hay casos donde las pre-condiciones pueden ser triviales?

Gracias




En respuesta a Gaston Horacio Bogarin Petracca

Re: Indicar pre y post condiciones en el TAD

de Sofia Tito Virgilio Rodriguez -

Hola Gaston,

La idea de la especificación es desambiguar lo más posible, es decir, que tanto el usuario como el desarrollador sepan qué condiciones deben cumplirse para que la operación funcione correctamente, qué hace la operación, y cuál es resultado de aplicar esa operación. La manera más completa de hacer esto sería especificando pre y post condiciones a cada función/procedimiento, por lo que está bien hacerlo, aunque eso no implica que el resto de las opciones estén mal siempre que la especificación permita comprender de forma completa y sin ambigüedad el comportamiento de la operación.

Más específicamente, puede decirse que toda operación tiene pos-condiciones porque en ellas se dice cuál es el efecto causado, mientras que pre-condiciones sólo tienen las que pueden asimilarse como funciones parciales, es decir, hay valores del dominio para los cuales no es correcto aplicar la operación, o para los cuales no se garantiza el correcto funcionamiento de la misma.

Espero haber aclarado tu duda, cualquier cosa volvé a consultar.

¡Saludos!