Skip to content

tectijuana/pdd

Curso: Patrones de Diseño en Ingeniería de Software

Repositorio oficial del curso Patrones de Diseño, impartido en la carrera de Ingeniería en Sistemas Computacionales. Aquí encontrarás todos los recursos necesarios para aprender a identificar, implementar y aplicar patrones de diseño en el desarrollo de software robusto, escalable y mantenible.

🧠 Objetivos del curso

  • Comprender la utilidad de los patrones de diseño como soluciones probadas a problemas comunes en la programación.
  • Aplicar correctamente patrones creacionales, estructurales y de comportamiento según el contexto del proyecto.
  • Desarrollar software utilizando buenas prácticas de diseño orientado a objetos y principios de arquitectura.

🗂 Estructura del curso

El curso se divide en tres módulos principales, organizados por categorías de patrones de diseño:

  1. Patrones Creacionales

    • Factory Method
    • Abstract Factory
    • Singleton
    • Builder
    • Prototype
    • Object Pool
  2. Patrones Estructurales

    • Adapter
    • Bridge
    • Composite
    • Facade
    • Decorator
    • Proxy
    • Flyweight
  3. Patrones de Comportamiento

    • Iterator
    • Command
    • Observer
    • Template Method
    • Strategy
    • Chain of Responsibility
    • Interpreter
    • Mediator
    • Memento
    • Null Object
    • State
    • Visitor

📘 Contenidos del repositorio

📁 docs/                 → Material extendido, apuntes y lecturas recomendadas
📁 ejemplos/             → Implementaciones en diferentes lenguajes (Java, C#, PHP, Kotlin)
📁 diagramas/            → Diagramas UML de clases y secuencia por patrón
📁 practicas/            → Actividades individuales y por equipo
📁 proyecto_final/       → Proyecto integrador de la asignatura
📄 README.md             → Presentación general del curso
📄 CONTRIBUTING.md       → Guía para contribuir al repositorio
📄 LICENSE               → Licencia de uso abierto
📄 AI_GUIDANCE.md        → Uso academico de la ChatGPT y variantes LLM

💻 Requisitos previos

Conocimientos básicos de programación orientada a objetos

Familiaridad con UML (diagrama de clases y de secuencia)

Capacidad de análisis, abstracción y resolución de problemas

🚀 Metodología

Aprendizaje activo: diagramas, codificación y proyectos prácticos.

Evaluación continua: rúbricas para esquemas y listas de cotejo de código.

Proyecto integrador: aplicación progresiva de patrones en un sistema realista.

🛠 Herramientas sugeridas

Lenguajes: Java, C#, PHP, Kotlin, Python

UML: Dia, Umbrello, Microsoft Visio, Enterprise Architect

📚 Bibliografía recomendada

Blancarte, O. J. (2016). Introducción a los patrones de diseño. Un enfoque práctico.

Freeman, E., & Sierra, K. (2004). Head First Design Patterns. O'Reilly.

Richards, M. (2015). Software Architecture Patterns. O'Reilly.

Soshin, A. (2018). Design Patterns with Kotlin. Packt.

🤝 Contribuciones

Este es un proyecto educativo abierto. Si deseas mejorar el contenido, corregir ejemplos o traducir material, consulta la guía CONTRIBUTING.md

About

Patrones de Diseño de Software GoF y nuevas propuestas

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published