Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FORO PenafielLourdes ARQ2
FORO PenafielLourdes ARQ2
ec
[ACDB2-25%] Foro 1
Tala de contenidos
DESCRIPCIÓN DE LA ACTIVIDAD........................................................................................1
DESARROLLO...........................................................................................................................1
REFERENCIAS...........................................................................................................................5
Arquitectura de Software [ACDB2-25%] Foro 1
DESCRIPCIÓN DE LA ACTIVIDAD
Usa los elementos arquitectónicos, principios de diseño y el proceso de diseño de arquitectura software para
identificar estilos y patrones arquitectónicos.
DESARROLLO
Como Arquitecto de Software se le pide que proponga un diseño para una aplicación web para
agendamiento de citas para un centro de matriculación vehicular. Conteste las siguientes interrogantes:
Dada la naturaleza de una aplicación web para agendamiento de citas en un centro de matriculación
vehicular, propondría el uso del estilo arquitectónico de Arquitectura de Microservicios, porque:
¿Qué atributos de calidad le daría mayor importancia y por qué (mínimo 5 atributos)?
La elección de atributos de calidad es crucial para el éxito de una aplicación. La importancia de cada
atributo puede variar según los requisitos específicos del proyecto y las expectativas de los usuarios.
1. Disponibilidad
Importancia: Alta
Justificación: En un contexto de agendamiento de citas, la disponibilidad es fundamental. Los usuarios
deben poder acceder al sistema en cualquier momento para programar o modificar sus citas. La alta
disponibilidad asegura que el servicio esté siempre accesible, minimizando interrupciones y ofreciendo una
experiencia de usuario confiable.
2. Rendimiento
Importancia: Alta
Justificación: El rendimiento es crucial para garantizar respuestas rápidas y eficientes al realizar
operaciones de agendamiento de citas. Los tiempos de carga rápidos y la capacidad de respuesta del
sistema contribuyen a una experiencia de usuario fluida y satisfactoria, lo cual es esencial para la retención
de usuarios.
3. Seguridad
robustas, como autenticación segura, autorización adecuada y cifrado de datos, es esencial para proteger
la privacidad y la integridad de la información.
4. Escalabilidad
Importancia: Alta
Justificación: La aplicación debe ser capaz de manejar variaciones en la demanda, especialmente en
momentos de alta concurrencia, como plazos límite para matriculación. La escalabilidad garantiza que el
sistema pueda adaptarse a un aumento repentino en la carga de trabajo sin degradación del rendimiento.
5. Mantenibilidad
Importancia: Alta
Justificación: La facilidad de mantenimiento es crucial para permitir actualizaciones, correcciones de
errores y la introducción de nuevas funcionalidades de manera eficiente. Un código modular,
documentación clara y buenas prácticas de desarrollo contribuyen a la mantenibilidad a largo plazo,
asegurando que la aplicación pueda evolucionar con los cambios en los requisitos del negocio.
Describa la evolución de los estilos arquitectónicos y las nuevas tendencias tecnológicas para la creación
de nuevos estilos. (Presente diagramas, sustento teórico, y referencie correctamente las fuentes
utilizadas)
En resumen, la literatura especializada respalda la idea de que la evolución de los estilos arquitectónicos y
las nuevas tendencias tecnológicas han tenido un impacto significativo en la forma en que diseñamos y
desarrollamos aplicaciones de software (Shaw & Garlan, 1996).
Arquitectura de Software [ACDB2-25%] Foro 1
ESTILOS ARQUITECTONICOS
Estilo Monolítico: Las
aplicaciones monolíticas fueron
la norma en las primeras etapas
del desarrollo de software.
Todas las funciones y
componentes se integran en
una única unidad.
Evolución: Aunque aún se
utilizan, han evolucionado hacia
implementaciones más
modulares y escalables.
Arquitectura Cliente-
Servidor: Introduce la
separación entre el cliente y
el servidor, permitiendo la
distribución de la carga de
trabajo.
Evolución: Ha evolucionado
hacia modelos más avanzados
como la arquitectura de tres
capas (cliente, servidor de
aplicación, base de datos).
Arquitectura Orientada a
Servicios (SOA): Descomposición
de aplicaciones en servicios
independientes y reutilizables.
Comunicación a través de
estándares como SOAP y REST.
Evolución: Ha evolucionado
hacia arquitecturas más ligeras y
centradas en servicios más
específicos (microservicios).
Microservicios: Despliega
aplicaciones como conjuntos
de servicios pequeños,
independientes y autónomos.
Evolución: La tendencia actual
ha llevado a prácticas más
avanzadas como
arquitecturas basadas en
eventos y funciones sin
servidor.
Arquitectura de Software [ACDB2-25%] Foro 1
REFERENCIAS
1. Boettiger, C. (2015). An introduction to Docker and Singularity for reproducible research. ACM SIGOPS
Operating Systems Review, 49(1), 71-79.
2. Burns, B., Grant, B., Oppenheimer, D., Brewer, E., & Wilkes, J. (2016). Borg, Omega, and Kubernetes.
Queue, 14(1), 70-93.
3. Erl, T. (2005). Service-Oriented Architecture: Concepts, Technology, and Design. Prentice Hall.
4. Fowler, M. (2002). Patterns of Enterprise Application Architecture. Addison-Wesley.
5. Newman, S. (2015). Building Microservices. O'Reilly Media.
6. Newman, S. (2019). Event-Driven Microservices: The Sense, Nonsense, and a Way Forward. [Blog post].
Retrieved from https://www.thoughtworks.com/radar/techniques/event-driven-microservices
7. Pressman, R. S. (2014). Software Engineering: A Practitioner's Approach. McGraw-Hill.
8. Shaw, M., & Garlan, D. (1996). Software Architecture: Perspectives on an Emerging Discipline. Prentice
Hall.
9. Tanenbaum, A. S., & Van Steen, M. (2006). Distributed Systems: Principles and Paradigms. Prentice Hall.
10. Varia, J. (2017). Serverless Architectures with AWS Lambda. AWS Whitepaper.