Generalidades

Nombre:

Ingeniería de Software para aplicaciones Web

Créditos

2

Semanas

8 semanas (8-12 horas por semana)

Tipo:

High Touch. Encuentros síncronos semanales

Profesor responsable

José Bocanegra y Rubby Casallas

Pre-Requisitos:

MISW-411 Prácticas de ingeniería de software esenciales para el agilismo

MISW-412 Principios de diseño y arquitectura de software

Objetivos de Aprendizaje

Al finalizar el curso el estudiante estará en capacidad de:

  1. Crear el diseño visual de una aplicación web responsive, de una sola página (SPA por sus siglas en inglés Single Page Application), accesible, internacionalizable y fácil de usar.
  2. Diseñar la arquitectura de la aplicación web e implementarla utilizando un framework de desarrollo.
  3. Seguir un proceso iterativo ágil, que incluye el desarrollo de pruebas automatizadas (unitarias y end-to-end), prácticas de integración continua y de construcción de equipo.
  4. Participar efectivamente en un proyecto de software de manera trabajo responsable y con calidad, contribuyendo en la construcción de equipo a través de la planeación y seguimiento semanal, la reflexión sobre la cultura y las prácticas, las propuestas de mejoras, la argumentación y la negociación.

Descripción

Conocimiento centrales implicados

Estrategia de aprendizaje

A lo largo de este curso, se desarrolla una aplicación web de tamaño mediano, utilizando un framework para desarrollo, teniendo en cuenta aspectos de usabilidad, accesibilidad, internacionalización y calidad.

Este proyecto se realiza en equipos y está definido por un conjunto de requisitos funcionales, se lleva a cabo en dos iteraciones y se aplican las prácticas vistas en el curso "MISW-411 Prácticas de ingeniería de software esenciales para el agilismo" (v.gr. Uso de git, integración continua, pruebas automáticas, historias de usuario, etc.). Semanalmente el equipo debe hacer un plan de trabajo basado en los hitos de la semana y una distribución balanceada de las actividades entre los integrantes.

La estrategia global del curso cubre dos aspectos:

Estrategia global de evaluación

Se realizará evaluación formativa y sumativa, tanto individual como grupal, así:

Estructura del curso

El curso está distribuido en 8 semanas. Cada semana tiene sus objetivos y un conjunto de lecciones; cada una con distintas actividades para el estudiante como: videos, tutoriales, ejercicios, lecturas, entre otras.

Además, en cada semana hay una lección especial llamada Proyecto donde se describe el trabajo que se debe realizar con respecto al proyecto y sus entregables.

Objetivos

Descripción

Se presentan los conceptos introductorios de la ingeniería de software web, incluyendo aspectos generales de su historia. Además, se proponen ejercicios de introducción al desarrollo web con HTML, CSS y Bootstrap. En equipo de tres estudiantes, se inicia el proyecto de construcción e implementación de una aplicación web con su lanzamiento y las actividades relacionadas principalmente con las historias de usuario. Para esto, contarán con lecturas, videos y otros insumos de preparación.

Esta semana está compuesta por las siguientes lecciones.

  1. Introducción al curso: presentación de los profesores, la logística del curso, los objetivos.
  2. Introducción a la ingeniería de software para la web: Historia, arquitectura, frameworks.
  3. Introducción al desarrollo web.
  4. Preparación para el proyecto.
  5. Proyecto: Inicia el proyecto. Preparación del ambiente de trabajo, explicación de los objetivos, entrega de enunciado, identificación de HU, conocimiento del equipo, lanzamiento.

Ver las guías del proyecto.

Sesión sincrónica

Conocer quiénes están en el curso, repasar objetivos y el rol del proyecto. Ejercicio de discusión sobre las características de las aplicaciones web y el alcance del curso.

Objetivos

Descripción

A modo de seguimiento, al inicio los docentes realizarán un recuento de lo sucedido en la semana anterior, además de presentar el alcance de esta semana. Se abordarán los conceptos principales sobre patrones de diseño y usabilidad, como insumo para el desarrollo del prototipo de la aplicación que realizan los equipos. El desarrollo del prototipo es la actividad principal del proyecto para esta semana. Además, se ofrecerán tutoriales de Typescript para que los estudiantes, de manera individual, los desarrollen y se entrenen en su uso.

Esta semana está compuesta de 5 lecciones.

Ver las guías del proyecto.

Sesión sincrónica

En esta sesión, se abordarán aspectos del trabajo en equipo como: valores, actitudes, responsabilidades

Para esto, se desarrollará una guía de trabajo en equipo que consiste en ver algunos videos de situaciones y discutirlos. Al finalizar, debe ser claro qué le preocupa a cada estudiante con respecto al trabajo en equipo en este curso y cómo se pueden mitigar los inconvenientes.

Objetivos

Descripción

Como en la semana anterior, los docentes realizan un recuento de lo sucedido en la semana, además de introducir el trabajo de esta semana. Como continuación de Typescript, se ofrecerán tutoriales sobre nuevos elementos del lenguaje para que los estudiantes, de manera individual, los desarrollen y se entrenen en su uso. En esta semana, se inicia el aprendizaje sobre Angular, con una introducción a su arquitectura, sus principios y el uso que se le dará en el curso. Las tareas principales del proyecto para esta semana son la planeación las tareas para implementar las estructuras json del api rest; y la definición de la arquitectura global de la aplicación se empieza a trabajar sobre las historias de usuario de las listas.

Esta semana está compuesta de las siguientes lecciones.

Ver las guías del proyecto.

Sesión sincrónica

En esta sesión, los estudiantes realizarán el ejercicio de "Hall of shame" por pares.

Para esto, se requiere que cuenten con una rúbrica de evaluación de usabilidad y una guía del ejercicio.

Imágenes UI que violan uno más principios de Nielsen. Por cada uno, el estudiante debe identificar cuál es y debe proponer una forma de arreglarlo.

Objetivos

Descripción

Como en la semana anterior, los docentes realizan un recuento de lo sucedido en la semana, además de introducir el trabajo de esta semana. Las principales actividades del proyecto se orientan a la implementación de los detalles y al desarrollo de pruebas unitarias. Además, del seguimiento con las prácticas de integración continua que se iniciaron desde la primera semana. Continuando con el aprendizaje sobre Angular, y como insumo para el desarrollo del proyecto, esta semana se abordan los conceptos de navegación, routing, composición y listar detalles.

Esta semana está compuesta de las siguientes lecciones.

Ver las guías del proyecto.

Sesión sincrónica

En esta sesión se realiza una actividad de arquitectura web, MVC

Para esto se requiere guía de actividad: Comparar arquitecturas de frameworks, relacionar con el curso de principios de arquitectura y diseño. Los estudiantes en parejas identifican para Angular los patrones de diseño. El profesor presenta las características de otros frameworks (React) y se discute sobre ventajas e inconvenientes.

Objetivos

Descripción

A modo de seguimiento, al inicio los docentes realizarán un recuento de lo sucedido en la semana anterior, además de presentar el alcance de esta semana. Como actividad principal del proyecto, se incorporarán los conceptos de accesibilidad en la aplicación en desarrollo y se dará fina a la primera iteración, con una retrospectiva como parte de las prácticas de trabajo de equipo. Para esto, contarán con información sobre este accesibilidad,, incluyendo la guía WCAG2.0 para la construcción de sitios web accesibles y sobre la elaboración y relevancias de las retrospectivas.

Esta semana está compuesta de 4 lecciones.

Ver las guías del proyecto.

Sesión sincrónica

En esta sesión se realizarán tres actividades.

1. Evaluación de pares. Para esto, se usará una encuesta de evaluación.

2. Preparar la retrospectiva DAKI.

Para esto se requiere una guía de actividad de retrospectiva por equipos.

3. Presentación de la retrospectiva en video y publicación en padlet.

Objetivos

Descripción

Como ha venido sucediendo, los docentes realizan un recuento de la semana anterior, además de introducir el trabajo de esta semana. Se presentarán los conceptos de internacionalización y localización, aunado a algunas pautas para incorporarlos en un sitio web. Esto, servirá como insumo para el desarrollo de una de las actividades del proyecto, que consiste en la aplicación de estas pautas en la aplicación en desarrollo. En el proyecto, también se incluirán formularios para ingreso y actualización de información.

Esta semana está compuesta de 3 lecciones.

Ver las guías del proyecto.

Sesión sincrónica

Cada equipo se reúne para discutir las conclusiones de la retrospectiva de la iteración 1 y para incorporarlas en el lanzamiento de la iteración 2.

Se conforman grupos con integrantes de equipos distintos. cada representante de equipo, socializa la estrategia para la iteración 2 de su equipo, los demás integrantes deberán tomar nota de la discusión.

Los integrantes del equipo se vuelven a reunir, para compartir los aprendizajes de lo conversado con otros grupos, discuten y documentan cómo esto puede ser incorporado en el lanzamiento de su propio proyecto.

Objetivos

Descripción

A modo de seguimiento, al inicio los docentes realizarán un recuento de lo sucedido en la semana anterior, además de presentar el alcance de esta semana. Se estudian algunos conceptos sobre pruebas e2e y se ofrecen tutoriales para el uso de la herramienta protractor. Con esto, podrán desarrollar las pruebas e2e a la implementación de las historias de usuario de la aplicación del proyecto.

Esta semana está compuesta de 5 lecciones.

Ver las guías del proyecto.

Sesión sincrónica

En esta sesión cada equipo mostrará y analizará de forma crítica sus resultados de integración continua al curso. Se abrirá un espacio de debate en el cual los expositores responderán preguntas previamente fromuladas y organizadas por los tutores y los profesores.

Objetivos

Descripción

A modo de seguimiento, al inicio los docentes realizarán un recuento de lo sucedido en la semana anterior. En esta semana se cierra el proyecto con una retrospectiva y con un análisis de indicadores que permiten argumentar objetivamente sobre la calidad del producto y del trabajo en equipo.

Esta semana está compuesta de las siguientes lecciones.

Ver las guías del proyecto.

Sesión sincrónica

En esta sesión se realizará:

1. Evaluación entre pares

Para esto se requiere la guía de evaluación.

2. Presentación de los videos de los proyectos finales y votación para decidir sobre la mejor aplicación. Cierre del curso

3. Retroalimentación final de la iteración 2 completa.

4. Evaluación del curso.