你将学到什么
Aplicar las prácticas esenciales de desarrollo de software como son el uso efectivo de flujos de trabajo sobre un manejador de versiones, el desarrollo orientado a pruebas, y el uso de integración continua.
Diseñar e implementar, en equipo (pequeño), una aplicación web donde se utilizan las prácticas esenciales, pruebas automatizadas, patrones arquitectónicos y de diseño específicos para aplicaciones web.
Justificar las decisiones de diseño y algunas formas de implementación.
Utilizar de forma efectiva un framework para el desarrollo de aplicaciones web.
Diseñar estrategias de pruebas que usen pruebas manuales, de reconocimiento y de "extremo a extremo" (E2E), en el contexto dado por una aplicación bajo pruebas.
Construir y ejecutar pruebas de reconocimiento y de extremo a extremo usando frameworks de automatización existentes.
课程概况
Ponte en forma, prepárate para integrar equipos de desarrollo de software de alto desempeño.
El mercado global de software está a la vanguardia del cambio y ha sido testigo de un notable crecimiento que continuará sin pausa. El software es un actor fundamental en organizaciones de todos los tamaños y en todas las industrias, sin embargo, existe un desafío importante: no hay suficientes profesionales calificados para cumplir con esos roles.
Las organizaciones – empresas, entidades del estado, universidades – no pueden darse el lujo de quedarse atrás. Lo que necesitan va mucho más allá de la programación. Necesitan agilidad, procesos y metodologías adecuadas, precisión, creatividad y un enfoque implacable para resolver las necesidades del usuario final.
En esta trayectoria te ofrecemos los fundamentos de las prácticas esenciales de ingeniería de software en un ambiente que combina la teoría y la práctica. Adquiere los conocimientos de diseño y arquitectura de software y desarrolla las habilidades de las prácticas ágiles tales como el versionamiento y los flujos de trabajo, las pruebas automatizadas y la integración continua. Aplica esto diseñando y desarrollando una aplicación web.
包含课程
Prácticas de ingeniería de software esenciales para el agilismo
Utiliza prácticas esenciales de ingeniería de software para ser un miembro efectivo y eficiente en un equipo de desarrollo ágil (la documentación de requisitos en historias de usuario, flujos de trabajo sobre un manejador de versiones, el desarrollo orientado a pruebas y la práctica de la integración continua).
Tecnologías principales:
• El lenguaje de programación es Python
• Para el versionamiento: Git y Github
• Para la integración continua: Jenkins
Principios de diseño y arquitectura de software
En un mundo globalizado, donde los usuarios de las aplicaciones que construimos se encuentran en cualquier parte del mundo y en números que antes no podíamos ni siquiera pensar, se hace imprescindible diseñar software que responda de forma rápida y confiable a miles de usuarios al mismo tiempo. 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. En este curso 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 sus propuestas. El curso presenta diferentes retos de arquitectura y diseño con el fin de ir poniendo en práctica los temas vistos. Se seleccionarán elementos particulares del diseño para construir el código asociado y mediante experimentos validar las estrategias propuestas. Se utilizará el lenguaje de programación Python y el ambiente de desarrollo Flask.
En este curso aprenderás a:
• Documentar de forma clara y sin ambigüedades requisitos de calidad, críticos para el éxito de un sistema
• Diseñar y documentar una arquitectura de software que satisfaga requisitos de calidad, especialmente relacionados con el desempeño y la facilidad de evolución del software
• Utilizar estilos y tácticas de arquitectura para satisfacer requisitos de calidad
• Aplicar patrones de diseño detallado como mecanismo de refinamiento de tácticas de arquitectura
Pruebas automatizadas
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”.
En este curso aprenderás a:
• Diseñar estrategias de pruebas que usen pruebas manuales, de reconocimiento y de "extremo a extremo" (E2E), en el contexto dado por una aplicación bajo pruebas
• Construye y ejecuta pruebas de reconocimiento y E2E usando frameworks de automatización existentes
• Experimenta con diferentes herramientas para automatización de pruebas en aplicaciones web
Ingeniería de Software para aplicaciones Web
Implementar, a partir de una lista de requisitos, una aplicación web. Para esto el estudiante estará en capacidad de:
• Crear el diseño visual de un aplicación web responsive, SPA, TWA, accesible, internacionalizable, fácil de usar y validada por el usuario final
• Diseñar la arquitectura de la aplicación web e implementarla utilizando un framework de desarrollo
• Seguir un proceso iterativo ágil, que incluye el desarrollo de pruebas automatizadas (unitarias y end-to-end) y prácticas de integración continua.
Tecnologías principales:
• Desarrollo web: HTML, CSS, Bootstrap, Typescript, Angular, Node.js, Nest.js
• Pruebas: Protractor, Karma, Cucumber
• Integración contínua: Jenkins, Git, Github, npm
• IDE: Visual Studio Code
面向人群
需要自动化和敏捷软件工程的行业的专业人员。
课程项目
Proyecto final integrador (Parte del curso 4)
En cada curso se realizan prácticas y proyectos específicos. En particular, para el curso de Ingeniería de software para el desarrollo web, además de incluir elementos propios de la web se integran los conocimientos y habilidades desarrolladas en los demás cursos del MasterTrack.
Este proyecto consiste en la construcción de una aplicación web a partir de un enunciado de requisitos funcionales. Para construir la aplicación será necesario crear historias de usuario, hacer el diseño, utilizar TDD, construir y ejecutar pruebas automatizadas unitarias, seguir un proceso de integración continua apoyado en Git y jenkins, crear pruebas end-to end y hacer una validación de usuario final. Al terminar el curso, se tendrá, en equipos de 3 personas, una aplicación web funcionando y una experiencia práctica que integra todo lo visto a lo largo del MasterTrack.
Integrar en un proyecto de desarrollo web los conocimientos y habilidades de los 4 cursos vistos durante el MasterTrack
Construir una aplicación web a partir de un enunciado de requisitos funcionales
Comprender el ciclo de producción de una aplicación web, desde la creación de historias de usuario, el diseño, la implementación del código utilizando Angular como framework y la implementación de las pruebas unitarias y de end-2-end, la ejecución de pruebas automatizadas, la integración continua y la validación con el usuario final
预备知识
初级水平,但是,编程技能是必需的。