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.
Creo que 'verificación formal' es lo que estás buscando. – leppie
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
¿Por qué la verificación no puede ser programática y automática? – leppie