Diagrama UML

Ejercicio 3 (tienda digital)

Heredar = recibir Donar = dar

  • Diagrama simple, 3 clases que heredan de 1 clase base o 1 clase base que sirve como superclase para 3 clases derivadas
@startuml
class Producto {
  - id: int
  - nombre: string
  - precio: float
  - duracion: int  // Duración en minutos o número de páginas
  - genero: string
  - tipo: string   // Tipo adicional para especificar consola, empresa, o autor
  + getId(): int
  + getNombre(): string
  + getPrecio(): float
  + getDuracion(): int
  + getGenero(): string
  + getTipo(): string
  + setId(id: int): void
  + setNombre(nombre: string): void
  + setPrecio(precio: float): void
  + setDuracion(duracion: int): void
  + setGenero(genero: string): void
  + setTipo(tipo: string): void
}
 
class Videojuego {
  - consola: string
  + getConsola(): string
  + setConsola(consola: string): void
}
 
class Pelicula {
  - empresa: string
  + getEmpresa(): string
  + setEmpresa(empresa: string): void
}
 
class Comic {
  - autor: string
  + getAutor(): string
  + setAutor(autor: string): void
}
 
Producto <|-- Videojuego
Producto <|-- Pelicula
Producto <|-- Comic
@enduml

  • Diagrama algo más complejo: 1 clase base, 3 clases derivadas, 2 clases adicionales relacionadas por composición
@startuml
class Producto {
  - id: int
  - nombre: string
  - precio: float
  - duracion: DuracionProducto
  - tipo: TipoProducto
  + getId(): int
  + getNombre(): string
  + getPrecio(): float
  + getDuracion(): DuracionProducto
  + getTipo(): TipoProducto
  + setId(id: int): void
  + setNombre(nombre: string): void
  + setPrecio(precio: float): void
  + setDuracion(duracion: DuracionProducto): void
  + setTipo(tipo: TipoProducto): void
}
 
class DuracionProducto {
  - duracion: int // Duración en minutos o número de páginas
  + getDuracion(): int
  + setDuracion(duracion: int): void
}
 
class TipoProducto {
  - descripcion: string // Consola, empresa o autor
  - genero: string
  + getDescripcion(): string
  + setDescripcion(descripcion: string): void
  + getGenero(): string
  + setGenero(genero: string): void
}
 
class Videojuego extends Producto {
  + getTipo(): TipoProducto
  + setTipo(tipo: TipoProducto): void
}
 
class Pelicula extends Producto {
  + getDuracion(): DuracionProducto
  + setDuracion(duracion: DuracionProducto): void
  + getTipo(): TipoProducto
  + setTipo(tipo: TipoProducto): void
}
 
class Comic extends Producto {
  + getDuracion(): DuracionProducto
  + setDuracion(duracion: DuracionProducto): void
  + getTipo(): TipoProducto
  + setTipo(tipo: TipoProducto): void
}
 
Producto --> DuracionProducto
Producto --> TipoProducto
@enduml