SOLID en la práctica con Python y UML 2025

SOLID 2025: SRP, OCP, LSP, ISP y DIP explicados con ejemplos en Python y UML para software a medida, IA, ciberseguridad y servicios cloud AWS/Azure.

29 ago 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Introducción

SOLID no es teoría vacía, es la póliza que evita que odies tu propio código. En este artículo reescribimos y actualizamos los principios SOLID para 2025 con ejemplos en Python y esquemas UML sencillos. Verás ejemplos malos y buenos para SRP, OCP, LSP, ISP y DIP. También explicamos cómo estos principios encajan en proyectos reales de software a medida, aplicaciones a medida e iniciativas avanzadas de inteligencia artificial, ciberseguridad y servicios cloud aws y azure que desarrolla Q2BSTUDIO.

Sobre Q2BSTUDIO

Q2BSTUDIO es una empresa de desarrollo de software especializada en software a medida y aplicaciones a medida. Somos especialistas en inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y soluciones como power bi. Aplicamos buenas prácticas de diseño como SOLID para reducir bugs, mejorar mantenimiento y acelerar entregas en proyectos de integración de IA, analítica y ciberseguridad.

Principio SRP Single Responsibility Principle

Idea clave SRP: cada módulo o clase debe tener una sola responsabilidad. Evita clases multifunción que mezclan persistencia, lógica de negocio y notificaciones.

Ejemplo malo SRP en Python

class UserService: def __init__(self, db, mailer): self.db = db self.mailer = mailer def create_user(self, user): self.db.insert(user) self.mailer.send_welcome_email(user) def export_users_csv(self, path): users = self.db.get_all() with open(path, 'w') as f: for u in users: f.write(f'{u.id},{u.email}\\n')

Problema: UserService hace persistencia, envío de correo y exportación. Cambiar cualquiera de estas responsabilidades obliga a modificar la misma clase.

Ejemplo bueno SRP en Python

class UserRepository: def __init__(self, db): self.db = db def add(self, user): self.db.insert(user) def get_all(self): return self.db.get_all() class Mailer: def send_welcome_email(self, user): pass class UserExporter: def export_csv(self, users, path): with open(path, 'w') as f: for u in users: f.write(str(u.id) + ',' + u.email + '\\n') class UserService: def __init__(self, repo, mailer): self.repo = repo self.mailer = mailer def create_user(self, user): self.repo.add(user) self.mailer.send_welcome_email(user)

UML SRP simple

[UserService] --> [UserRepository] [UserService] --> [Mailer] [UserExporter] -- separate responsibility

Principio OCP Open Closed Principle

Idea clave OCP: las entidades deben estar abiertas a extensión pero cerradas a modificación. Añade comportamientos sin tocar código probado.

Ejemplo malo OCP en Python

def calculate_discount(order, customer_type): if customer_type == 'regular': return order.total * 0.05 elif customer_type == 'vip': return order.total * 0.15

Problema: cada nuevo tipo de cliente requiere modificar la función.

Ejemplo bueno OCP en Python mediante polimorfismo

class DiscountPolicy: def apply(self, order): raise NotImplementedError class RegularDiscount(DiscountPolicy): def apply(self, order): return order.total * 0.05 class VIPDiscount(DiscountPolicy): def apply(self, order): return order.total * 0.15 def calculate_discount(order, policy: DiscountPolicy): return policy.apply(order)

UML OCP

[DiscountPolicy] <|-- [RegularDiscount] <|-- [VIPDiscount] [Order] --> [DiscountPolicy]

Principio LSP Liskov Substitution Principle

Idea clave LSP: las subclases deben ser sustituibles por sus superclases sin alterar el comportamiento esperado.

Ejemplo malo LSP en Python

class Rectangle: def __init__(self, w, h): self.w = w self.h = h def set_width(self, w): self.w = w def set_height(self, h): self.h = h def area(self): return self.w * self.h class Square(Rectangle): def set_width(self, w): self.w = w self.h = w def set_height(self, h): self.h = h self.w = h

Problema: Square rompe expectativas de Rectangle cuando código cliente cambia width sin prever que height también cambiará.

Ejemplo bueno LSP en Python

class Shape: def area(self): raise NotImplementedError class Rectangle(Shape): def __init__(self, w, h): self.w = w self.h = h def area(self): return self.w * self.h class Square(Shape): def __init__(self, side): self.side = side def area(self): return self.side * self.side

UML LSP

[Shape] <|-- [Rectangle] <|-- [Square]

Principio ISP Interface Segregation Principle

Idea clave ISP: prefiera muchas interfaces específicas a una interfaz general que obliga a implementar métodos innecesarios.

Ejemplo malo ISP en Python

class Worker: def work(self): pass def eat(self): pass class Robot(Worker): def work(self): pass def eat(self): raise Exception('no come')

Problema: Robot no puede cumplir eat pero está obligado por la interfaz Worker.

Ejemplo bueno ISP en Python

class Workable: def work(self): raise NotImplementedError class Eatable: def eat(self): raise NotImplementedError class Human(Workable, Eatable): def work(self): pass def eat(self): pass class Robot(Workable): def work(self): pass

UML ISP

[Workable] <|-- [Human] [Eatable] <|-- [Human] [Workable] <|-- [Robot]

Principio DIP Dependency Inversion Principle

Idea clave DIP: dependa de abstracciones, no de implementaciones. Facilita testing, substitución y despliegues en servicios cloud aws y azure cuando integras adaptadores externos.

Ejemplo malo DIP en Python

class MySQLDatabase: def connect(self): pass class UserService: def __init__(self): self.db = MySQLDatabase() def save(self, user): self.db.connect() self.db.insert(user)

Problema: UserService está acoplado a MySQLDatabase.

Ejemplo bueno DIP en Python

class Database: def connect(self): raise NotImplementedError class MySQLDatabase(Database): def connect(self): pass class UserService: def __init__(self, db: Database): self.db = db def save(self, user): self.db.connect() self.db.insert(user)

UML DIP

[UserService] --> [Database] [MySQLDatabase] --|> [Database]

Patrones prácticos y aplicabilidad en proyectos reales

Integrar SOLID con prácticas DevOps, arquitecturas cloud y soluciones de inteligencia artificial mejora la escalabilidad y seguridad. En Q2BSTUDIO aplicamos SOLID en proyectos de software a medida, implementamos microservicios en servicios cloud aws y azure, y diseñamos agentes IA y pipelines de datos compatibles con power bi y servicios inteligencia de negocio. Esto reduce deuda técnica y facilita auditorías de ciberseguridad.

Consejos para equipos

1. Revisiones de código enfocadas en responsabilidades y acoplamiento. 2. Tests que detecten violaciones a LSP y OCP. 3. Documentación UML mínima para comunicar límites de responsabilidad. 4. Usar inyección de dependencias para facilitar deploys en servicios cloud aws y azure y pruebas con mocks en proyectos de inteligencia artificial.

Beneficios para clientes de Q2BSTUDIO

Al aplicar SOLID en soluciones de software a medida, Q2BSTUDIO entrega productos más robustos y mantenibles, reduce tiempo de resolución de incidencias en ciberseguridad, acelera adopción de ia para empresas y mejora la integración con herramientas de inteligencia de negocio y power bi. Nuestras soluciones de agentes IA y servicios de consultoría en inteligencia artificial garantizan modelos modulares y fáciles de evolucionar.

Resumen rápido

SRP separar responsabilidades. OCP extender sin modificar. LSP garantizar sustituibilidad. ISP interfaces específicas. DIP depender de abstracciones. Aplicando estos principios en Python y representándolos con UML ligero se reduce la complejidad en proyectos de software a medida, aplicaciones a medida e iniciativas de inteligencia artificial y ciberseguridad.

Contacta con Q2BSTUDIO

Si buscas un partner para desarrollar software a medida, aplicaciones a medida, soluciones de inteligencia artificial, agentes IA, servicios cloud aws y azure, ciberseguridad o proyectos de servicios inteligencia de negocio con power bi, en Q2BSTUDIO te ayudamos a aplicar SOLID desde la arquitectura hasta los tests.

Palabras clave

aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat