2012-09-14 55 views
8

No domino UML, pero me gustaría crear un diagrama de clases basado en el código C++ existente. Otras preguntas de StackOverflow han indicado que dos programas, Enterprise Architect y Rational Software Architect, son bastante buenos en el código C++ de "ingeniería inversa" (es decir, crear diagramas de clase UML basados ​​en el código C++ existente).¿Cómo crear un diagrama de clases a partir del código fuente utilizando Enterprise Architect o Rational Software Architect?

He descargado la versión de prueba para ambas aplicaciones. Sin embargo, no puedo avanzar en la comprensión de qué hacer para crear un diagrama de clases en ninguna de estas aplicaciones.

En Rational Software Architect, he creado un proyecto UML, pero no puedo encontrar ninguna manera dentro del programa para seleccionar, y aplicar ingeniería inversa, mi código C++ existente.

En Enterprise Architect, pude importar mi código C++, pero todos los elementos (clases) aparecían en una línea diagonal superpuesta inútil dentro del diagrama. Intenté otras configuraciones, como el círculo, pero eran igualmente imposibles de leer porque los diagramas eran tan grandes (debido a los atributos y métodos que ocupan mucho espacio) que no fue útil ninguna cantidad de panoramización y acercamiento. Lo que me gustaría es ocultar todo, excepto los nombres de clase (es decir, no mostrar ningún método o atributo) para que las 20 clases aparezcan convenientemente y de forma legible en una pantalla.

Sin embargo, no puedo encontrar una manera de ocultar todo excepto los nombres de las clases. Más bien, cuando encontré una opción (en Enterprise Architect) que parecía que podía ocultar todo menos los nombres de las clases, por alguna razón los elementos desaparecieron en el diagrama de clases, y no hay cantidad de repetir los pasos & borrando y volviendo a agregar paquetes hizo que el diagrama de clases volviera a aparecer.

Nota: Mi código C++ (al menos los archivos que seleccioné para la importación en Enterprise Architect) asciende a solo unas 20 clases.

Lamentablemente, una búsqueda muy cuidadosa de la documentación para estos dos programas proporciona solo generalidades, por lo que pude, no se dan instrucciones específicas sobre ingeniería inversa para ninguno de estos programas.

Estaría agradecido si alguien pudiera decirme los pasos básicos para crear un diagrama legible y fácil de navegar. ingeniería inversa (es decir, C++ - a - UML) que muestra solo los nombres de las clases, de modo que unas 20 clases se ajustan (legiblemente) en una pantalla, utilizando Enterprise Architect o Rational Software Architect - O cualquier otra herramienta que sea capaz de haciendo esto (sugiero EA y Rational solo porque se han destacado en otras respuestas de StackOverflow como los mejores programas disponibles para este propósito).

+0

No sé nada acerca de esos programas, sin embargo, es posible que desee buscar en doxygen, que es un software gratuito y podría satisfacer sus necesidades, hay un ejemplo simple [aquí] (http://stackoverflow.com/questions/9484879/graphviz-doxygen-to-generate-uml-class-diagrams). –

Respuesta

12

Esta respuesta se aplica a EA.

Puede importar archivos individuales o directorios completos, recursivamente o no. La importación de directorios es, con mucho, el caso más común; La importación de un solo archivo no le permite crear un diagrama automáticamente.

Al importar un directorio de origen, tiene la opción de crear diagramas para cada paquete UML, o no hay diagramas en absoluto. También decide si crear paquetes para cada directorio de código fuente, espacio de nombres (predeterminado) o archivo.

Si su código contiene solo 20 clases, es probable que estén en un único directorio y/o espacio de nombres, así que juegue con esa opción (Estructura del paquete en el cuadro de diálogo Importar fuente) para obtener el número correcto de diagramas.

En el mismo cuadro de diálogo, hay un botón "Nuevas opciones de diagrama", que abre otro cuadro de diálogo de configuración donde puede elegir si los diagramas deben contener los atributos y/u operaciones de las clases. También puede tomar una decisión sobre la base de visibilidad, por ejemplo, mostrar solo miembros públicos.

Este cuadro de diálogo solo afecta a lo que se muestra en los diagramas cuando se crean. Los miembros todavía se importan, simplemente no se muestran. Esto suena como lo que estás buscando.

Puede cambiar las opciones de visualización de cualquier diagrama haciendo doble clic en un área vacía, o haciendo clic con el botón derecho y seleccionando Propiedades. Parece que entraste en este diálogo y cambiaste algo, pero realmente no puedo decir qué. La situación que describes, donde no puedes volver a mostrar la pantalla como estaba, no es una que haya encontrado en EA.

También es posible seleccionar las opciones de visualización por clase haciendo clic con el botón derecho en el diagrama y seleccionando Visibilidad de la función. No recomiendo que uses esto en diagramas de ingeniería inversa, solo lo menciono para completarlo.

El diseño que describes, con todas las clases en una diagonal sin sentido, me sugiere que el diagrama no se está diseñando correctamente después de la creación. La creación del diagrama es un proceso de dos pasos; primero todas las clases se dejan caer sobre él, luego se aplica el diseño.

Esto es extraño, ya que EA establece automáticamente diagramas generados y no he podido encontrar una opción que le permita anular la selección de este comportamiento. Si esto persiste, envíe un informe de error a Sparx Systems. Siempre puede diseñar el diagrama abriendo y seleccionando Diagrama de diseño en el menú Diagrama de nivel superior.

Si, finalmente, sus clases se distribuyen entre diferentes paquetes y espacios de nombres para que EA genera múltiples diagramas para ellos, usted tiene que combinar de forma manual. Haga esto abriendo ambos diagramas, seleccionando todo (Ctrl-A) en uno, copiando (Ctrl-C) y pegando (Ctrl-V) en el otro, luego solicite EA al Diagrama de diseño nuevamente.

Así:

  1. Haga clic derecho en un paquete vacío en el navegador de proyectos, seleccione Ingeniería de código - Directorio de origen de importación.
  2. En el cuadro de diálogo, seleccione el directorio raíz y el tipo de fuente.
  3. Marque "Crear diagrama lógico para cada paquete" y seleccione la estructura del paquete que mejor se adapte a su estructura de origen.
  4. Haga clic en "Opciones de diagrama nuevo" y en el nuevo cuadro de diálogo desactive "Mostrar atributos", "Mostrar operaciones" y "Mostrar métodos de propiedad" si corresponde.
  5. Aceptar ambos cuadros de diálogo.
  6. Si se han creado múltiples diagramas, copie todas las clases en un solo diagrama.
  7. Si el diseño se ve mal, seleccione Diagrama - Diagrama de diseño.

Espero que esto ayude.

Cuestiones relacionadas