Registro Calificado: Resolución 014582 del 06 de agosto de 2020 por 7 años
Plan de estudios
Malla curricular
El plan de estudios permite alcanzar gradualmente diferentes niveles de madurez profesional. Los cursos se han organizado en cuatro semestres y medio. Los tres primeros son incrementales y el último es flexible, es decir, los cursos se pueden tomar de un conjunto de electivas, e incluyen un proyecto integrador.
Cada semestre tiene dos ciclos, cada uno de 8 semanas. En cada ciclo se toman de manera simultánea 2 cursos, de 2 créditos cada uno. La maestría se compone de 9 ciclos para un total de 36 créditos.
La maestría en ingeniería de software está pensada para ir adquiriendo conocimiento y habilidades de forma gradual a lo largo de sus 4 semestres:
El primer semestre busca establecer una línea base para todos los participantes, garantizando un conocimiento básico mínimo en prácticas esenciales en Ingeniería de Software, particularmente en prácticas fundamentales de diseño, arquitectura de software, metodologías y herramientas ágiles y aplicaciones Web.
El segundo semestre se basa en los conceptos establecidos en el primer semestre, para trabajar en prácticas de ingeniería de software de mayor complejidad, introduciendo el agilismo en mayor profundidad en el ciclo 1 y utilizando estos conocimientos en el ciclo 2 con aplicaciones en las que la movilidad y la nube hacen parte de la solución.
El tercer semestre parte de las habilidades adquiridas en el segundo semestre para incorporar elementos como la experiencia de usuario y el diseño nativo en la nube como elementos fundamentales en la ingeniería de software moderna. Este semestre finaliza con temas de DevOps y líneas de producto, que tienen sentido una vez se han adquirido los conocimientos de los ciclos anteriores.
Finalmente, el cuarto semestre le permite al estudiante profundizar en un área de trabajo en ingeniería de software y aplicar todos los conceptos vistos durante este camino en un proyecto de cierre.
NOTA: los laboratorios requieren un mínimo de 500 kbps de ancho de banda para poder desarrollarlo.
La última parte de la maestría consiste en 4 cursos que puedes elegir de un conjunto de alternativas y un proyecto integrador o capstone , dividido en dos cursos. Podrás profundizar en programación generativa de software, aprendizaje automático para ingeniería de software, análisis y visualización de datos, ecosistemas y fábricas de software o ingeniería de software para IOT.
El objetivo del proyecto integrador, como su nombre lo indica, es integrar los cursos electivos en temáticas, para ser trabajados por equipos de varios estudiantes. Habrá guía y seguimiento constante para este desarrollo, pero también la oportunidad para construir soluciones creativas e innovadoras a algún problema abierto de la industria. Esta última parte de la maestría consta de 3 ciclos, uno de ellos en periodo intersemestral.
Duración del programa:
26 meses o 4 semestres y medio
Cuando te gradúes, podrás:
Liderar equipos de desarrollo de software de alto desempeño.
Ser parte activa de un equipo de transformación digital de una organización, utilizando tecnologías de la industria 4.0 como IoT, tecnologías móviles, cloud y microservicios.
Construir equipos de software multifunción con prácticas de DevOps (development and operations).
Construir herramientas para automatizar tareas en el proceso de desarrollo de software como automatización de pruebas, despliegues, generación de código y documentación, entre otras.
Desarrollar full-stack: frameworks web (Angular, React), mediante lenguajes como Nodejs, Python y Java.
Construir líneas de producto y esquemas de fábricas de software automatizadas que utilicen inteligencia artificial y analítica de datos para mejorar la productividad de las organizaciones que desarrollan software.
Liderar proyectos de modernización de software.
Cursos abiertos y Certificado MasterTrack:
La Universidad de los Andes ofrecerá cursos abiertos para las personas que deseen iniciar su camino hacia la maestría:
UML (Unified Modeling Language) - Aprende en este curso cómo construir modelos de clases básicos en UML y comprende la sintaxis de clase y objeto en UML. Conoce también los modelos de clases UML con asociaciones básicas y con herencias.
Introducción al desarrollo web - Este curso te proporcionará los conceptos básicos para iniciarte en el fascinante mundo de la Ingeniería de Software para aplicaciones web. Abordaremos los conceptos fundamentales de estructura, contenido y presentación de una página web, para luego centrarnos en la sintaxis del lenguaje de marcas HTML y en el uso de las etiquetas para crear títulos, párrafos, listas, enlaces, imágenes y formularios.
Curso en Programación en Python - Un curso altamente interactivo que constantemente te retará a responder preguntas, verificar tu comprensión, ejercitarte en escritura de código de programación, resolver casos de diferente complejidad y múltiples oportunidades para pasar de la teoría a la práctica.
Introducción al control de versiones con Git y GitHub - Los sistemas de control de versiones son herramientas fundamentales para poder gestionar el código fuente de las aplicaciones, todo desarrollador debe conocer para qué se usan y cómo se usan. En este curso aprenderás a utilizar el sistema de control de versiones más usado en el mundo Git y a colaborar en repositorios remotos con GitHub.
Certificado MasterTrack
Principios de ingeniería de software automatizada y ágil - 4 cursos. Prepárate para integrar un equipo ágil de desarrollo de software. Aprende sobre diseño y arquitectura de software y utiliza las prácticas esenciales de versionamiento, integración continua y pruebas automatizadas para diseñar e implementar una aplicación. Si eres aceptado en el programa de maestría, los contenidos vistos podrán ser homologados (máximo de 8 de 36 créditos).
Metodologías ágiles de desarrollo de software - 4 cursos. Construye de forma ágil soluciones modernas e innovadoras, listas para operar en la nube y en plataformas móviles, aplicando principios ágiles de arquitectura y desarrollo de software que te permitirán hacer parte de equipos de trabajo de alto desempeño. Si eres aceptado en el programa de maestría, los contenidos vistos podrán ser homologados (máximo de 8 de 36 créditos).
Homologaciones
¿A quiénes aplica?
Aplica para estudiantes de MISO que aprobaron los cursos de la primera trayectoria (MasterTrack® en Principios de ingeniería de software automatizada y ágil) a través de Educación Continua.
¿Qué debo tener en cuenta?
Los cursos serán homologados siempre y cuando el promedio general acumulado del estudiante se mantenga en al menos tres (3.00).
La homologación de los créditos se podrá solicitar durante el primer periodo o ciclo académico como estudiante activo del programa Maestría en Ingeniería de Software. Pasado este periodo, no se podrán solicitar las homologaciones.
¿Cómo es el procedimiento de solicitud de homologación?
Para realizar la solicitud de homologación de materias para el programa de Maestría en Ingeniería de Software el estudiante debe:
Enviar en PDF el formato de Solicitud de Homologación de Materias al correo solicitudes-miso@uniandes.edu.co, indicando como asunto: ‘Homologación de materias MISO’.
Rutas sugeridas
Año 1
Semestre 1 - Principios de ingeniería de software automatizada y ágil
Ciclo 1 (Enero - Marzo)
Prácticas esenciales de desarrollo de ingeniería de software para el agilismo
Principios de diseño y arquitectura de software
Ciclo 2 (Abril - Mayo)
Pruebas automatizadas
Ingeniería de software para la web
Semestre 2 - Competencia en equipos de desarrollo de software ágil
Ciclo 1 (Agosto - Septiembre)
Procesos de desarrollo ágil
Arquitectura de software ágil
Ciclo 2 (Octubre - Noviembre)
Ingeniería de software para aplicaciones móviles
Desarrollo de software en la nube
Año 2
Semestre 3 - Equipos de ingeniería de software de alto desempeño
Ciclo 1 (Enero - Marzo)
Desarrollo de aplicaciones nativas en la nube
UX: Mejoramiento de la experiencia de usuario
Ciclo 2 (Abril - Mayo)
DevOps: Agilizando el despliegue continuo de aplicaciones
Gerencia de proyectos
Semestre 4 - Preparación para la competencia de élite
Ciclo (Junio - Julio)
Electiva 1
Electiva 2
Ciclo 1 (Agosto - Septiembre)
Proyecto final 1
Electiva 3
Ciclo 2 (Octubre - Noviembre)
Proyecto final 2
Electiva 4
Año 1
Semestre 1 - Principios de ingeniería de software automatizada y ágil
Ciclo 1 (Agosto - Septiembre)
Prácticas escensiales de desarrollo de ingeniería de software para el agilismo
Principios de diseño y arquitectura de software
Ciclo 2 (Octubre - Noviembre)
Pruebas automatizadas
Ingeniería de software para la web
Semestre 2 - Competencia en equipos de desarrollo de software ágil
Ciclo 1 (Enero - Marzo)
Procesos de desarrollo ágil
Arquitectura de software ágil
Ciclo 2 (Abril - Mayo)
Ingeniería de software para aplicaciones móviles
Desarrollo de software en la nube
Año 2
Semestre 3 - Equipos de ingeniería de software de alto desempeño
Ciclo 1 (Agosto - Septiembre)
Desarrollo de aplicaciones nativas en la nube
UX: Mejoramiento de la experiencia de usuario
Ciclo 2 (Octubre - Noviembre)
DevOps: Agilizando el despliegue continuo de aplicaciones
Gerencia de proyectos
Semestre 4 - Preparación para la competencia de élite
Ciclo 1 (Enero - Marzo)
Proyecto final 1
Electiva 1
Ciclo 2 (Abril - Mayo)
Proyecto final 2
Electiva 2
Ciclo (Junio - Julio)
Electiva 3
Electiva 4
Electivas MISO
Los 4 cursos de electivas que se encuentran en el plan de estudios las puedes elegir entre el siguiente conjunto de alternativas.
MISW4101: Prácticas esenciales de desarrollo de ingeniería de software para el agilismo
En este curso se estudiarán 4 práctic as de ingeniería de software: Historias de usuario, flujos de trabajo, desarrollo basado en pruebas e integración continua. Para cada práctica se estudian los conceptos asociados, se realizan tutoriales prácticos y se aplican en un proyecto, en parejas, que se desarrolla a lo largo del curso.
MISW4102: Principios de diseño y arquitectura de software
En este curso, aprenderemos cómo usar eficientemente los estilos y tácticas de arquitectura para garantizar el desempeño de las soluciones construidas, sin perder la capacidad de cambiar y evolucionar al ritmo de hoy. Veremos aplicaciones prácticas de patrones de diseño detallado y su relación con una arquitectura de software moderna. Durante el mismo, tendrás los roles de arquitecto y de diseñador de software, y deberás presentar y sustentar decisiones de diseño, explicando los beneficios de negocio y la viabilidad tecnológica de las propuestas.
Este curso es un primer paso para diseñar estrategias que buscan balancear esfuerzos manuales y automatizados para realizar pruebas de software. Aprende sobre conceptos y técnicas de pruebas automatizadas, estrategias de pruebas, pruebas exploratorias, pruebas de reconocimiento, y pruebas de “extremo a extremo”.
MISW4104: Ingeniería de software para aplicaciones web
En este curso se estudian elementos propios del desarrollo de aplicaciones web y se integran los conceptos vistos en los demás cursos del Master Track. El curso se enfoca en Implementar, a partir de una lista de historias de usuario, una aplicación web.
A través de este curso, adquirirá los conocimientos y habilidades necesarios para aplicar un proceso de desarrollo de software ágil. Para esto, diseñará e implementará una solución de software mediante la utilización de marcos de trabajo ágiles y las principales prácticas de ingeniería de los equipos ágiles: definición del producto usando mapas de historias de usuario, desarrollo basado en pruebas, flujos de trabajo para construcción e integración continua del producto.
Aprende a diseñar arquitecturas de software que estén en capacidad de responder a los retos de disponibilidad y seguridad que demandan las aplicaciones modernas. Mediante la utilización de procesos ágiles de diseño, podrás construir arquitecturas de software utilizando estilos de arquitectura basados en microservicios, teniendo en cuenta los requisitos de disponibilidad y seguridad y que demandan este tipo de soluciones.
MISW4203: Ingeniería de software para aplicaciones móviles
Este curso te enseñará a construir aplicaciones móviles Android nativas usando patrones como Model-View-View-Model (MVVM), Repository y Service Adapter, así como las mejores prácticas para prevenir errores de desempeño relacionados con el consumo de recursos. Aprenderás cómo evaluar la calidad de una aplicación móvil mediante el uso de herramientas de automatización de pruebas, a la vez que utilizas prácticas de ingeniería de software ágil para aplicaciones móviles centradas en el usuario.
Este curso estudia los conceptos alrededor de la nube, haciendo especial énfasis en analizar las ventajas y riesgos de la adopción de la computación en nube para las organizaciones. El desarrollo de soluciones que aprovechen dichas ventajas, mitigando los riesgos, se realiza de manera incremental para entender mejor el impacto en las estrategias de TI para las organizaciones.
MISW4301: Desarrollo de aplicaciones nativas en la nube
Las aplicaciones nativas en la nube están diseñadas para aprovechar al máximo las características de la nube, y se caracterizan por ser sistemas distribuidos y desacoplados, que se soportan en tecnologías como funciones, contenedoras y servicios autogestionados.
En este curso estudiamos los fundamentos y conceptos que soportan el diseño y desarrollo de este tipo de aplicaciones, evaluamos los retos de su implementación y comparamos sus ventajas y desventajas frente a otro tipo de implementaciones de aplicaciones en la nube.
MISW4302: UX-mejoramiento de la experiencia de usuario
Las soluciones de software modernas, requieren cada día y con mayor intensidad el uso de múltiples canales de acceso e interacción con el usuario, tales como aplicaciones web y móviles. Ahora mas que nunca es importante identificar de forma temprana, las expectativas y necesidades de los usuarios en cuento a la experiencia que desean vivir al utilizar este tipo de soluciones, buscando siembre garantizar la ergonomía y eficiencia en el uso de las soluciones propuestas.
MISW4304: DevOps: Agilizando el Despliegue Continuo de Aplicaciones
DevOps junto a otras tecnologías como la nube y el desarrollo de aplicaciones nativas para la nube, están entre las disrupciones más importantes en los últimos años. DevOps implica grandes cambios en los procesos de desarrollo de software, iniciaremos en el curso analizando la manera como el software es desarrollado con metodologías tradicionales, avanzaremos por la historia de DevOps, los motivadores y beneficios de utilizar DevOps; y luego comenzaremos a profundizar en prácticas modernas de DevOps como Integración Continua, Entrega Continua, Despliegues Continuos, Monitoreo Continuo y SRE.
La gerencia de proyectos implica lograr una base común y un lenguaje estándar para mejorar la gestión de los proyectos utilizando procesos, herramientas y plantillas predeterminadas. El uso de una metodología consistente de gerencia de proyectos evita la duplicación de esfuerzos, minimiza costos adicionales por ineficiencia o no cumplimiento de metas, reduce los riesgos negativos y aumenta la confianza de los stakeholders. Sin embargo, un buen sentido de los negocios al servicio de la compañía es vital para el éxito y no puede ser reemplazado por un gerente de proyectos que trata de utilizar una metodología sin entender realmente la solución real requerida por el negocio.
Este curso es el primero de dos cursos en los que se estructura el proyecto de cierre. Este curso tiene como objetivo, poner en práctica la mayor cantidad de habilidades y conocimientos adquiridos durante la maestría. Se busca que los estudiantes, conformen un equipo de trabajo de alto rendimiento y se enfrenten a la solución de un problema de tamaño medio, en la que se deben incorporarar tecnologías web, desarrollo para móviles, despliegue en la nube, diseño y arquitectura de la solución, diseño y ejecución de pruebas automatizadas, entre otras actividades, contando siempre con un esquema de trabajo ágil y una adecuada gestión del proyecto.
Este curso es el segundo de dos cursos en los que se estructura el proyecto de cierre. Este curso tiene como objetivo construir la solución diseñada y validada en el proyecto de final I. Los equipos de trabajo deberán implementar la solución propuesta, en tres sprints de desarrollo.