Mostrando entradas con la etiqueta UML. Mostrar todas las entradas
Mostrando entradas con la etiqueta UML. Mostrar todas las entradas

domingo, 15 de junio de 2025

馃И Python Nivel 2 – Parte 7: Poner en pr谩ctica UML con un mini proyecto

Ahora que conoces c贸mo funciona UML, es momento de aplicarlo a un proyecto pr谩ctico donde dise帽aremos con UML y luego lo programaremos en Python. Esta actividad te ayudar谩 a consolidar los conceptos de clases, herencia, composici贸n y agregaci贸n.


馃幆 Proyecto: Sistema de Biblioteca

Vamos a construir un sistema sencillo para una biblioteca que permita:

  • Registrar libros y usuarios

  • Asignar libros a usuarios

  • Consultar disponibilidad de libros


馃梻️ Dise帽o UML: Clases y Relaciones

Clases involucradas:

  1. Libro

    • titulo: str

    • autor: str

    • disponible: bool

    • prestar(), devolver()

  2. Usuario

    • nombre: str

    • email: str

    • prestamos: list

  3. Biblioteca

    • libros: list

    • usuarios: list

    • agregar_libro(), registrar_usuario(), prestar_libro()


馃П Fragmento UML


-------------------------------- | Libro | -------------------------------- | + titulo: str | | + autor: str | | + disponible: bool | -------------------------------- | + prestar() | | + devolver() | -------------------------------- -------------------------------- | Usuario | -------------------------------- | + nombre: str | | + email: str | | + prestamos: list | -------------------------------- -------------------------------- | Biblioteca | -------------------------------- | + libros: list | | + usuarios: list | -------------------------------- | + agregar_libro() | | + registrar_usuario() | | + prestar_libro() | --------------------------------

馃捇 C贸digo en Python (versi贸n simplificada)


class Libro: def __init__(self, titulo, autor): self.titulo = titulo self.autor = autor self.disponible = True def prestar(self): if self.disponible: self.disponible = False return True return False def devolver(self): self.disponible = True class Usuario: def __init__(self, nombre, email): self.nombre = nombre self.email = email self.prestamos = [] class Biblioteca: def __init__(self): self.libros = [] self.usuarios = [] def agregar_libro(self, libro): self.libros.append(libro) def registrar_usuario(self, usuario): self.usuarios.append(usuario) def prestar_libro(self, titulo, email): libro = next((l for l in self.libros if l.titulo == titulo and l.disponible), None) usuario = next((u for u in self.usuarios if u.email == email), None) if libro and usuario: if libro.prestar(): usuario.prestamos.append(libro) print(f"{usuario.nombre} ha tomado prestado '{libro.titulo}'.") else: print("❌ No se pudo completar el pr茅stamo.")

馃 ¿Qu茅 aprendiste hoy?

✔️ A dise帽ar con UML antes de programar
✔️ A transformar ese dise帽o en c贸digo Python
✔️ A trabajar con clases relacionadas mediante composici贸n y listas
✔️ A crear una app funcional basada en objetos


馃搨 C贸digo completo en GitHub:
github.com/josecodetech

馃帴 Video del mini proyecto en YouTube:
http://youtube.com/watch?v=s4kWoqrTGVM



馃И Python Nivel 2 – Parte 6: UML y Dise帽o de Clases

 

馃幆 ¿Qu茅 aprender谩s en esta parte?

✅ Qu茅 es UML y para qu茅 se usa
✅ C贸mo representar clases con UML
✅ C贸mo planificar relaciones (herencia, composici贸n, agregaci贸n)
✅ C贸mo traducir un dise帽o UML en clases Python
✅ Ejemplo completo: diagrama + c贸digo


馃搶 ¿Qu茅 es UML?

UML (Unified Modeling Language) es un lenguaje visual para representar sistemas orientados a objetos.
Se utiliza para planificar clases, atributos, m茅todos y relaciones entre objetos antes de programar.


馃П Estructura de una clase en UML

Un diagrama de clase b谩sico UML incluye:


-------------------------------------- | NombreClase | -------------------------------------- | - atributo1: Tipo | | - atributo2: Tipo | -------------------------------------- | + metodo1(): TipoRetorno | | + metodo2(par谩metro: Tipo): Retorno | --------------------------------------
  • + = p煤blico

  • - = privado

  • # = protegido


馃З Ejemplo simple en UML


------------------------- | Persona | ------------------------- | - nombre: str | | - edad: int | ------------------------- | + saludar(): str | -------------------------

Traducci贸n en c贸digo Python:


class Persona: def __init__(self, nombre, edad): self._nombre = nombre self._edad = edad def saludar(self): return f"Hola, me llamo {self.nombre} y tengo {self.edad} a帽os."

馃敆 Relaciones UML

Relaci贸nUMLEjemplo
HerenciaFlecha abiertaEmpleado → Persona
Composici贸nRombo negroCoche ▪── Motor
Agregaci贸nRombo blancoCurso ◇── Profesor

馃 ¿Por qu茅 usar UML?

✅ Facilita la planificaci贸n antes de codificar
✅ Mejora la comunicaci贸n entre programadores
✅ Ayuda a evitar errores de dise帽o
✅ Documenta mejor tus sistemas


✅ ¿Qu茅 aprendiste hoy?

✔️ Leer y escribir diagramas UML
✔️ Representar atributos y m茅todos
✔️ Comprender relaciones entre clases
✔️ Traducir UML a Python


馃搨 C贸digo de ejemplo completo:
github.com/josecodetech

馃帴 Video paso a paso en YouTube:
https://www.youtube.com/watch?v=RwGeo03rL6g