2011-07-01 17 views
5

Mucho se ha escrito sobre las pruebas de código. Pero, ¿cómo nos aseguramos de que nuestro diseño sea funcionalmente correcto en primer lugar? Así como tenemos JUnit para probar el código de Java, ¿hay algunas herramientas que se pueden usar, por ejemplo, para probar un diseño basado en UML, donde las pruebas se expresan en forma de requisitos funcionales?capacidad de prueba de un diseño

Estas son algunas ideas vagas, pero quería saber si hay un enfoque metódico y automatizable para probar el diseño primero. En otras palabras, ¿podemos tener también el 'Diseño controlado por prueba'?

+0

Creo que 'verificación formal' es lo que estás buscando. – leppie

+0

Sí, pero de una manera más 'programable' y 'automatizable'. Por lo tanto, me pregunto si podemos encontrar algo como 'UMLUnit' - para permitir la escritura y ejecución de pruebas para diseños UML. – shrini1000

+0

¿Por qué la verificación no puede ser programática y automática? – leppie

Respuesta

1

Tema interesante!

En primer lugar, ningún arquitecto de software en mi red personal usa UML como la única forma de diseñar sus sistemas, y tampoco conozco arquitectos de software que creen UML con el nivel de detalle requerido para ejecutar una prueba mecánica.

En segundo lugar, personalmente tengo una profunda aversión a las herramientas de modelado UML. Si se implementa un método de verificación formal, es probable que sea algo así como Rational Rose. Hace mucho tiempo juré que nunca volvería a acercarme a eso.

Sin embargo, habiendo dicho todo eso, en las tiendas de software formales, es común tener trazabilidad de requisitos, generalmente implementada como una matriz que muestra los requisitos comerciales en un eje y artefactos de diseño en el otro. De esta forma, puede ver si los requisitos no se corresponden con la solución correspondiente o si hay elementos en la solución que no cumplen con un requisito comercial específico.

Mantener esta matriz actualizada es un problema, por lo que no se usa a menudo en equipos ágiles, pero si está creando softwware para un banco o el transbordador espacial, es una técnica valiosa.

Esto le indica si su diseño está completo, aunque no si es "correcto".

No tengo forma de saber si un diseño es "correcto" sin construirlo ni probarlo, o confiar en la experiencia y el conocimiento humano.

2

hay algunas herramientas que se pueden utilizar para probar un diseño basado en UML, donde las pruebas se expresan en forma de requisitos funcionales?

no se puede probar un diseño basado en los requisitos funcionales porque la satisfacción de las necesidades funcionales depende de la aplicación, no en el diseño.

En otras palabras, se puede seguir un mal diseño (cualquiera de las infinitas posibles diseños) y aún así cumplir con ese conjunto de requisitos funcionales si se implementa el comportamiento requerido.

Cuestiones relacionadas