Principios de diseño#

Gaphor existe desde hace bastantes años. En esos años nosotros (los desarrolladores de Gaphor) aprendimos algunas cosas sobre cómo construirlo. Gaphor intenta ser fácilmente accesible para los usuarios principiantes, así como una herramienta útil para los usuarios más experimentados.

Gaphor no es un editor al uso. Es un entorno de modelado. Esto implica que hay un lenguaje que sustenta los modelos. Los lenguajes se adhieren a reglas y Gaphor intenta seguir esas reglas.

La usabilidad es muy importante. Cuando se es nuevo en Gaphor, debe ser fácil orientarse. Un conocimiento mínimo de UML debería al menos permitirle crear un diagrama de clases.

Orientación#

Para ayudar a los usuarios, Gaphor debe proporcionar orientación siempre que pueda.

Ayuda con las relaciones#

El diagrama muestra en gris todos los elementos a los que no puede conectarse una relación. Esto ayuda a decidir dónde puede conectarse una relación. Puede mezclar diferentes elementos, pero intentamos que sea lo más sencillo posible para crear modelos coherentes.

Mantener el modelo sincronizado#

Una parte importante del modelado es diseñar un sistema en abstracciones y ser capaz de explicarlas a otros. A medida que los sistemas se complican, es importante disponer del diseño (modelo) en diagramas.

Gaphor hace todo lo posible para mantener el modelo sincronizado con los diagramas. De este modo, los elementos no usados pueden eliminarse automáticamente del modelo si ya no se muestran en ningún diagrama.

Fuera de su camino#

Al modelar, debe estar ocupado con su problema o dominio de solución, no con la herramienta. Gaphor intenta mantenerse al margen en la medida de lo posible. No trata de fastidiarle con mensajes de error, porque el modelo no es «correcto».

Evitar diálogos#

Para hacer lo correcto y no estorbar a los usuarios, Gaphor evita en lo posible el uso de diálogos.

Gaphor debe permitirle hacer lo más sensato (véase más arriba) y no sacarle de sus casillas con todo tipo de preguntas.

Notificar cambios#

Cuando Gaphor está haciendo algo que no es directamente visible, verá una notificación, por ejemplo, un elemento que se elimina indirectamente del modelo. No le interrumpirá con diálogos, sino que sólo proporcionará una pequeña notificación en la aplicación. Si el cambio no es deseado, pulse deshacer.

Equilibrado#

Aunque Gaphor implementa gran parte del modelo UML 2, no está completo. Intentamos encontrar el equilibrio adecuado en las características para satisfacer tanto a los modeladores expertos como a los principiantes.

Continuidad#

Un modelo creado debe poder usarse en el futuro. Gaphor lo reconoce. Nos importa la compatibilidad.

Compatibilidad con versiones anteriores#

Gaphor es capaz de cargar modelos que se remontan a Gaphor 1.0. Es importante que una herramienta siempre permita cargar modelos antiguos.

Multiplataforma#

Nos hemos esforzado mucho para que Gaphor funcione en las principales plataformas: Windows, macOS y Linux. Disponer de Gaphor en todas las plataformas es esencial si se quiere compartir el modelo. Sería horrible tener que ejecutar un sistema operativo específico para abrir un modelo.

Hasta ahora, no soportamos la cuarta plataforma principal (web). Las aplicaciones nativas ofrecen una mejor experiencia de usuario (una vez instaladas). Pero esto puede cambiar.

Interacción del usuario#

Gaphor está escrito originalmente en Linux. Usa GTK como interfaz de usuario. Esto implica que Gaphor sigue las GNOME Human Interface Guidelines (HIG). Gaphor es también una aplicación multiplataforma. Tratamos de mantenernos cerca de las HIG de GNOME, pero tratamos de no introducir conceptos que no están disponibles en Windows y macOS.

No se generan componentes de interfaz de usuario. Nos dimos cuenta de que la generación de interfaz de usuario (al igual que muchas herramientas de modelado empresarial) proporciona una experiencia de usuario horrible. Queremos que los usuarios usen Gaphor con regularidad, así que nuestro objetivo es que sea una herramienta agradable a la vista y con la que sea fácil trabajar.

¿Qué más?#

  • Idempotencia Permitir que la misma operación se aplique varias veces. Esto no debería afectar al resultado.

  • Dirigido por eventos Gaphor es una aplicación de usuario. Actúa ante eventos del usuario. La aplicación usa un despachador de eventos interno (bus de eventos) para distribuir los eventos a las partes interesadas. Todo el mundo debe ser capaz de escuchar los eventos.