2.1 Diseño Arquitectonico De Software Flashcards
¿Qué es el diseño arquitectónico de software?
Es el proceso de definir la estructura, componentes, sus interrelaciones y las pautas que regirán el desarrollo del sistema, asegurando que se cumplan requisitos funcionales y no funcionales.
¿Cuáles son los objetivos principales del diseño arquitectónico?
Establecer una estructura robusta, escalable y mantenible, facilitar la comunicación entre stakeholders y servir como guía para la implementación y evolución del sistema.
¿Qué se entiende por “separación de preocupaciones” en el diseño arquitectónico?
Es el principio de dividir el sistema en módulos o capas independientes, donde cada uno se enfoca en una responsabilidad específica, facilitando la gestión, el mantenimiento y la escalabilidad.
¿Qué es un patrón arquitectónico?
Es una solución general y reutilizable a problemas comunes en la arquitectura de software, que proporciona un marco para estructurar sistemas de forma eficaz.
¿Qué caracteriza a una arquitectura monolítica?
Se trata de un diseño en el que todos los componentes del sistema se integran en una única aplicación, lo que simplifica el desarrollo inicial pero puede dificultar la escalabilidad y el mantenimiento a medida que el sistema crece.
¿Qué ventajas ofrece la arquitectura de microservicios?
Permite desarrollar, desplegar y escalar componentes de forma independiente, lo que mejora la flexibilidad, resiliencia y facilita la actualización de funcionalidades sin afectar al sistema completo.
¿Qué es la arquitectura cliente-servidor?
Es un patrón donde la carga del procesamiento se divide entre el cliente (interfaz de usuario) y el servidor (procesamiento y almacenamiento de datos), permitiendo centralizar funciones críticas en el servidor.
¿Cómo se organiza la arquitectura de capas?
Divide el sistema en capas (por ejemplo, presentación, lógica de negocio, acceso a datos) en las que cada una interactúa solo con las adyacentes, promoviendo la modularidad y facilidad de mantenimiento.
¿Por qué es importante la escalabilidad en el diseño arquitectónico?
Porque garantiza que el sistema pueda crecer y adaptarse a aumentos en la carga de usuarios o datos sin degradar el rendimiento, lo que es esencial en entornos dinámicos y de alto tráfico.
¿Qué significa la reutilización de componentes en la arquitectura de software?
Es la práctica de diseñar módulos o servicios que puedan ser empleados en distintos contextos o aplicaciones, reduciendo duplicidad y acelerando el desarrollo de nuevas funcionalidades.
¿Qué herramientas de modelado se utilizan para documentar la arquitectura?
Se emplean diagramas UML (casos de uso, clases, secuencia, componentes) y BPMN, que ayudan a visualizar la estructura, el flujo de información y las interacciones dentro del sistema.
¿Qué es la documentación arquitectónica y qué elementos suele incluir?
Es el conjunto de documentos que describen la arquitectura del sistema, incluyendo diagramas, descripciones de componentes, interfaces, decisiones clave y pautas para el desarrollo y la integración.
¿Qué rol juegan los requisitos no funcionales en el diseño arquitectónico?
Determinan características como rendimiento, seguridad, usabilidad y disponibilidad, las cuales deben estar integradas en la estructura del sistema para cumplir con estándares de calidad.
¿Qué es la arquitectura orientada a servicios (SOA)?
Es un enfoque que organiza el sistema como un conjunto de servicios interoperables y autónomos, permitiendo la integración flexible y la reutilización de funcionalidades.
¿Cuáles son las ventajas y desventajas de la arquitectura de microservicios?
Ventajas: Escalabilidad, despliegue independiente, resiliencia y facilidad para adoptar nuevas tecnologías.
Desventajas: Complejidad en la gestión de la comunicación entre servicios, mayor necesidad de infraestructura y desafíos en la consistencia de datos.
¿Qué es el middleware y cuál es su función en la arquitectura de software?
Es una capa de software que facilita la comunicación y gestión de datos entre componentes o aplicaciones distribuidas, actuando como intermediario que simplifica la integración.
¿Qué se entiende por “diseño basado en componentes”?
Es un enfoque en el que el sistema se construye a partir de componentes autónomos y reutilizables que se integran para formar una solución completa, mejorando la mantenibilidad y la escalabilidad.
¿Qué papel juega la seguridad en el diseño arquitectónico?
La seguridad debe integrarse desde las primeras etapas del diseño, definiendo mecanismos de autenticación, autorización, encriptación y protección contra vulnerabilidades para salvaguardar la información y el sistema.
¿Cómo se evalúa y valida el diseño arquitectónico?
A través de revisiones, prototipos, pruebas de concepto y análisis de impacto, asegurando que el diseño cumple con los requisitos y pueda adaptarse a cambios futuros.
¿Qué importancia tiene la documentación de decisiones arquitectónicas?
Registrar las decisiones y razones detrás de la elección de ciertos patrones y tecnologías ayuda a entender el contexto del diseño, facilita futuras modificaciones y mejora la comunicación entre el equipo de desarrollo.