2009-10-31 10 views
9

Parece que el analizador estático para usar con .NET 4.0 Code Contracts solo estará disponible para las ediciones Team Suite de Visual Studio; esto lo sitúa fuera del presupuesto de mi equipo.Cualquier alternativa al analizador estático de contratos de código .Net 4?

Existen alternativas (de código abierto, gratuitas o de precio razonable) que ofrecen un análisis estático similar para el diseño por código de estilo de contrato (no necesariamente mediante contratos de código .net). Supongo que la respuesta será no, ya que el valor total solo aparece cuando el BCL mismo tiene contratos, pero ¿hay alguno que forme parte del camino?

Respuesta

2

no estoy seguro si eso es lo que busca, pero es posible echar un vistazo a Frama-C y su lenguaje de anotación ACSL para C.

En comparación con los contratos de .NET, contratos ACSL no son ejecutables (es imposible verificarlos con aserciones en tiempo de ejecución), pero son más adecuados para el análisis estático (son más expresivos y permiten escribir y verificar estáticamente una especificación completa) Al menos teóricamente)

+0

En un vistazo rápido que se ve realmente impresionante, especialmente con todos los complementos. El plugin de análisis de valor en particular es una de las cosas que me gustaría usar. ¡Definitivamente lo verificaré! Veo que es un conjunto de herramientas genéricas para cualquier cosa en la familia C: ¿alguna experiencia de cómo encaja con C# o peligros comunes que hay que evitar? – FinnNk

+0

@FinnNk No estoy seguro acerca de "cualquier cosa en la familia C" ... Es solo para C. El esfuerzo inicial fue para manejar C incrustado crítico, por lo que el problema de interconectar C# u otros lenguajes con su propia sintaxis para contratos ha sido completamente ignorado Y dado que todavía hay muchas cosas sucediendo en los contratos de .NET también, todavía sería un poco prematuro en este momento, aunque eso suena como un tema interesante. –

+0

@FinnNk En cuanto a las dificultades, en el complemento de análisis de valor, encontrará rápidamente que el soporte de ACSL es bastante parcial (incluso entre el subconjunto de ACSL que puede admitirse en un análisis estático de propagación directa). Como una limitación típica, el análisis de valor aún no comprende \ resultado en condiciones posteriores. ¿Has visto el tutorial de Jessie? Tiene bastantes especificaciones completas para funciones simples, expresadas como contratos. http://frama-c.cea.fr/jessie_tutorial_index.html –

0

Estoy usando análisis estático en VS2010 Prima.

Cuestiones relacionadas