He estado tomando algunos cursos de diseño de software en los últimos semestres, y aunque veo el beneficio en gran parte del formalismo, siento que no me dice nada sobre el programa en sí:
- No puede saber cómo va a funcionar el programa a partir de la especificación de Caso de uso, a pesar de que analiza lo que puede hacer el programa.
- No se puede decir nada sobre la experiencia del usuario en el documento de requisitos, a pesar de que puede incluir requisitos de calidad.
- Los diagramas de secuencia son una buena descripción de cómo funciona el software como pila de llamadas, pero son muy limitados y ofrecen una visión muy parcial del sistema en general.
- Los diagramas de clases son excelentes para describir cómo se construye el sistema, pero son completamente inútiles para ayudarlo a descubrir qué debe ser el software.
¿En qué parte de todo este formalismo está el resultado final: cómo se ve, opera y qué experiencia brinda el programa? ¿No tiene más sentido diseñar a partir de eso? ¿No es mejor descubrir cómo debería funcionar el programa a través de un prototipo y esforzarse por implementarlo de verdad?
Sé que probablemente estoy sufriendo de que teóricos me enseñen ingeniería, pero necesito preguntar, ¿hacen esto en la industria? ¿Cómo se da cuenta la gente de lo que es realmente el programa, y no con qué debe conformarse? ¿Las personas prototipan mucho o utilizan principalmente herramientas formales como UML y todavía no me acostumbro a usarlas?