Want to create interactive content? It’s easy in Genially!

Get started free

ARQUITECTURA DE SOFTWARE LIMPIA

Valeria Avellaneda

Created on October 30, 2025

Start designing with a free template

Discover more than 1500 professional designs like these:

Modern Presentation

Terrazzo Presentation

Colorful Presentation

Modular Structure Presentation

Chromatic Presentation

City Presentation

News Presentation

Transcript

ARQUITECTURA LIMPIA

(Clean Architecture)

Arquitectura de Software (¿Qué es?)

La arquitectura de software es la organización de un sistema, representada por sus componentes, las relaciones entre ellos, el entorno en que operan y los principios que guían su diseño y evolución.

Objetivos principales

Las aplicaciones móviles presentan desafíos únicos:

  • Recursos limitados (memoria, CPU, batería)
  • Conexión de red inestable
  • Ciclo de vida complejo (background, foreground, terminación)
  • Actualización de UI reactiva
  • Testing en múltiples dispositivos
  • Ciclos de release frecuentes

  • Separación de responsabilidades
  • Facilitar el mantenimiento y evolución
  • Reducir acoplamiento entre componentes
  • Aumentar cohesión dentro de componentes
  • Hacer el código predecible y comprensible

Una buena arquitectura mitiga estos problemas haciendo el código modular, testeable y adaptable.

¿Qué es Arquitectura Limpia?

Arquitectura Limpia es UNA forma específica de organizar el código, entre muchas otras (MVC, MVVM, MVP, etc.).Cada arquitectura tiene sus propias reglas de cómo dividir el código, pero todas buscan los mismos objetivos: separación de responsabilidades, bajo acoplamiento, alta cohesión, etc.

TIPOS DE ARQUITECTURA

ARQUITECTURA EN CAPAS (LAYERED ARCHITECTURE)

Organización jerárquica donde cada capa tiene responsabilidades específicas y solo puede comunicarse con la capa inmediatamente inferior. Es el enfoque más tradicional y simple.

Capas típicas:

  • Capa de presentación: Interfaz de usuario, manejo de eventos, visualización de datos.
  • Capa de lógica de negocio: Reglas de negocio, validaciones, cálculos, flujos de trabajo.
  • Capa de acceso a datos: Comunicación con bases de datos, APIs, archivos.
  • Capa de persistencia: Almacenamiento físico de datos.

TIPOS DE ARQUITECTURA

ARQUITECTURA LIMPIA (CLEAN ARCHITECTURE)

Organiza el código en círculos concéntricos donde las dependencias apuntan hacia adentro. Las capas externas conocen las internas, pero nunca al revés. El núcleo contiene la lógica de negocio pura, independiente de frameworks, UI o bases de datos.

  • Entities (Entidades): Objetos de negocio puros con lógica empresarial fundamental. No dependen de nada externo. Representan conceptos del dominio del problema.
  • Use Cases (Casos de Uso): Lógica de aplicación específica. Orquestan el flujo de datos hacia y desde las entidades. Implementan reglas de negocio de la aplicación.
  • Interface Adapters (Adaptadores de Interfaz): Convierten datos entre el formato de casos de uso y el formato de agentes externos (UI, bases de datos, web). Incluyen presenters, controllers, gateways.
  • Frameworks and Drivers (Frameworks y Controladores): Capa más externa con frameworks, herramientas, bases de datos, UI frameworks. Detalles de implementación que pueden cambiar sin afectar el núcleo.

TIPOS DE ARQUITECTURA

ARQUITECTURA MODULAR (FEATURE-BASED)

Organiza el código por características o módulos funcionales en lugar de capas técnicas. Cada feature contiene toda la lógica necesaria (UI, lógica de negocio, datos) para funcionar independientemente.

Organización:

  • Módulo por feature: Cada característica del producto es un módulo autónomo.
  • Módulo core: Funcionalidad compartida entre features (networking, storage, utils).
  • Módulo común: Widgets reutilizables, constantes, temas.

TIPOS DE ARQUITECTURA

ARQUITECTURA MVC (MODEL-VIEW-CONTROLLER)

Patrón arquitectónico clásico que separa la aplicación en tres componentes interconectados. Es uno de los patrones más antiguos y ampliamente conocidos.

  • Model (Modelo): Representa datos y lógica de negocio. Notifica a las vistas cuando los datos cambian. Independiente de la interfaz de usuario.
  • View (Vista): Presenta los datos al usuario. Escucha cambios en el modelo y se actualiza. Envía eventos de usuario al controlador.
  • Controller (Controlador): Maneja entrada del usuario. Actualiza el modelo según acciones del usuario. Selecciona qué vista mostrar.

TIPOS DE ARQUITECTURA

ARQUITECTURA MVVM (MODEL-VIEW-VIEWMODEL)

Patrón especialmente popular en desarrollo móvil y frameworks reactivos. El ViewModel expone datos observables que la vista consume automáticamente mediante data binding.

Model (Modelo): Datos y lógica de negocio. Igual que arquitecturas anteriores. View (Vista): UI que observa el ViewModel. Se actualiza automáticamente cuando ViewModel cambia. Envía eventos al ViewModel. ViewModel (Vista-Modelo): Expone datos en formato consumible por la vista. Contiene lógica de presentación. Observa cambios en el modelo. No tiene referencia a la vista (desacoplado).

Métricas UX Concretas

Métricas de usuario (analytics): Net Promoter Score (NPS): "Del 1-10, ¿recomendarías este sistema?" Task Completion Time: ¿Cuánto tardan en completar acción clave? Bounce Rate: ¿Se van rápido sin hacer nada? Support Tickets: ¿Cuántos piden ayuda?

Métricas técnicas (medibles en código): Time to Interactive (TTI): < 3 segundos First Contentful Paint: < 1.8 segundos Task Success Rate: > 90% de usuarios completan la tarea Error Rate: < 5% de errores en flujos críticos

Herramientas:

  • Google Analytics (comportamiento)
  • Hotjar (heatmaps, grabaciones de sesión)
  • Sentry (tracking de errores)
  • Lighthouse (performance)

Ejercicios