1.
Atributos de Diseño Arquitectónicos de Software
Los atributos de diseño arquitectónicos se refieren a las cualidades o características que
definen el comportamiento y la estructura de un sistema. Algunos de los más comunes
son:
Desempeño: La capacidad del sistema para procesar datos y responder a
solicitudes rápidamente.
Escalabilidad: La capacidad del sistema para manejar una mayor carga o
aumentar su capacidad sin perder eficiencia.
Seguridad: Protección de datos y recursos contra accesos no autorizados.
Disponibilidad: Qué tan accesible y funcional es el sistema en todo momento.
Mantenibilidad: Facilidad con la que se puede modificar, actualizar y corregir
el sistema.
Portabilidad: Capacidad del sistema para operar en diferentes plataformas sin
necesidad de modificaciones significativas.
2. Cuadro Comparativo de Patrones y Antipatrones
Aspecto Patrones Antipatrones
Soluciones probadas y efectivas a Soluciones que parecen efectivas pero
Definición problemas comunes en el diseño de resultan ser ineficaces o perjudiciales a
software. largo plazo.
Mejorar la calidad del diseño y la Evitar errores comunes que pueden
Propósito
arquitectura. comprometer la calidad.
Singleton, Observer, Factory Spaghetti Code, God Object, Golden
Ejemplos
Method. Hammer.
Mejoran la mantenibilidad, la
Dificultan la evolución y
Impacto escalabilidad y la flexibilidad del
mantenimiento del software.
sistema.
3. Diagramas de Componentes
Descripción: Un diagrama de componentes muestra cómo los componentes de un
sistema están interrelacionados y cómo interactúan entre sí. Representa módulos de alto
nivel (componentes) que pueden ser ejecutados de manera independiente.
Ejemplo:
plaintext
Copiar código
[Cliente] ---> [Interfaz de Usuario] ---> [Controlador] ---> [Base de
Datos]
---> [Lógica de Negocio] ---> [Sistema Externo]
4. Diagramas de Interacción
Descripción: Los diagramas de interacción muestran cómo los objetos o componentes
interactúan entre sí a lo largo del tiempo, describiendo las secuencias de mensajes.
Ejemplo (diagrama de secuencia):
plaintext
Copiar código
Cliente Servidor
| |
| Solicitar |
| -------------->|
| Responder |
| <--------------|
Explicación: El cliente solicita información al servidor, y el servidor responde.
5. Elementos de Diseño
Los elementos de diseño son las piezas fundamentales que conforman un sistema de
software. Incluyen:
Componentes: Módulos del sistema que encapsulan funcionalidades.
Interfaces: Definición de cómo interactúan los componentes.
Patrones: Soluciones estructurales y de comportamiento a problemas comunes.
Cohesión y Acoplamiento: Relaciones entre los componentes (alta cohesión,
bajo acoplamiento es ideal).
Datos: Manejo y estructura de la información dentro del sistema.
6. Casos de Uso
Descripción: Los casos de uso son descripciones de cómo los usuarios interactúan con
el sistema para lograr un objetivo específico. Representan una secuencia de acciones
realizadas por los actores.
Ejemplo:
Caso de uso: "Iniciar sesión"
o Actor: Usuario
o Flujo básico:
1. El usuario ingresa su nombre de usuario y contraseña.
2. El sistema verifica las credenciales.
3. El usuario es redirigido a su panel de inicio.
7. Patrones Arquitectónicos
Descripción: Los patrones arquitectónicos son soluciones reutilizables a problemas
comunes en la arquitectura de software. Definen la estructura global del sistema.
Ejemplos y diagramas:
1. Monolítico:
plaintext
Copiar código
[Cliente] ---> [Aplicación Única] ---> [Base de Datos]
2. Microservicios:
plaintext
Copiar código
[Cliente] ---> [Microservicio 1] ---> [Base de Datos]
[Microservicio 2] ---> [Base de Datos]
8. ¿Qué es la Arquitectura de Software?
La arquitectura de software es la estructura organizacional de un sistema de software,
que define sus componentes, relaciones y cómo interactúan.
Partes involucradas:
1. Componentes: Elementos del sistema que realizan una tarea específica.
2. Conectores: Mecanismos de comunicación entre los componentes.
3. Patrones: Soluciones reutilizables que guían el diseño del sistema.
4. Estilos arquitectónicos: Enfoques o principios para organizar el sistema (por
ejemplo, monolítico, microservicios).
5. Interfaz: La forma en que los componentes se comunican con el mundo
exterior.
6. Datos: Estructura y gestión de la información dentro del sistema.
7. Desempeño: Consideraciones sobre la eficiencia, velocidad y escalabilidad.
9. Arquitectura MVC (Modelo-Vista-Controlador)
Descripción: MVC es un patrón arquitectónico que separa una aplicación en tres
componentes principales:
Modelo: Representa los datos y la lógica del negocio.
Vista: La interfaz de usuario que muestra los datos.
Controlador: Intermediario que maneja las solicitudes del usuario y actualiza el
modelo y la vista.
Diagrama:
plaintext
Copiar código
[Usuario] ---> [Vista] ---> [Controlador] ---> [Modelo]
| |
------------------->|
Actualiza
10. Proceso de Arquitectura de Software
El proceso de arquitectura de software se puede describir en pasos simples:
1. Recolección de Requisitos: Entender las necesidades del usuario y los
requisitos del sistema.
2. Análisis de Arquitectura: Estudiar las opciones arquitectónicas y seleccionar la
más adecuada.
3. Diseño de Arquitectura: Crear la estructura del sistema, definir los
componentes y sus interacciones.
4. Implementación: Desarrollar los componentes según el diseño arquitectónico.
5. Evaluación y Revisión: Evaluar la arquitectura a medida que se desarrolla el
sistema y realizar ajustes según sea necesario.
6. Despliegue: Implementar la arquitectura en el entorno de producción.
7. Mantenimiento: Realizar ajustes y mejoras después del despliegue según los
cambios en los requisitos o en el entorno.