¿Debería diseñarse una aplicación sin hacer un prototipo primero?

7

Acabo de comenzar a usar un popular motor gráfico bien documentado, y me dieron un mes para crear algunos programas pequeños y familiarizarme con ellos.

La biblioteca es enorme, y hay secciones que no he explorado.

Debido a una crisis de tiempo, mi jefe de tecnología me ha pedido que comience a diseñar mi software ( secuencia y diagramas de clase ) incluso para las partes que no he explorado, solo mirando el documentación y averiguar las capacidades de esas clases.

Tengo entendido que diseñar software requiere un buen conocimiento de cómo funciona algo. ¿Tiene sentido crear un diseño con solo una comprensión vaga de cómo funciona una clase, solo mirando la documentación de la clase? ¿No debería crear un prototipo con un pequeño programa, modificarlo aquí y allá y entender cómo se comporta y, ENTONCES, hacer el diseño para él?

    
pregunta Nav 25.01.2012 - 09:39

5 respuestas

7

Es probable que su propia secuencia y diagramas de clase no dependan tanto de cómo se comporte el motor gráfico. Durante la implementación, probablemente se encontrará con pequeños detalles como 'Debo llamar a initFoo () antes de setupBar ()' pero es probable que esos detalles no afecten el diseño de sus clases. Tu líder tecnológico necesita tu diseño ahora, probablemente porque otras personas dependen de él, por lo que te propongo que lo creas.

    
respondido por el user281377 25.01.2012 - 10:06
2

Existe un riesgo: solo porque el motor sea popular y esté bien documentado, es posible que no refleje la realidad. Hace poco usé un motor de juego que usaba un wiki para documentar cómo funcionaba el motor. Lo que encontró fue una mezcla de páginas antiguas que no reflejaban la versión más reciente, las páginas actuales y las que hablaban de partes aún no implementadas.

Si me hubieran pedido que diseñara la aplicación, solo en base a la documentación, habríamos estado prometiendo cosas que no estarían disponibles durante años.

    
respondido por el mhoran_psprep 25.01.2012 - 12:16
2

Es importante que proporcione un diseño porque es necesario realizar un trabajo preliminar para crear un proyecto. Me gusta la respuesta de ammoQ ya que él lo expresa mejor.

Me gustaría agregar, sin embargo, que en un mundo ideal tendremos todo el tiempo para convertirnos en expertos en un marco o biblioteca desconocidos antes de comprometernos a diseñar un software alrededor de algo que todavía no se comprende al 100%. Sin embargo, no vivimos en un mundo perfecto.

Cada documento de diseño debe tener una sección Supuestos que detalla cada incógnita restante que aún tenemos sobre aspectos del diseño. Si, por ejemplo, la documentación de la biblioteca reclama para tener la funcionalidad A, pero aún no pudo descubrirlo en su prototipo, reclame como un Supuesto y diseñe teniendo en cuenta que es cierto.

Es posible que, de vez en cuando, descubra que no todas sus suposiciones eran correctas, o que tal vez olvidó algunas. En este punto, tendrá que revisar su diseño y citar el supuesto fallido como una razón, así como revisar las estimaciones en el futuro.

    
respondido por el maple_shaft 25.01.2012 - 14:00
1

La respuesta realmente depende ...

Si desea diseñar un software de fácil mantenimiento, en el que pueda extraer el motor de gráficos y poner uno nuevo, puede hacer un diseño de alto nivel sin entrar demasiado. detalle sobre cómo usar el motor gráfico.

Si desea basar su diseño en el del motor gráfico (acoplamiento alto), entonces necesita conocer sus detalles al inicio.

    
respondido por el Danny Varod 25.01.2012 - 14:34
1
  

¿No debería crear un prototipo con un pequeño programa, modificarlo aquí y allá y entender cómo se comporta y, ENTONCES, diseñar para él?

Eso depende de lo que quieras hacer

La respuesta está en cómo su empresa hace las cosas. Yo personalmente elegiría el segundo enfoque (ágil).

Por cierto, su diseño no debería depender tanto de la implementación de una biblioteca.

    
respondido por el BЈовић 25.01.2012 - 10:36

Lea otras preguntas en las etiquetas