La materia tiene por objetivo que  l@s estudiantes entiendan que para llevar a cabo un proyecto de desarrollo de software hace falta llevar a cabo varias actividades además de programar, y tengan una noción de cuáles son estas actividades y las técnicas asociadas a cada una. Además que conozcan el concepto de metodología como definición de las actividades que involucra el desarrollo de software, su articulación y los roles que ocupan las personas que participan,  entre otras cosas

Modos de Cursada: Cuatrimestral Presencial

Horas Semanales: 6 horas

Demanda de tiempo en casa semanal: 6 horas

Sitio web:

  • Aún no disponible

Programa de la materia:

Contenidos Mínimos:

  • Metodologías ágiles: actividades, productos, formas de articulación, roles. Ejemplos: Scrum.
  • Metodologías estructuradas: actividades, productos, formas de articulación, roles. Ejemplos: UP.
  • Debate sobre similitudes y diferencias entre metodologías ágiles y estructuradas.
  • Concepto de ciclo de vida, relación con distintas metodologías.
  • Métricas: que son, que miden, para que sirven, cuando sirven. Ejemplos de métricas asociadas a desarrollo de software en general y actividades de programación en particular.
  • Estimación de esfuerzos: relevancia de la experiencia previa para estimar, heurísticas utilizadas.
  • Pertinencia de estimaciones relativas. Técnicas de estimación asociadas a metodologías agiles.
  • Conceptos de requerimiento funcional y no funcional, pertinencia de definiciones comprensibles y adecuadas.
  • Comprensión de requerimientos funcionales, detección de inconsistencias. Implementación en código de requerimientos funcionales, verificación de que el código construido cumple los requerimientos.
  • Problemas asociados a requerimientos no funcionales: pertinencia de definiciones medibles, nociones sobre técnicas de verificación, posibilidad de garantizarlos por construcción.
  • Nociones sobre distintos tipos de testing: de unidad, funcional, de sistema, de stress, de carga.
  • Cualidades deseadas y técnicas para lograrlas: regresión, automatización, independencia. Ejemplos concretos de test de unidad y de test funcional. Noción de coverage.
  • Prácticas asociadas a extreme programming: peer programming, relevancia de tests automáticos, integración continua, interacción de las actividades de coding y refactor.
  • Noción de TDD.
  • Nociones de riesgo y plan de contingencia.
  • Ingeniería de Software de Sistema de Tiempo Real