El desarrollo de gran escala se refiere al desarrollo de software de gran tamaño que involucra no sólo procesos de desarrollo sino también de gestión, evolución y mantenimiento. En este contexto, durante este curso se presentarán conceptos relacionados con las metodologías de desarrollo de software (SCRUM y RUP), la arquitectura de software y las buenas prácticas para la gestión de proyectos de software (estimación de tamaño y tiempo, asignación de recursos, control de versiones y cambios, administración de riesgos, pruebas de carga y de regresión). Así mismo, se presentaran diferentes frameworks para el desarrollo de software empresarial y algunas herramientas que soportan los conceptos vistos durante el curso.
Al finalizar el curso los participantes podrán:
El curso es escencialmente práctico donde mediante un proyecto definido al inicio del semestre se van presentando los temas teoricos que fundamentan el uso de las herramientas y la aplicación de las técnicas necesarias para el desarrollo del proyecto. Las herramientas son materia de investigación por parte de los estudiante con retroalimentación al grupo con presentaciones cortas y demostraciones. El proyecto se sigue simulando el desarrollo de un proyecto, con asignación de roles de un equipo de desarrollo de software entre los estudiantes y la observación de un método de desarrollo.
Temas | Sesión |
---|---|
Presentación del curso e introducción | 1 |
El concepto del tamaño del software, casos de ejemplo de software por tamaño | 1 |
Licenciamiento de software | 1 |
Métodologías de desarrollo de software (RUP, SCRUM, XP) | 2, 3, 4 |
Arquitectura de software: introducción, el rol del arquitecto | 5 |
Arquitectura de software: atributos de calidad | 6 |
Arquitectura de software: escenarios y tácticas de arquitectura | 7 |
Arquitectura de software: patrones arquitectónicos | 8,9 |
Arquitectura de software: documentación de la arquitectura | 10,11 |
Gestión de proyectos de software. Planificación de proyectos, gestión de recursos, entregables, roles, estructura organizacional | 12 |
Métricas del producto y del proceso, seguimiento de proyectos | 13 |
Técnicas de estimación | 14 |
Calendarización de proyectos, diagramas Pert/CPM, diagrama de Gant, técnica del valor ganado | 15,16 |
Gestión del riesgo de proyectos | 17 |
Herramientas para la gestión de proyectos de sofwware | 18 |
Calidad del software: qué es la calidad de software, por qué es importante, costos de la calidad | 19 |
Calidad del software: enfoques para realizar pruebas (basadas en requerimientos, particiones, estructurales) ,diseño del plan de pruebas, ejecución de las pruebas, reporte de incidencias | 20 |
Calidad del software: herramientas de apoyo para la gestión de las pruebas ( Mantis, Jira, TestLink) | 21 |
Calidad del software: pruebas unitarias, pruebas de integración, pruebas de regresión, de aceptación | 22 |
Calidad del software: pruebas unitarias automatizadas. Frameworks para pruebas de unidad, mocks y stubs, dummies. Herramientas para pruebas funcionales ( Selenium) | 23 |
Calidad del software: pruebas de carga. Herramientas para pruebas de carga | 24 |
Calidad del software: análisis estático de código. Revisiones personales, inspecciones de código, analizadores estáticos de código ( Sonar, Bugzilla) | 25 |
Versionamiento y gestión de la configuración. Herramientas para gestión de la configuración (SVN, GIT) | 26.27 |
Integración contínua, construcción automática de código | 28 |
Técnicas de integración de aplicaciones | 30,31 |
Porcentaje | |
---|---|
Informes de lectura (deuda técnica, Big data, Software Product Lines) | 20% |
Parcial | 20% |
Proyecto ( cuatro entregas) | 50% |
Quices y talleres en clase | 10% |