El objetivo global del proyecto del curso es facilitar la aplicación de las 4 prácticas de ingeniería de software vistas a lo largo del curso:
El proyecto es pequeño, su alcance ya está ha definido y documentado a través de un enunciado. Para desarrollar el proyecto se conformarán equipos de dos estudiantes. El proceso de desarrollo es incremental, en cada semana se avanza en el desarrollo y se incorporarán las prácticas que se van estudiando en el curso.
Las semanas 2 y 3, se dedican al entendimiento del problema y al alistamiento del sitio para la documentación del proyecto y del repositorio para el código.
Semana 2
- Se construye un modelo conceptual usando un diagrama de clases en UML para ayudar en el entendimiento del problema y se construye un glosario de términos.
- Se identifican los requerimientos y se contruye un listado de historias de usuario.
Semana 3
- Se configura el espacio de documentación del proyecto en GitHub, el tablero de actividades para el seguimiento del proyecto y el repositorio en sistema de control de versiones GIT donde se gestionará el código del proyecto.
- Se realiza el detalle de las historias de usuario.
En las semanas 4, 5, 6 y 7 se desarrollan las historias en dos iteraciones. En cada semana se van integrando nuevas prácticas.
Iteración 1
Semana 4
- Se realiza el diseño detallado de la aplicación (lógica e interfaz), se definen las firmas de los métodos.
- Se define el flujo de trabajo inicial.
Semana 5:
- Desarrollo de historias de usuario utilizando desarrollo dirigido por pruebas (Test Driven Development).
Iteración 2
Semana 6:
- Desarrollo de historias de usuario utilizando TDD y pruebas unitarias.
- Generación automática de datos prueba.
- Definición de un flujo de trabajo GitFlow
Semana 7:
- Desarrollo de historias de usuario utilizando TDD y pruebas unitarias.
- Generación automática de datos prueba.
- Se define un flujo de trabajo en una herramienta de integración contínua que permite integrar el proyecto de forma tal que funcione en todo momento. Esta verificación se hace de manera automatizada y ejecuta las pruebas definidas, reportando el resultado.
Semana 8 - Se realiza el cierre del proyecto - Se realiza una demostración de la solución - Se hace una retrospectiva del trabajo realizado.
El proyecto se comienza a desarrollar a partir de la semana 2 del curso. Las parejas se conforman durante la semana 2 y el trabajo en grupo inicia en la semana 3.
| Proyecto | Enunciado | Tutor |
|---|---|---|
| 1.CineVault | Enunciado CineVault | Sebastian Correa |
| 2.Concesionario | Enunciado Concesionario | Tatiana Macias |
| 3.ShopFlow | Enunciado ShopFlow | Carlos Riveros |
La aplicación que se va a desarrollar es una aplicación web muy sencilla.
Las tecnologías que se utilizarán para desarrollar el proyecto son: Python como lenguaje de programación, GIT para el control de versiones, para frontend angular, el framework Flask para el backen y SQLite para la base de datos. Para el desarrollo del proyecto se cuenta con la siguiente infraestructura:
| Elemento | Herramienta |
|---|---|
| Base de datos | SQLite |
| Framework backend | Flask |
| Lenguaje de programación | Python |
| Manejador de versiones | Git |
| Repositorio remoto | Github |
| Manejador de IC | Github |
| Kanban de planeación | Github |