13.07.2015 Views

Análisis y Dise˜no

Análisis y Dise˜no

Análisis y Dise˜no

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

un acuerdo formal: ”si tú, cliente, me garantizas ciertas precondiciones, entoncesyo, proveedor, generaré resultados correctos. Pero si de lo contrario,violas las precondiciones, no te prometo nada”.La especificación de los contratos realiza por medio de aserciones comoherramienta perfecta para expresar todos los derechos y obligaciones de cadauna de las partes, del cliente con precondiciones, y las obligaciones delproveedor con postcondiciones.Definición – [33]Las aserciones son restricciones formales en el comportamiento de unsistema software que comúnmente están escritas como anotacionesen el código fuente.Las aserciones fueron creadas por Hoare como un sistema de axiomas parademostrar la correctitud de programas Algol [17]. Además, dado que podemosexpresar suposiciones del estado del programa durante la ejecución, podemosusar las aserciones como un modo de documentación, con la ventaja de queseremos notificados en el caso que nuestras suposiciones sobre el código nofueran ciertas. Siguiendo esta idea, podemos definir las especificaciones deun software OO, incluso antes de tener el código implementado, expresandosus precondiciones y poscondiciones de métodos. Además, como las asercionesson un modo de verificar nuestras suposiciones en cualquier punto del código,también podemos detectar errores de implementación. Podemos ahorrarnosuna gran parte del tiempo de pruebas que gastaríamos buscando un error,ya que un fallo en la aserción nos devuelve información detallada sobre dichoerror. Esta verificación tendría la forma de: {Pre} Código {Post}, dondeun ejemplo muy trivial donde se prueba la correctitud de un trozo de códigosería: {a ≤ 0} a++; {a ≤ 1}43

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!