Clases y Objetos

Diagramas de Clases y Objetos

Aprende a crear y utilizar diagramas de clases y objetos para modelar sistemas orientados a objetos.

Los diagramas de clases y objetos son herramientas visuales esenciales en la programación orientada a objetos. Estos diagramas permiten representar las estructuras y relaciones entre las clases y los objetos en un sistema, facilitando la comprensión y el diseño del software.

Diagrama de Clases

Un diagrama de clases es una representación gráfica que muestra las clases en un sistema y las relaciones entre ellas. Cada clase se representa como un rectángulo dividido en tres partes: el nombre de la clase, los atributos (propiedades) y los métodos (funciones).

Diagrama de Clases
@startuml
class Persona {
  - nombre: String
  - edad: int
  + saludar(): void
}
@enduml

En este ejemplo, la clase Persona tiene dos atributos privados (nombre y edad) y un método público (saludar). Así mismo puedes notar que los atributos y métodos están precedidos por símbolos que indican su visibilidad: - para privado y + para público. Y están seguidos por su tipo de dato.

Relaciones entre Clases

Las relaciones entre clases se representan mediante líneas que conectan las clases. Algunas de las relaciones más comunes son:

  • Asociación: Representa una relación entre dos clases. Se muestra con una línea sólida.
  • Herencia: Indica que una clase hereda de otra. Se representa con una línea sólida y una flecha abierta apuntando hacia la clase padre.
  • Agregación: Indica una relación "tiene un" entre clases. Se representa con una línea sólida y un rombo vacío en el extremo de la clase que contiene.
  • Composición: Similar a la agregación, pero indica una relación más fuerte. Se representa con una línea sólida y un rombo relleno.
@startuml
class Vehiculo {
  + acelerar(): void
}
class Coche {
  + abrirPuertas(): void
}
class Persona {
  + conducir(v: Vehiculo): void
}
class Motor {
  + encender(): void
}
class Vendedor {
  + vender(v: Vehiculo, p: Persona): void
}
Vehiculo <|-- Coche
Persona "1" o-- "1..*" Vehiculo
Coche "1" *-- "1" Motor
Vendedor -- Vehiculo
@enduml

En este ejemplo, Coche hereda de Vehiculo, Persona tiene una relación de agregación con Vehiculo, Coche tiene una relación de composición con Motor, y Vendedor tiene una asociación con Vehiculo.

Diagrama de Objetos

Un diagrama de objetos es una representación gráfica que muestra instancias específicas de clases (objetos) y sus relaciones en un momento dado. Cada objeto se representa como un rectángulo con el nombre del objeto seguido por dos puntos y el nombre de la clase.

@startuml
class Persona {
  - nombre: String
  - edad: int
  + saludar(): void
}
object persona1 {
  nombre = "Juan"
  edad = 30
}
object persona2 {
  nombre = "Ana"
  edad = 25
}
Persona -- persona1
Persona -- persona2
@enduml

En este ejemplo, persona1 y persona2 son instancias de la clase Persona, con sus respectivos atributos.

Herramientas para Crear Diagramas

Existen varias herramientas que puedes utilizar para crear diagramas de clases y objetos, algunas de las más populares incluyen:

  • PlantUML: Una herramienta de código abierto que permite crear diagramas a partir de texto, como se muestra en los ejemplos anteriores y que puedes instalar en tu entorno de desarrollo.
  • Lucidchart: Una herramienta en línea que ofrece una interfaz intuitiva para crear diagramas UML en la siguiente página web.
  • Draw.io: Otra herramienta en línea gratuita que permite crear diagramas UML fácilmente en la siguiente página web.
  • StarUML: Una aplicación de escritorio que ofrece soporte completo para diagramas UML y otras funcionalidades avanzadas. Que puedes descargar en la siguiente página web.

Conclusión

Los diagramas de clases y objetos son herramientas poderosas para modelar sistemas orientados a objetos. Permiten visualizar la estructura y las relaciones entre las clases y los objetos, facilitando el diseño y la comprensión del software. Al dominar estos diagramas, podrás mejorar tus habilidades en el desarrollo de software orientado a objetos.

Copyright Jesús Aurelio Castro Magaña © 2026