¿Cuáles son los beneficios y riesgos de pasar a un enfoque Model Driven Architecture?

StackOverflow https://stackoverflow.com/questions/2702206

  •  01-10-2019
  •  | 
  •  

Pregunta

Yo trabajo para una empresa con cerca de 350 empleados y estamos en el proceso de crecimiento. Nuestra base de código actual no está estructurado muy bien y estamos buscando tanto en la forma de mejorar inmediatamente (mediante la organización de los objetos en espacios de nombres, la separación de preocupaciones, etc.) y pasar a un modelo impulsado por enfoque de la arquitectura, en la que el diseño del modelo y de todo primero con UML , a continuación, generar código de ese modelo. Hemos estado buscando en gran medida a Sparx Systems Enterprise Architect (EA) (que es capaz UML 2.0) y también estamos considerando las herramientas en VS 2010. Sé que hay otras herramientas por ahí (Rational XDE ser uno), pero realmente no lo hacen pensamos que podemos gastar $ 1500 + por licencia en este punto.

No estoy en busca de respuestas sobre qué herramienta es mejor que otro, pero más por las experiencias que se mueven de un entorno de codificación de vaquero (es decir, poco de planificación y diseño, apenas entrar y empezar a codificar) a una arquitectura dirigida por modelos. Mirando hacia atrás era útil para su organización? ¿Cuáles son los puntos de dolor? ¿Cuáles son los riesgos? ¿Cuáles son los beneficios?

¿Fue útil?

Solución

  

Nuestra base de código actual no está estructurado   muy bien y estamos buscando tanto en   cómo mejorar inmediatamente [...]   y pasar a un modelo impulsado   enfoque de arquitectura, donde se modela   y el diseño de todo primero con UML,   a continuación, generar código de ese modelo.

En primer lugar, es muy bueno que usted y su empresa se dan cuenta de que hay algunas deficiencias en el proceso de desarrollo de software y de que hay un voluntad de mejorar .

Parece sin embargo que hay un poco de trabajo delante de usted, y muchas cosas que mejorar en diferentes direcciones. Mi primer consejo es que no se trate de cambio todo a la vez. Las personas generalmente son reacios a los cambios, y todo el mundo necesita un poco de tiempo para digerir los nuevos cambios. También es muy importante crear un entendimiento común acerca de lo que hay que configurar. Este entendimiento común no se creará en un día. Tal cambio requiere una compromiso a medio o largo plazo .

A continuación, en relación con la MDA, es importante darse cuenta de que se requiere un poco de disciplina . Dependiendo de su equipo, la primera parte bien podría trabajar en eso por primera vez en una manera de preparar el siguiente paso, que sería introducir MDA. Estoy diciendo que debido a que se dice que tiene un proceso de "cowboy", lo que significa que la gente se utilizan probablemente a hacer lo que quieran -. Que es un no-go para la MDA

Luego viene la introducción de sí MDA. Existen diversos modos de hacer MDA (y no me extenderé sobre thsat aquí), pero el camino aún predomina hacerlo, es el llamado de ida y vuelta de ingeniería . El mayor problema es, pues, para mantener el modelo y la fuente sincronizada.

(Mi opinión es que la MDA conduce a un retorno de la inversión positivo sólo si el modelo se puede reutilizar para varios proyectos. Esto significa que debe haber identificado las cosas que hacer una y otra, y tener una visión clara suficiente sobre el problema para poder crear un modelo suficientemente completa y transformaciones que se puede reutilizar a través de proyectos que no creo que la MDA funciona si cada proyecto es completamente diferente;. el tiempo empleado para obtener el modelo correcto y la transformación, etc. voluntad ser más grande que trabajar sólo con código y la documentación).

Otra appraoch es no hacerlo por completo MDA - no generar código a partir del modelo - sino para aumentar la conciencia de la gente sobre el modelado y la cuestión de diseño, por ejemplo, con UML. De esta manera no se enfrentará cuestión de ida y vuelta, pero todavía mejorar la madurez de su proceso de desarrollo de software.

Otros consejos

Lo hicimos una vez con un sistema planificador de logística 3 mloc, y funcionó bien. Sin embargo, nos dimos cuenta pronto de que UML no sería suficiente. Simplemente era demasiado obtuso para capturar el nivel de detalle necesario para la especificación. La mejor manera era en realidad para el uso de pseudo-código (todo el mundo lo estaba usando de todos modos para la comunicación de ideas)! Así es cómo se hizo la realización. El uso de UML se sentía como un paso de la claridad.

Como las ideas empezaron a reducir a una solución de un sistema de control de versiones se empleó con el fin de realizar un seguimiento de los cambios de la pseudo-código (y casos de uso, etc.). Por lo tanto, todos en el grupo siguió a los cambios. Poco a pequeños papeles fueron traducidos al código real junto con la documentación y las referencias a las motivaciones y discusiones.

Al final, el transision de modelo a código era muy suave. La parte realmente agradable fue, en mi humilde opinión, el uso de VCS, que te permitía ver incluso el pseudo-código original sin cambiar el medio ambiente.

escribí mi tesis de licenciatura sobre el Desarrollo de Software Dirigido por Modelos y sólo quiero que advertir, que es muy importante utilizar un enfoque bueno para hacer lo que su empresa tiene la intención. Hay muchas cosas que pueden salir mal, como por ejemplo, la edición de código generado directamente, ser capaz de generar una sola vez, becaause código editado manualmente sería borrado tras generación, lo que tiene que hacer un análisis de dominio para crear un modelo de buena meta y utilizar un marco de generación de código de buena ... Por favor, no me entiende malinterpreten, creo que DSDM es grande, pero sólo cuido cómo va a hacerlo. La MDA y libros sobre el tema original, sugieren realmente malas appproaches, que son demasiado costosas y demasiado frágil. Le sugiero que mirar en la página web voelter.de, donde se pueden encontrar artículos, presentaciones y podcasts de Markus Voelter, que es un consultor con mucha experiencia en esa área.

Para mí, el aspecto clave es ser pragmáticos veces. Modelado no debe ser una actividad booleano (nosotros tampoco modelo o no modelo). Debemos ser capaces de adaptar el nivel de modelado / precisión a las características del proyecto (véase, por ejemplo, lo que las personas que trabajan en el modelado ágil do) y la empresa. Demasiado poco o demasiado de modelado puede ser problemático (con muy poco es posible que no vea los beneficios, en exceso puede ser overkilling fo su empresa, especialmente si usted está comenzando la transición o usted no tiene las herramientas necesarias)

En mi / blog portal ( http://modeling-languages.com ) que a menudo discuten acerca de la beneficios del modelado o cómo el modelado deben utilizarse. Puede que le resulte interesante

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top