Desarrollo de - Inicio - Instituto Tecnológico de Morelia

Anuncio
1.- DATOS DE LA ASIGNATURA
Nombre de la asignatura: Desarrollo de Software Ágil
Carrera: Ingeniería Informática
Ingeniería en Sistemas Computacionales
Ingeniería
en
Tecnologías
de
la
Información y Comunicaciones
Clave de la asignatura: ISD-1302
(Créditos) SATCA1 2-3-5
2.- PRESENTACIÓN
Caracterización de la asignatura.
Ésta asignatura es parte del grupo de asignaturas de la especialidad de
Ingeniería de Software; corresponde al módulo que pueden elegir los alumnos
de las carreras de Ingeniería en Sistemas Computaciones, Ingeniería en
Informática e Ingeniería en Tecnologías de la Información y Comunicaciones.
Ésta materia aporta elementos para que el futuro profesionista desarrolle
habilidades que le permitan gestionar proyectos de desarrollos de software.
Desarrollo Ágil se ubica después de que el estudiante ha delineado los
aspectos generales para desarrollar software en un ámbito personal y en
equipo durante la materia de Entornos de Desarrollo, por lo que el propósito de
ésta asignatura es enriquecer y consolidar el conocimiento para desarrollar
software aplicando alguna de las metodologías ágiles existentes.
Esta asignatura aporta al perfil de los futuros profesionistas la capacidad para:




Identificar las características del proyecto de software que pretenden
desarrollar para poder seleccionar una metodología adecuada.
Gestionar el trabajo en equipo.
Plantear, analizar, diseñar, implementar, implantar y probar un proyecto
de software.
Adecuar una metoodología según las necesidades de un determinado
proyecto.
Intención didáctica.
La asignatura se encuantra organizada en cuatro unidades de aprendizaje.
1
Sistema de asignación y transferencia de créditos académicos
En la primera unidad Introducción al Desarrollo Ágil, se hace un ánilisis de las
características prinicipales de las metodologías ágiles, así como de su historia
y su impacto en el desarrollo de proyectos de software.
En la unidad número dos Programación Extrema, se revisan sus principios
básicos, los cuales deben emplearse durante todas las actividades incluídas
dentro del proceso de desarrollo de un proyecto de software.
La metodología ágil Scrum, abordada en la unidad tres, requiere del
conocimiento de los spritns, los roles, las peculiares actividades y tareas que se
llevan a cabo durante el proceso de desarrollo; por lo que en dicha unidad se
contempla lo necesario para poder utilizar Scrum en un ambiente práctico.
La última unidad, Metodologías Híbridas, hace referencia a la metodología
pionera en esta clasificación: EssUP. Esta metodología utiliza algunas prácticas
de Scrum, tomando base el Proceso Unificado y la Madurez de Procesos.
Los contenidos se abordarán de manera secuencial como los marca el
programa, buscando la aplicación del conocimiento, para ello en las últimas
unidades, como punto final, se propone desarrollar un proyecto de software
para aplicar cada una de las 3 metodologías contempladas en esta asignatura.
La extrensión y profundidad de los temas será la suficiente para garantizar que
el estudiante logre las competencias señaladas oportunamente. Por otro lado,
el estudiante deberá comprometerse a trabajar permanentemente a fin de que
logre dichas competencias antes de concluir la materia.
EL profesor además de ser un motivador permanente en el proceso educativo,
deberá ser promotor y director de la enseñanza a través de la transmisión de
su conocimiento, así como de la aplicación de sus habilidades y destrezas
utilizando las herramientas tradicionales y digitales a su alcance para cautivar a
sus estudiantes e interesarlos en el tema.
La lista de actividades de aprendizaje refiere a un conjunto de actividades por
unidad a fin de asociar la información temática en la aplicación de la misma
para fortalecer el aprendizaje significativo.
3.- COMPETENCIAS A DESARROLLAR
Competencias específicas
Competencias genéricas
Aplica los conceptos básicos de las Competencias instrumentales
metodologías ágiles.
 Capacidad de análisis, síntesis y
abstracción.
 Capacidad de comunicación oral y
escrita.
 Habilidad en el uso de tecnologías
de información y comunicación.
 Capacidad para identificar, plantear
y resolver problemas.
 Capacidad
para
gestionar
y
formular proyectos.
Competencias interpersonales

Capacidad para trabajar en
equipo.

Capacidad crítica y autocrítica.

Compromiso ético.
Competencias sistémicas
 Habilidades de investigación.
 Capacidad
de
aplicar
los
conocimientos en la práctica.
 Liderazgo.
 Capacidad de generar nuevas
ideas (creatividad).
 Iniciativa y espíritu emprendedor.
 Búsqueda de logro.
4.- HISTORIA DEL PROGRAMA
Lugar
y
fecha
de
elaboración o revisión
Instituto Tecnológico de
Morelia, Morelia, Mich. del 9
al 13 de Enero de 2012
Observaciones
(cambios y justificación)
M.C. José Alfredo Jiménez Diseño Curricular de los
Murillo
Módulos de Especialidad de
M.C.
Miriam
Zulma las Carreras del Depto. de
Hernández Sánchez.
Sistemas y Computación
Ing.
Ignacio
Aguilar
Magaña.
Lic. Jorge Sánchez Vega.
M. A. Laura Nelly Alvarado
Zamora.
M.C. Juan Carlos Olivares
Rojas.
M.I. Adrián Núñez Vieyra
Participantes
5.- OBJETIVO(S) GENERAL(ES) DEL CURSO (competencia específica a
desarrollar en el curso)
Conocer y comprender los conceptos básicos de las metodologías ágiles
para aplicarlas en proyectos de desarrollo de software.
6.- COMPETENCIAS PREVIAS



Habilidades cognitivas de abstracción, síntesis y reflexión.
Habilidad y responsabilidad para trabajar en equipo.
Aplica los elementos y conceptos integrados en los procesos de
desarrollo de software basados en prácticas y estándares convenientes y
adecuados para los diferentes entornos de desarrollo de software.
7.- TEMARIO
Unidad
Temas
1
Introducción al
desarrollo ágil
Subtemas
1.1. Historia del desarrollo ágil
1.2. Impacto de las metodologías ágiles
1.3. El manifiesto ágil
1.4. Características de las metodologías
ágiles
1.4.1. Equipos de trabajo
1.4.2. Tiempos de desarrollo
1.4.3. Interacción con el cliente
1.4.4. Documentación generada
1.4.5. Modelos de ciclos de vida para
desarrollo ágil
1.4.5.1. Prototipado
1.4.5.2. Espiral
1.4.5.3. Incremental
2
Programación
Extrema (XP)
2.1. Definición
2.2. Historia
2.3. Principios básicos
1.3.1. Simplicidad
1.3.2. Comunicación
1.3.3. Retroalimentación (feedback)
1.3.4. Valentía
1.3.5. Respeto
2.4. Proceso de desarrollo
1.4.1. Programación en parejas
1.4.2. Pruebas unitarias continuas
1.4.3. Refactorización
1.4.4. Código compartido
3
Scrum (Melé)
3.1. Definición
3.2. Historia
3.3. Roles
1.3.1. Product Owner
1.3.2. Scrum Master
1.3.3. Scrum Team
1.3.4. Usuarios
1.3.5. Stakeholders
1.3.6. Managers
3.4. Sprint
3.5. Proceso de desarrollo
1.5.1. Daily Scrum (reuniones 15 min
diarios)
1.5.2. Pizarra de trabajo
1.5.3. Poker cards
4
Metodologías
híbridas
4.1. EssUP (Essential Unified Process,
Proceso Unificado Esencial)
4.1.1. Definición
4.1.2. Historia
4.1.3. Principios básicos
4.1.3.1. Cherry picking
4.1.3.2. El proceso unificado
4.1.3.3. Casos de uso
4.1.3.4. Prácticas de Scrum
4.1.3.5. Madurez de procesos
8.- SUGERENCIAS DIDÁCTICAS (desarrollo de competencias genéricas)






Propiciar actividades de metacognición.
Propiciar actividades de búsqueda, selección y análisis de información en
distintas fuentes.
Propiciar el uso de las nuevas tecnologías en el desarrollo de la
asignatura.
Fomentar actividades grupales que propicien la comunicación, el
intercambio argumentado de ideas, la reflexión, la integración y la
colaboración de y entre los estudiantes.
Desarrollar actividades de aprendizaje que propicien la aplicación los
conceptos, modelos y metodologías que se van aprendiendo en el
desarrollo de la asignatura.
Promover actividades de educación holista.
9.- SUGERENCIAS DE EVALUACIÓN
La evaluación debe ser continua y permanente por lo que se debe considerar el
desempeño en cada una de las actividades de aprendizaje, haciendo especial
énfasis en:






Participación en clase.
Información obtenida durante las búsquedas encomendadas.
Lectura y análisis de textos.
Autoevaluación, Coevaluación y evaluación de las actividades.
Exámenes teórico-prácticos.
Presentación y exposición de cada actividad de aprendizaje.
10.- UNIDADES DE APRENDIZAJE
Unidad 1: Introducción al desarrollo ágil.
Competencia
específica
a
Actividades de Aprendizaje
desarrollar
Identifica el tipo de metodología  Investigar en diferentes fuentes el concepto
adecuada a un determinado
de metodología ágil.
proyecto de desarrollo de software.  Elaborar un ensayo en el que se
identifiquen las principales características
de las metodologías ágiles.
 Elaborar un cuadro comparativo de las
ventajas y desventajas de las metodologías
ágiles vs. Metodologías tradicionales.
 Elaborar una lista de metodologías ágiles
existentes.
 Formar equipos en el salón de clase y
discutir el material investigado para llegar a
conclusiones válidas para todo el grupo.
 Elaborar un mapa conceptual de la unidad
de introducción al desarrollo ágil.
Unidad 2: Programación extrema (XP)
Competencia específica a
Actividades de Aprendizaje
desarrollar
Aplica la metodología XP en un  Investigar en diferentes fuentes el concepto
ambiente real.
de Programación Extrema.
 Elaborar un ensayo en el que se
identifiquen sus principales características,
así como las actividades que se incluyen
dentro del proceso de desarrollo señalado
por la misma metodología.
 Elaborar una lista de ventajas y
desventajas de dicha metodología.
 Formar equipos en el salón de clase y
discutir el material investigado para llegar a
conclusiones válidas para todo el grupo.
 Elaborar un mapa conceptual de la unidad
de Programación Extrema.
 Identificar un proyecto de software que sea
candidato a ser desarrollado con
Programación Extrema.
 Formar equipos para desarrollar un
proyecto
de
software
utilizando
Programación Extrema.
 Elaborar una presentación digital para
mostrar los resultados del proyecto de
desarrollo
de
software
utilizando
Programación Extrema.
Unidad 3: Scrum (Melé)
Competencia específica a
Actividades de Aprendizaje
desarrollar
Aplica la metodología Scrum en un  Investigar en diferentes fuentes el concepto
ambiente real.
de Scrum.
 Elaborar un ensayo en el que se
identifiquen sus principales características,
así como las actividades que se incluyen
dentro del proceso de desarrollo señalado
por la misma metodología.
 Elaborar una lista de ventajas y
desventajas de dicha metodología.
 Formar equipos en el salón de clase y
discutir el material investigado para llegar a
conclusiones válidas para todo el grupo.
 Elaborar un mapa conceptual de la unidad
de Scrum.
 Identificar un proyecto de software que sea
candidato a ser desarrollado con Scrum.
 Formar equipos para desarrollar un
proyecto de software utilizando Scrum.
 Elaborar una presentación digital para
mostrar los resultados del proyecto de
desarrollo de software utilizando Scrum.
Unidad 4: Metodologías híbridas
Competencia específica a
Actividades de Aprendizaje
desarrollar
Adecua una metodología de  Investigar en diferentes fuentes el concepto
desarrollo de software a las
de Metodología Híbrida.
necesidades específicas de un  Elaborar un ensayo en el que se
determinado proyecto.
identifiquen las principales características
de las metodologías híbridas.
 Investigar el concepto de EssUP.
 Elaborar un ensayo en el que se
identifiquen las principales características
de EssUP.
 Elaborar una lista de ventajas y
desventajas de EssUP.
 Formar equipos en el salón de clase y
discutir el material investigado para llegar a
conclusiones válidas para todo el grupo.
 Elaborar en equipos una propuesta de
metodología híbrida.
11.- FUENTES DE INFORMACIÓN
1. Ambler, Scott. (2002). Agile Modeling: Effective Practices for eXtreme
Programming and the Unified Process. EUA: Wiley
2. Beck, Kent. (2004). Extreme Programing Explained: Embrace Change.
2ª Ed. EUA: Addiso-Wesley Professional.
3. Burke, Eric. (2003). Java Extreme Programming Cookbook. EUA:
O’Reilly Media4. Crispin, Lisa. (2002). Testing Extreme Programming. EUA: AddisonWesley Professional.
5. Chromatic.(2003). Extreme Programming Pocket Guide. EUA: O’Reilly
Media
6. Jacobson, Ivar. Essential Unified Process. Consultado el día 11 de enero
del
2012
del
sitio:
http://www.ivarjacobson.com/process_improvement_technology/essentia
l_unified_process_software/
7. Jeffries, Ron.(2000). Extreme Programming Installed. EUA: AddisonWesley Professional.
8. Kniberg, Henrik. (2007). Scrum and XP from the Trenches (Enterprise
Software Development). EUA: Lulu.com
9. Pichler, Roman. (2010). Agile Product Management with Scrum:
Creating Products That Customers Love. EUA: Addison-Wesley
Educational Publishers Inc.
10. Schwaber, Ken. (2004). Agile Project Management with Scrum. EUA:
Microsoft Press
11. Shore, James. (2007). The art of Agile Development. EUA: O’Reilly
Media.
12.- PRÁCTICAS PROPUESTAS




Elaborar ensayos de cada unidad de la materia.
Estructurar los mapas mentales de manera individual después de haber
discutido entre todo el grupo las investigaciones de cada unidad.
Utilizar la metodología XP en el desarrollo de un proyecto de software y
redactar un reporte de la experiencia adquirida; así como presentar el
software elaborado como producto y la documentación exigida por parte
de la metodología.
Utilizar la metodología Scrum en el desarrollo de un proyecto de
software y crear un reporte de la experiencia adquirida; así como
presentar el software elaborado como producto y la documentación
exigida por parte de la metodología.

Redactar en equipo una propuesta de metodología híbrida, tomando en
cuenta la experiencia adquirida al utilizar las metodologías XP y Scrum
de manera práctica.
Descargar