loading...

viernes, 11 de febrero de 2011

Java: Google introdujo el diseño por contrato.

El 11/02/2011

Con una extensión de código abierto que también ayudaría a los programas de seguridad


Google acaba de aprobar el marco del proyecto de licencias de código abierto destinado a instaurar una programación por contrato en Java.
Este paradigma de diseño para el software  iniciado el lenguaje Eiffel debería contribuir a facilitar el desarrollo y la detección temprana de fallas en la primera fase de crear el código.


Este nuevo proyecto, llamado Cofoja (abreviatura de "Contratos para Java") también debería ayudar a las aplicaciones de seguridad frente a ataques de desbordamiento de búfer en particular, una verdadera plaga para la seguridad de Java - como en otros idiomas.


En concreto, la programación por contrato define los criterios que debe coincidir con cada valor que se pasa a un método de un programa en ejecución. Criterios también se pueden especificar para devolver los valores de estos métodos.

Código:

interfaz de tiempo {

...

Asegura @ ({

"Resultados> = 0"
"Resultados de la <= 23"
})

getHours int ();

Requiere @ ({
"H> = 0"

"H <= 23"
})
Asegura @ ("getHours () == h)

setHours void (int h);

...
}

Por lo tanto, de los contratos entre los componentes del programa para garantizar la integridad de éste y ayudar a reducir considerablemente el número de errores que se detectaron anteriormente en el ciclo de desarrollo.
Un concepto con objetivos similares a los de programación (TDD), excepto con las afirmaciones de Cofoja están escritas y probadas directamente en el programa y no en las clases dedicadas a probar y ejecutar por separado durante esta fase.
Oss desarrolladores de Java por lo tanto se puede definir la duración de los contratos de valores de entrada, eliminando el riesgo de ataques de desbordamiento de búfer.
Cofoja basado en el proyecto "Jass moderno," un conjunto de anotaciones de Java desarrollada por Johannes Rieken y tomado dos ingenieros a tiempo parcial.
El proyecto Cafoja está disponible en Google Code bajo la licencia LGPL
Fuente :
código abierto Google blog


Fuente:



 


No hay comentarios:

Publicar un comentario