Software Avanzado es un curso profesional que pertenece al área de software de la carrera de ingeniería en Ciencias y Sistemas, el cual trata sobre fundamentos de arquitectura: Explica qué es la arquitectura de software, el rol del arquitecto, metáforas arquitectónicas y principios de diseño.
Atributos de calidad: Describe atributos clave como performance, escalabilidad, disponibilidad, seguridad, modificabilidad, entre otros. Enfoques arquitectónicos: Detalla enfoques orientados a objetos, eventos, capas, microservicios, espacios de datos. Vistas arquitectónicas: Presenta vistas lógica, de procesos, física, de desarrollo y de escenarios. Patrones arquitectónicos: Explica en detalle los patrones más usados como MVC, flujo de datos, proxy, broker, entre otros. Estilos arquitectónicos: Cubre clientes-servidor, servicios, mensajería, por capas, híbridos y de integración. Decisiones de diseño: Discute principios SOLID, separación de intereses, acoplamiento, cohesión, composición.
También se desarrolla la administración de programas de Tecnología de la información y gerencia de proyectos de software, con base en mejores prácticas presentadas a través de marcos de trabajo. Durante el desarrollo del curso se hace énfasis en la importancia que tienen los modelos de referencia a manera de guía técnica de gestión de los recursos de TI de una empresa, que tiene como fin la elaboración de una adecuada planificación y seguimiento para lograr el éxito de un proyecto de software, que se traduzca en valor para la empresa.