Generar diagramas de clase UML a partir de modelos Django

UML se encuentra a Django
Imagen: UML se encuentra a Django (Licencia: CC-BY-SA Marcelo Canina)
Publicado: Tags: ,

Introducci贸n

Para visualizar y entender mejor la estructura de un proyecto en Django podemos crear diagramas de clases UML a partir de los modelos definidos.

Para hacer esto usamos el comando especial incluido en el paquete django-extensions llamado: graph_models, que significa graficar modelos o modelos en grafo.

Pasos

1. Instalar django extensions

Asumiendo que ya tienes Django instalado ( para este ejemplo voy a usar el proyecto Wagtail ), luego instalamos django extensions con pip install django-extensions.

2. Add to installed apps

Para hacer que Django use el paquete reci茅n instalado, lo agregamos a INSTALLED_APPS en el archivo de configuraci贸n <project>/settings.py, en un proyecto Wagtail llamado mysite est谩 ubicado en mysite/settings/base.py:

INSTALLED_APPS = (
    ...
    'django_extensions',
    ...
)

3. Instalar el generador de diagramas

Puedes elegir entre dos generadores:

  • Graphviz o
  • Dotplus

antes de usar el comando, o se obtiene un mensaje de error como este:

Prefiero usar pydotplus ya que es m谩s f谩cil instalarlo que Graphviz y sus dependencias por lo que usamos pip install pydotplus.

4. Generar diagramas

Ahora tenemos todo instalado y pronto para generar diagramas con el comando python manage.py graph_models.

Esto nos da el diagrama de clases entero de Wagtail:

O agrupado por aplicaci贸n (-o):

Por 煤ltimo, vamos a generar el diagrama de clases de los modelos de Django (v2.0.3):

Conclusi贸n

M谩s all谩 que en el dise帽o de una aplicaci贸n se hagan una serie de diagramas al inicio, luego pueden volverse r谩pidamente obsoletos despu茅s de un tiempo. Esta es una t茅cnica 煤til y f谩cil de mantener sincronizados los diagramas con el estado actual de un proyecto.

Puedes encontrar una descripci贸n completa de todas las opciones del comando graph-models en https://django-extensions.readthedocs.io/en/latest/graph_models.html.

Referencias

Uruguay
Marcelo Canina
Desarrollador de software de Uruguay. Creo sitios web y aplicacione desde cero compartiendo lo aprendido aqu铆.
comments powered by Disqus

    Art铆culos

    • Generar diagramas de clase UML a partir de modelos Django

C贸mo generar im谩genes de los diagramas de clases de un proyecto en Django desde la cosonla

Conceptos de software claros.
Traducciones Espa帽ol English