Profesorado
Responsable
- Carles Farre Tost (carles.farre@upc.edu)
- Silverio Juan Martínez Fernández (silverio.martinez@upc.edu)
Otros
- Albert Pinto Gil (albert.pinto@upc.edu)
- Matías Sebastián Martínez Martínez (matias.martinez@upc.edu)
- Vincenzo De Martino (vincenzo.de.martino@upc.edu)
- Víctor Asenjo Carvajal (victor.asenjo@upc.edu)
Competencias
Trabajo en equipo
- G5.3 - Identificar los papeles, habilitados y carencias de los diferentes miembros del grupo. Proponer mejoras en la estructura del grupo. Interactuar con eficacia y de forma profesional. Negociar y gestionar conflictos en el grupo. Reconocer y dar soporte o asumir el papel de líder en el grupo de trabajo. Evaluar y presentar los resultados del trabajo de grupo. Representar al grupo en negociaciones con terceros. Capacidad de colaborar en un entorno multidisciplinar. Conocer y saber aplicar las técnicas para promover la creatividad.
Comunicación eficaz oral y escrita
- G4.3 - Comunicarse de manera clara y eficiente en presentaciones orales y escritas sobre temas complejos, adaptándose a la situación, al tipo de público y a los objetivos de la comunicación utilizando las estrategias y los medios adecuados. Analizar, valorar y responder adecuadamente a las preguntas del auditorio.
Especialidad ingeniería del software
- CES1.1 - Desarrollar mantener y evaluar sistemas y servicios software complejos y/o críticos.
- 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.
Objetivos
-
Reforzar los conceptos ya adquiridos en asignaturas previas mediante su puesta en práctica en un proyecto
Competencias relacionadas: CES1.1, CES2.1, CES2.2, G5.3, CES1.7, -
Saber poner en práctica los principios de la gestión de proyectos
Competencias relacionadas: CES1.1, CES2.2, G5.3, CES1.3, -
Saber hacer un seguimiento sistemático y disciplinado de un método
Competencias relacionadas: CES1.1, G5.3, -
Saber usar correctamente herramientas de apoyo a la gesión y desarrollo del proyecto
Competencias relacionadas: CES2.2, CES1.7, -
Saber hacer diferentes presentacions del proyecto a públicos diferenciados
Competencias relacionadas: G4.3, G5.3, -
Saber redactar la memoria técnica del proyecto, así como otros documentos resultado del trabajo
Competencias relacionadas: G4.3, G5.3,
Contenidos
-
Presentación del proyecto
Descripción del funcionamiento, enunciado, guía del proyecto, formación de los equipos de proyecto -
Antecedentes
Breve resumen del conocimiento adquirido en asignaturas previas que es relevante para la realización del proyecto -
Entorno de desarrollo
Descripción de la herramienta de desarrollo necesarias para el proyecto -
Fase de incepción del proyecto
Desarrollo de los artefactos propios de la fase de incepción del proyecto -
Fase inicial de desarrollo del proyecto
Desarrollo de los artefactos propios de las dos primeras iteraciones de desarrollo del proyecto -
Fase final de desarrollo del proyecto
Desarrollo de los artefactos propios de las dos últimas iteraciones del proyecto
Actividades
Actividad Acto evaluativo
Puesta en marcha del proyecto
Lee el material, forma equipos de proyecto y asignan roles- Laboratorio: Leer y entender el material, formar grupos, asignar roles, primer contacto con las herramientas
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Antecedentes
Recapitular los conocimientos necesarios para la realización del proyectoObjetivos: 1
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h
Configuración del entorno de desarrollo
Familiarizarse con las herramientasObjetivos: 4
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Fase de incepción del proyecto
Los equipos de proyecto desarrollan el proyecto con el apoyo del profesor tutor para dudas y consultas- Laboratorio: Es el trabajo semanal de ir construyendo la fase inicial del proyecto, incluye la presentación.
- Aprendizaje autónomo: Trabajo autónomo de los equipos de proyecto
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
16h
Aprendizaje dirigido
0h
Aprendizaje autónomo
18h
Fase inicial de desarrollo del proyecto
Los equipos de proyecto desarrollan el proyecto con el apoyo del profesor tutor para dudas y consultas- Laboratorio: Es el trabajo semanal de ir construyendo la fase inicial del proyecto.
- Aprendizaje autónomo: Trabajo autónomo de los equipos de proyecto
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
16h
Aprendizaje dirigido
0h
Aprendizaje autónomo
18h
Fase final del proyecto
Los equipos de proyecto desarrollan el proyecto con el apoyo del profesor tutor para dudas y consultas- Laboratorio: Es el trabajo semanal de ir construyendo la fase final del proyecto, incluye la presentación.
- Aprendizaje autónomo: Trabajo autónomo de los equipos de proyecto
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
16h
Aprendizaje dirigido
0h
Aprendizaje autónomo
18h
Presentación inicial del proyecto
Presentación orientada a cliente, donde hay que explicar la funcionalidad del sistema software que se hará, sobre qué plataforma, y a quien va dirigidaObjetivos: 5
Semana: 4
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Presentación final del proyecto
Presentación orientada a ingenieros, donde hay que explicar su contenido técnicoObjetivos: 5
Semana: 14
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Metodología docente
Es una asignatura de proyecto, y por tanto eminentemente práctica. Las clases serán siempre en aulas de laboratorio, con un número esperado de 3 a 5 equipos de proyecto por aula. Los equipos de proyecto estarán formados por 5 a 7 estudiantes, para permitir la implementación de un prototipo no trivial.Las explicaciones de conceptos requeridos (la mayor parte al principio, pero también en cualquier momento cuando es necesario) se harán en la misma aula. El profesor, en el aula, actuará como tutor de los equipos. Las dos presentaciones previstas se hacen también en horas de laboratorio.
El proyecto partirá de una idea general y tratará de reproducir el caso de un proyecto real, con todos sus elementos (plazos, entregables, gestión del proyecto, etc.). La metodología será ágil, organizada como una fase inicial de incepción y a continuación 3 ó 4 iteraciones de desarrollo. Los aspectos técnicos que se pondrán en práctica corresponden a las asignaturas precedentes (IES, BD, ER, AS, GPS)
Método de evaluación
En una asignatura de proyectos, lo que se califica es la realización del proyecto en sí. Éste se desarrolla en equipo, pero tambien los miembros del equipo tienen asignadas tareas diferentes que es necesario evaluar individualmente. Como resultado, la nota final de cada estudiante se determina a partir de la fórmula siguiente:Nfinal = Nequip * FactIndiv
La nota global Nequip del proyecto tiene en cuenta la ambición del proyecto, los artefactos informáticos producidos, la gestión del equipo, la documentación y las presentaciones:
Nequip = (0.6*Artefactos + 0.2*GestiónProyecto + 0.2*(Docum+Presentaciones))*Ambición, donde:
- La nota de los artefactos es una suma ponderada de todos los artefactos. Como artefacto más importante, el prototipo ejecutable representa el 50% de esta nota.
- En la gestión del proyecto se incluyen tanto aspectos humanos (p.e., repartición equilibrada del trabajo, cumplimiento de plazos, ...) com el uso eficiente de las herramientas de desarrollo (p.e., repositorio de código git, ...).
- En la documentación i presentación se incluyen sobre todo aspectos comunicativos y de pulcritud (profesionalidad en el trabajo hecho).
- La ambición mide la complejidad final del software producido, y es un factor multiplicativo entre 0.8 y 1.2 determinado por el profesor. En todo caso, este factor multiplicativo no puede hacer crecer la nota Nequip por encima de 10.
El factor individual FactIndiv también es un factor multiplicativo entre 0.8 y 1.2 (e igualmente, no puede hacer crecer la nota final Nfinal por encima de 10). Este factor se obtiene a partir de la evaluación que hace el profesor sobre la participación del estudiante en la entrega y de la evaluación que hacen el resto de compañeros del grupo sobre la participación del estudiante en la entrega. En casos realmente excepcionales, FactIndiv puede ser menor que 0.8 para aquellos estudiantes amb muy baja dedicación al proyecto a lo largo de todo el curso
La evaluación de las competencias transversales se obtiene de:
Comunicación Oral y Escrita = (Docum+Presentaciones)*FactorIndiv
Trabajo en equipo = GestiónProjecte*FactorIndiv
y tiene unos valores A, B, C, D, según:
A si la nota es mayor que 8.4
B si la nota está entre 7 y 8.4
C si la nota está entre 5 y 6.9
D si la nota es inferior a 5
Bibliografía
Básico
-
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 -
User stories applied: for agile software developmentnt
- Cohn, M,
Addison-Wesley,
2004.
ISBN: 9780321205681
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004009389706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Material de l'assignatura
- Professorat PES,
https://www.essi.upc.edu/~franch/PES_material.zip
Complementario
-
Applying UML and patterns: an introduction to object-oriented analysis and design and iterative development
- Larman, C,
Prentice Hall PTR,
2005.
ISBN: 0131489062
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002842069706711&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 -
Clean Android architecture : take a layered approach to writing clean, testable, and decoupled Android applications
- Dumbravan, Alexandru,
Packt Publishing, Limited,
2022.
ISBN: 9781803240558
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=6997317 -
Flutter cookbook : 100+ step-by-step recipes for building cross-platform, professional-grade apps with Flutter 3.10.x and Dart 3.x
- Alessandria, Simone,
Packt Publishing Ltd,
©2023.
ISBN: 9781803232638
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=30587007 -
React and react native : build cross-platform JavaScript and TypeScript apps for the web, desktop, and mobile
- Sakhniuk, Mikhail; Boduch, Adam,
Packt Publishing Ltd,
©2024.
ISBN: 9781805126874
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=31304328
Web links
- Recordatori simple sobre UML http://www.ibm.com/developerworks/rational/library/769.html#fig4
- Site de UML http://www.uml.org/
- Site de gitlab https://about.gitlab.com/
- Site de bitbucket https://bitbucket.org/
- Site de Android Studio https://developer.android.com/studio/index.html
- Site de GitHub https://github.com/
- Site de Gradle https://gradle.org/
- Informació sobre Taiga https://tree.taiga.io/
- Site de Trello https://trello.com/
- The SCRUM Guide https://www.scrum.org/scrum-guide