Colaboración en tiempo real multiusuario con enlaces compartibles para transferencia instantánea
Genera gráficos automáticamente a partir de texto y mejora estilos
Temas predefinidos con personalización completa
Soporta iconos, imágenes, etiquetas, fórmulas LaTeX, bloques de código, enlaces, adjuntos
Exportar: PNG, VISIO, PDF, SVG | Importar: VISIO, Mermaid
Almacenamiento en nube en tiempo real, sincronización multidispositivo, historial de versiones y seguridad de datos
Una clase generalmente está compuesta por un nombre, atributos y operaciones, representada en un marco rectangular dividido en tres niveles: el primer nivel es el nombre de la clase, el segundo son los atributos de la clase y el tercero son las operaciones de la clase.
Sin embargo, en la práctica, existen tres formas de representación: "nombre de la clase", "nombre de la clase" + "atributos de la clase", y "nombre de la clase" + "operaciones de la clase".
El nombre de una clase debe ser un sustantivo, cada palabra debe comenzar con mayúscula, y se usa letra normal para representar clases instanciables y letra cursiva para representar clases abstractas.
La sintaxis de definición de atributos de clase es: [visibilidad] nombre del atributo [:tipo de dato] [=valor inicial] [{cadena de atributos}]
Donde el contenido entre [] es opcional.
La restricción de una clase especifica una o más reglas que la clase debe cumplir; en UML, las restricciones se representan mediante texto encerrado entre llaves.
Relación de implementación: Se representa con un triángulo hueco + línea discontinua, desde la clase que implementa hacia la clase interfaz.
Relación de generalización: Se representa con un triángulo hueco + línea continua, desde la subclase hacia la superclase.
Relación de asociación: Se representa con una flecha de línea continua, desde la clase que referencia hacia la clase referenciada.
Relación de agregación: Se representa con un rombo hueco + línea continua, desde la clase parte hacia la clase todo.
Relación de composición: Se representa con un rombo sólido + línea continua, desde la clase parte hacia la clase todo.
Relación de dependencia: Se representa con una flecha de línea discontinua, desde la clase que referencia hacia la clase de la que depende.
Un diagrama de clases no es completamente independiente; debe abstraer entidades, clases de control y clases de frontera del diagrama de casos de uso, manteniendo coherencia semántica con el diagrama de casos de uso, el diagrama de actividades, el diagrama de secuencia, etc.
Una clase debe mantener una única responsabilidad; se pueden dividir clases grandes y distribuir responsabilidades de manera razonable entre múltiples clases, evitando alta acoplamiento, clarificando límites y cumpliendo con los principios de diseño orientado a objetos.