Please enable JavaScript.
Coggle requires JavaScript to display documents.
Estilos de arquitectura de software - Coggle Diagram
Estilos de
arquitectura de software
MVC
Características
Esta dividido en 3 elementos principales
Modelo
Representación interna de la información, hace consultas a la Base de datos.
Controlador
Recibe las órdenes del usuario y se encarga de solicitar los datos al modelo y de comunicárselos a la vista.
Vistas
Representación visual de los datos, todo lo que tenga que ver con la interfaz gráfica
Ventajas
El modelo y el controlador pueden reutilizarse en diferentes vistas, evitando duplicación.
Facilita agregar nuevas funcionalidades sin afectar otras partes de la aplicación.
Cada componente tiene funciones claras, lo que facilita mantenimiento y comprensión del código.
Aplicaciones
Desarrollo Web
Frameworks como ASP.NET MVC, Django, Ruby on Rails usan MVC para separar la lógica de negocio, la interfaz y el control de flujo.
Aplicaciones de escritorio Programas con interfaces gráficas como Java Swing, C# Windows Forms o Qt implementan MVC para separar la interfaz de la lógica.
Juegos
Separar la lógica del juego (modelo), la presentación (vista) y el manejo de eventos (controlador) usan MVC para mantener el código ordenado y escalable.
Desventajas
Para aplicaciones muy pequeñas o simples, MVC puede ser excesivo y añadir complejidad innecesaria.
Para desarrolladores nuevos, entender la separación y la comunicación entre los componentes puede ser confuso.
Implementar MVC puede ser más complicado y requiere más planificación que una estructura simple.
Capas
Ventajas
Rápido desarrollo debido a la capacidad de desarrollo simultáneo.
Alta compatibilidad con tecnologías emergentes.
Modularidad entre capas, permitiendo más independencia.
Aplicaciones
Se utiliza principalmente en aplicaciones de estilo "ciente-servidor", donde la modulación por fases del sistema es conveniente para facilitar la comunicación entre sistemas y facilitar mantenimiento.
Características
Su principal característica es su división en tres capas: presentación, aplicación y datos. La primera capa se encarga de lo que (como su nombre indica) es presentado al usuario, la segunda se encarga de los procesos lógicos y por último la tercera capa se encarga del acceso a datos o "backend".
Desventajas
Mayor complejidad, la cual no siempre es necesaria para ciertos proyectos
Mayor barrera de dificultad para los desarrolladores debido a su estructura más avanzada
Monolítico
Características
Utiliza solamente un formato de comunicación.
Puede cumplir múltiples funciones a pesar su centralización
Se centra en una única base de códigos
Ventajas
Bajos costos de producción inicial debido a su simplicidad.
Facilidad de construcción, debugging y distribución, gracias a su estructura centralizada.
La simplicidad de preocuparse con solamente un formato de comunicación, eliminando la necesidad de traductores.
Desventajas
Dificultad o directamente imposibilidad de implementación de tecnologías nuevas a proyectos ya existentes, debido a su formación centrada en una sola base de códigos.
El sistema puede requerir re estructuraciones a gran escala caso sea necesario alterar una función clave, teniendo baja capacidad de escalabilidad.
Aplicaciones
Se utiliza principalmente en proyectos que ameriten una rápida reacción y aprecien el bajo costo de producción inicial, ideal para pruebas de concepto o proyectos "startup".
Aunque debe evitar ser utilizado en proyectos conflictivos con sus desventajas, es decir; proyectos que requieran de constante adaptación a tecnologías emergentes y comunicación con otras aplicaciones.
Cliente-Servidor
Características
El Servidor puede atender a varios clientes simultáneamente; y los clientes pueden conectarse a varios servidores.
El Cliente (solicita servicios) y el Servidor (provee servicios y procesa datos).
Cliente envía solicitudes y servidor responde con información.
Servidor gestiona datos; cliente solo muestra información y solicita operaciones.
Ventajas
El Servidor esta protegido por Firewalls, haciendolo bastate seguro
El Cliente puede ser multipalataforma aunque el Servidor se mantega solo en una.
El Servidor será la única fuente de información confiable, impidiendo que el Cliente cuente con informacipn desactualizada
Desventajs
La concurrencia de los Clientes puede ser un problema para el Servidor si no hay una estrategia de escalamient
Si el Servidor se cae el Cliente queda inoperable
Gestión de actualizaciones para los Clientes
Aplicaciones
Web y navegadores
Los navegadores actúan como clientes que solicitan páginas web a servidores
Firefox
Google Chrome
Bases de datos
Aplicaciones cliente consultan y modifican datos en servidores de bases de datos
ORACLE
MYSQL SERVER
Servicios en la Nube
Un servidor central que almacena y procesa archivos, mientras los clientes sincronizan y muestran la información.
Dropbox,
Google Drive