Profesorado
Responsable
- Marc Oriol Hilari (marc.oriol@upc.edu)
Otros
- Albert Renom Vilaro (albert.renom@fib.upc.edu)
- Raimon Lapuente Ferran (raimon.lapuente@upc.edu)
- Xavier Franch Gutiérrez (xavier.franch@upc.edu)
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Competencias técnicas comunes
- CT2.1 - Demostrar conocimiento y capacidad de aplicación de los principios, metodologías y ciclos de vida de ingeniería de software.
- CT2.3 - Diseñar, desarrollar, seleccionar y evaluar aplicaciones, sistemas y servicios informáticos, y al mismo tiempo asegurar su fiabilidad, su seguridad y su calidad, conforme a principios éticos y a la legislación y la normativa vigente.
- CT8.1 - Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
- CT8.2 - Asumir los roles y las funciones del jefe del proyecto y aplicar, en el ámbito de las organizaciones las técnicas de gestión y programación del tiempo, de los costes y de los aspectos financieros, de los recursos humanos y del riesgo.
- CT8.6 - Demostrar comprensión de la importancia de la negociación, de los hábitos de trabajo efectivos, del liderazgo y de las habilidades de comunicación en todos los entornos de desarrollo de software.
- CT8.7 - Controlar versiones y configuraciones del proyecto.
Especialidad ingeniería del software
- CES1.3 - Identificar, evaluar y gestionar los riesgos potenciales asociados a la construcción de software que pudiesen presentarse.
- CES1.7 - Controlar la calidad y diseñar pruebas en la producción de software.
- CES2.1 - Definir y gestionar los requisitos de un sistema software.
- CES2.2 - Diseñar soluciones apropiadas en uno o más dominios de aplicación, utilizando métodos de ingeniería del software que integren aspectos éticos, sociales, legales y económicos.
Espíritu emprendedor e innovador
- G1.3 - Ser resolutivo. Utilizar conocimientos y habilidades estratégicas para la creación y gestión de proyectos, aplicar soluciones sistémicas a problemas complejos, y diseñar y gestionar la innovación en la organización. Demostrar flexibilidad y profesionalidad en el desarrollo de su trabajo.
Sostenibilidad y compromiso social
- G2.2 - Aplicar criterios de sostenibilidad y los códigos deontológicos de la profesión en el diseño y la evaluación de soluciones tecnológicas. Identificar la necesidad de aplicar la legislación, regulaciones y normativas, en particular las que afectan al ejercicio de la profesión de ingeniero técnico en informática. Analizar y valorar el impacto medioambiental de las soluciones técnicas en el ámbito TIC.
Objetivos
-
Visión general: Tener una visión general sobre qué es un Proyecto de Software y cuáles son las complejidades asociadas a su gestión
Competencias relacionadas: CT2.1, -
Tipos de proyectos: Conocer los diferentes tipos de proyectos de software, cuáles son sus características, ventajas y desventajas asociadas. Disponer de criterios para identificar qué tipo de proyecto es objeto de gestión.
Competencias relacionadas: G1.3, CT2.1, CES2.1, CES2.2, CT8.1, CT2.3, -
Factores: Conocer qué factores afectan a la estructura de costes en un Proyecto de Software. Conocer cuáles son los factores de riesgo y la viabilidad de un proyecto. Ser capaz de realizar un presupuesto.
Competencias relacionadas: CES2.2, CT8.2, CES1.3, CT2.3, -
Estimación: Ser capaz de hacer una estimación de recursos necesarios para realizar una actividad propia del proceso de desarrollo de software.
Competencias relacionadas: G1.3, CES2.1, CES2.2, CT8.2, CES1.3, CT2.3, -
Planificación: Ser capaz de elaborar la planificación de un Proyecto de Software
Competencias relacionadas: G1.3, CT2.1, CES2.1, CES2.2, CT8.2, -
Priorización: Ser capaz de priorizar los requisitos de un Proyecto de Software para maximizar el valor aportado a las partes interesadas.
Competencias relacionadas: G1.3, CES2.1, CT8.2, CT8.6, CES1.3, -
Métodos: Conocer diferentes métodos de gestión de Proyectos de Software. Conocer sus ventajas y desventajas. Disponer de criterios para seleccionar un método a partir del tipo de proyecto, equipo y otros factores del contexto.
Competencias relacionadas: CT2.1, CES2.2, -
Gestión: Ser capaz de realizar la gestión y el seguimiento de un Proyecto de Software.
Competencias relacionadas: G1.3, CT2.1, CES2.2, CT8.2, CT8.7, -
Jefe de proyecto: Conocer el rol de jefe de proyecto como líder de un equipo humano y las diferentes formas de gestionar equipos.
Competencias relacionadas: G1.3, CT8.2, CT8.6, -
Calidad: Conocer cuáles son los modelos de gestión de la calidad en la gestión de Proyectos de Software, su aplicabilidad y en qué casos son relevantes.
Competencias relacionadas: CT8.7, CES1.7, CT2.3, -
Pruebas: Ser capaz de diseñar y aplicar una estrategia de pruebas en un Proyecto de Software.
Competencias relacionadas: CES2.2, CES1.7, CT2.3, -
Herramientas: Conocer y saber utilizar herramientas software para el apoyo a la gestión de Proyectos de Software
Competencias relacionadas: G1.3, CES2.2, CT8.1, CT8.2, CT8.7, -
Aspectos sociales y ambientales: Considerar los aspectos sociales y ambientales en los Proyectos de Software.
Competencias relacionadas: G2.2, CES1.3, CT2.3,
Contenidos
-
Introducción a los Proyectos de Software
Se introduce la problemática de la gestión de proyectos, los actores implicados, las complejidades asociadas y las tareas que conlleva; el contexto del proyecto, tipos de proyectos, ciclo de vida de los proyectos, actividades de la construcción de software (gestión, requisitos, análisis, construcción, pruebas, calidad, mantenimiento y reingeniería), etc.. -
Gestión clásica de Proyectos de Software
Se explican las actividades, roles y metodologías en la gestión clásica de Proyectos de Software, que se basan en elaborar una planificación predictiva a partir de la cual guiar el proceso de desarrollo de software. -
Gestión ágil de Proyectos de Software
Se explica el enfoque ágil en la gestión de Proyectos de Software, que se basa en el Manifiesto ágil para el desarrollo de software. Este manifiesto propone un enfoque adaptativo centrado en el valor aportado a los interesados ​​en el proyecto y en las personas que intervienen en el mismo. Se utilizan Scrum, XP y Kanban como ejemplos de metodologías ágiles. -
Otros contextos de Proyectos de Software
Existen contextos que son muy específicos y requieren consideraciones y técnicas particulares. Discutiremos los casos siguientes: código abierto (open source); start-ups (lean); concursos públicos (call for tenders); externalización (outsourcing, offshoring).
Actividades
Actividad Acto evaluativo
Estudio de la introducción a los Proyectos de Software
Participará en clase expresando dudas y opiniones y debatiendo los temas propuestos a debate.Objetivos: 1
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Entrega de la práctica de gestión clásica de Proyectos de Software
El equipo de estudiantes entrega la práctica cuando corresponde. El profesorado la evalúa de acuerdo con los criterios establecidos.Objetivos: 4 3 7 5 8 6 13 9 11 10 12
Semana: 8
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Entrega de la práctica de gestión ágil de Proyectos de Software
El equipo de estudiantes entrega la práctica cuando corresponde. El profesorado la evalúa de acuerdo con los criterios establecidos.Objetivos: 4 3 7 5 8 6 13 9 11 10 12
Semana: 15
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Metodología docente
Clases de teoría:* El profesorado hará una exposición de los temas de la asignatura, utilizando material audiovisual (transparencias y videos) para complementar la explicación.
* Se debatirá con el estudiantado sobre temas expuestos en clases anteriores y lecturas propuestas.
Clases de Laboratorio.
Se trabajara con Aprendizaje Basado en Proyectos, en proyectos en el que se harán simulaciones de actividades reales e interpretación de roles.
Método de evaluación
Proyecto 1: P1Proyecto 2: P2
Cuestionarios realizados en las clases de teoría: NQ
Control final: CF
Cálculo de NQ:
- Sea N el número de cuestionarios que los estudiantes podrán realizar durante el curso. N se definirá al inicio del curso y será menor o igual que 8 y mayor o igual que 5.
- Si el estudiante entrega N - 2 o menos cuestionarios, NQ será igual a la suma de las calificaciones de todos los cuestionarios entregados dividida entre N - 2.
- Si el estudiante entrega N o N - 1 cuestionarios, NQ será igual a la suma de las N - 2 mejores calificaciones de los cuestionarios entregados dividida entre N - 2.
Calificación = P1 × 0,3 + P2 × 0,3 + NQ × 0,2 + CF × 0,2
Calificación de la Competencia G1.3: Evaluada mediante las partes correspondientes a la definición, estimación y planificación del proyecto.
Calificación de la Competencia G2.2: Evaluada mediante una parte específica de los proyectos relacionada con la sostenibilidad y el compromiso social (por ejemplo, en los requisitos de los proyectos).
Los proyectos serán realizados por equipos de estudiantes. La calificación de cada estudiante se obtendrá a partir de la evaluación que realice el profesorado sobre la calidad de la entrega del equipo, de la evaluación que realice el profesorado sobre la participación del estudiante en la entrega y de la evaluación que realicen el resto de integrantes del equipo sobre la participación del estudiante en la entrega.
Bibliografía
Básico
-
Software engineering: a practitioner's approach
- Pressman, R.S.; Maxim, B.R,
McGraw Hill Higher Education,
2020.
ISBN: 9781260548006
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004193559706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The rational unified process: an introduction
- Kruchten, P,
Addison-Wesley,
2007.
ISBN: 0321197704
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003372759706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
The Agile samurai: how agile masters deliver great software
- Rasmusson, J,
The Pragmatic Bookshelf,
2010.
ISBN: 9781934356586
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003867899706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Agile estimating and planning
- Cohn, M,
Prentice Hall Professional Technical Reference,
2006.
ISBN: 0131479415
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004009399706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementario
-
User stories applied: for agile software development
- Cohn, M,
Addison-Wesley,
2004.
ISBN: 9780321205681
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004009389706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Diapositives de GPS
- ,
https://raco.fib.upc.edu/avisos/llista.jsp?assig=GRAU-GPS
Web links
- Manifest per al desenvolupament àgil de programari http://agilemanifesto.org
- The Scrum Guide https://www.scrum.org/scrum-guide