Pasar al contenido principal

Gestión de Proyectos de Software

Créditos
6
Tipos
Obligatoria de especialidad (Ingeniería del Software)
Requisitos
Departamento
ESSI
El objetivo de la asignatura es capacitar a los estudiantes para gestionar proyectos de software tanto en el contexto de procesos de gestión clásica como en el de procesos de gestión ágil.

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 - Utilizar de forma apropiada teorías, procedimientos y herramientas en el desarrollo profesional de la ingeniería informática en todos sus ámbitos (especificación, diseño, implementación, despliegue -implantación- y evaluación de productos) de manera que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
    • 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 - Planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos, liderando su puesta en marcha, su mejora continua y valorando su impacto económico y social
    • 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 - Desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario, que se comporten de forma fiable y eficiente, que tengan un desarrollo y mantenimiento asequible y que cumplan normas de calidad, aplicando las teorías, los principios, los métodos y las prácticas de 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 - Valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables, dentro de las limitaciones derivadas del costo, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones.
    • 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 [Avaluable] - Conocer y comprender la organización de una empresa y las ciencias que rigen su actividad; capacidad de comprender las reglas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio. Desarrollar la creatividad, el espíritu emprendedor y la tendencia a la innovación.
    • 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 [Avaluable] - Conocer y comprender la complejidad de los fenómenos económicos y sociales típicos de la sociedad del bienestar. Ser capaz de analizar y valorar el impacto social y medioambiental
    • 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

    1. 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,
    2. 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,
    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,
    4. 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,
    5. 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,
    6. 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,
    7. 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,
    8. 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,
    9. 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,
    10. 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,
    11. 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,
    12. 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,
    13. Aspectos sociales y ambientales: Considerar los aspectos sociales y ambientales en los Proyectos de Software.
      Competencias relacionadas: G2.2, CES1.3, CT2.3,

    Contenidos

    1. 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..
    2. 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.
    3. 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.
    4. 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

    Estudio de la gestión clásica de Proyectos de Software

    Participará en clase expresando dudas y opiniones y debatiendo los temas propuestos a debate.
    Objetivos: 4 3 7 5 8 6 13 9 11 10 12
    Contenidos:
    Teoría
    10h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    5h

    Estudio de la gestión ágil de Proyectos de Software

    Participará en clase expresando dudas y opiniones y debatiendo los temas propuestos a debate.
    Objetivos: 4 3 7 5 8 6 13 9 11 10 12
    Contenidos:
    Teoría
    12h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    6h

    Estudio de otros contextos de Proyectos Software

    Participarà en clase expresando dudas y opiniones i debatiendo los temas propuestos a debate.
    Objetivos: 4 3 7 5 8 6 13 9 11 10 12
    Contenidos:
    Teoría
    3h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Práctica de gestión clásica de Proyectos de Software

    Formará equipo (de 4-5 personas). Realizará la práctica junto con las personas de su equipo y la entregará.
    Objetivos: 4 3 7 5 8 6 13 9 11 10 12
    Contenidos:
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    14h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    34h

    Práctica de gestión ágil de Proyectos de Software

    Realizará la práctica junto con las personas de su equipo y la entregará.
    Objetivos: 4 3 7 5 8 6 13 9 11 10 12
    Contenidos:
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    16h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    35h

    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

    Examen de curso

    Examen en la última hora de clase para validar los conocimientos impartidos durante el curso
    Objetivos: 1 2 4 3 7 5 8 6 13 9 11 10 12
    Semana: 14
    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: P1
    Proyecto 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

    Complementario

    Web links

    Capacidades previas

    Conocimientos previos de programación y fundamentos de ingeniería del software.