UNIVERSIDAD
TECNOLOGICA DE
TEHUACAN
INGENIERIA EN DESARROLLO Y GESTION DE
SOFTWARE
ACTIVIDAD 1 – LECTURA GUIADA Y DEBATE
TÉCNICO
CARLOS ANDRES ARRIAGA MARQUEZ
03/09/2025
SEPTIEMBRE-DICIEMBRE
Asignatura: Arquitectura de Software
JOSÉ MIGUEL CARRERA PACHECO
Definición de arquitectura de software
La arquitectura de software es el conjunto de decisiones estructurales que determinan
cómo un sistema puede evolucionar sin que sus costos de cambio se vuelvan
insostenibles. En otras palabras, es la base que hace posible que el software se
mantenga útil y adaptable a medida que cambian los requerimientos y el entorno
tecnológico. Según Martin, no existe diferencia real entre diseño y arquitectura, pues
ambos forman un continuo que va desde las decisiones más abstractas hasta los
detalles más concretos.
Objetivo de la arquitectura
El objetivo principal de una buena arquitectura es minimizar los recursos humanos
necesarios para construir y mantener un sistema. Cuando la estructura interna está bien
organizada, los equipos pueden adaptarse con rapidez a los cambios del mercado y a
nuevas necesidades. En cambio, cuando se descuida, los costos de mantenimiento
aumentan de forma insostenible.
Los dos valores que entrega el software
Robert C. Martin plantea que cada sistema de software aporta dos valores
fundamentales:
1. Comportamiento: la funcionalidad que el software ofrece a usuarios y negocios. Por
ejemplo, en Uber, el comportamiento esperado es asignar un conductor en segundos.
2. Estructura: la organización interna que asegura que el sistema pueda mantenerse y
evolucionar en el tiempo. Netflix, por ejemplo, pudo pasar de DVDs a streaming gracias
a una arquitectura bien estructurada.
Atributos de calidad relevantes
Entre los principales atributos de calidad, se destacan:
- Mantenibilidad: permite realizar cambios sin introducir fallos graves. En Facebook, la
necesidad de modificar algoritmos de privacidad exige una arquitectura que soporte
cambios rápidos y seguros.
- Escalabilidad: capacidad de manejar más usuarios y procesos. Uber depende de la
escalabilidad para soportar millones de viajes simultáneos en tiempo real.
- Flexibilidad: adaptarse a nuevas condiciones o tecnologías. Netflix transformó su
negocio gracias a una arquitectura flexible basada en microservicios.
La metáfora de la liebre y la tortuga
El autor usa la fábula de la liebre y la tortuga para ilustrar un error común en el
desarrollo. Muchos equipos creen que escribir código desordenado les hace avanzar
rápido bajo la idea de 'ya lo limpiaremos después'. Sin embargo, el desorden siempre
reduce la productividad y aumenta los costos. La disciplina y el diseño limpio, en
cambio, permiten avanzar de forma sostenida, como la tortuga que gana la carrera con
constancia.
Conclusión personal
Considero que la arquitectura de software es un factor decisivo en el éxito de cualquier
proyecto tecnológico. No solo determina la calidad del producto, sino también la
experiencia de los desarrolladores y la sostenibilidad del sistema en el tiempo. Diseñar
con mantenibilidad, escalabilidad y flexibilidad en mente es una inversión que evita
problemas futuros y asegura la competitividad de las organizaciones.
Pregunta crítica para el debate
En un startup como Uber en sus primeros años, ¿habría sido más conveniente priorizar
la escalabilidad para responder al crecimiento explosivo de usuarios, o la mantenibilidad
para evolucionar el producto de manera sostenible?
Y otro que se me ocurrió al momento de leer mi resumen
Considerando que sigo al pie de la letra todos los atributos dentro de mi proyecto, eso
me garantiza el éxito o solo me ayuda a aprender buenas prácticas o ambas ?
Referencias
Martin, R. C. (2018). *Arquitectura Limpia: Una guía para el artesano sobre la estructura
del software*. Pearson Education.
Facebook. (s.f.). Privacy principles. Recuperado de https://about.fb.com/
Uber. (s.f.). Technology at Uber. Recuperado de https://www.uber.com/
Netflix. (s.f.). Netflix Technology Blog. Recuperado de https://netflixtechblog.com/