Proyecto de desarrollo del software Código:  75.588    :  12
Consulta de los datos generales   Descripción   La asignatura en el conjunto del plan de estudios   Campos profesionales en el que se proyecta   Conocimientos previos   Información previa a la matrícula   Objetivos y competencias   Contenidos   Consulta de los recursos de aprendizaje de la UOC para la asignatura   Información adicional sobre los recursos de aprendizaje y herramientas de apoyo   Informaciones sobre la evaluación en la UOC   Consulta del modelo de evaluación  
Este es el plan docente de la asignatura para el segundo semestre del curso 2022-2023. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios.

La asignatura Proyecto de Desarrollo del Software tiene como objetivo primordial el desarrollo de un proyecto concreto de software y está basada en la aplicación práctica de los conocimientos y competencias obtenidas hasta el momento en el Grado, como por ejemplo Gestión de Proyectos, Cimientos de Programación, Ingeniería de Software, Uso de Base de datos, y concretamente las habilidades técnicas que se obtuvieron dentro de la Ingeniería del Software de Componentes y Sistemas Distribuidos.

A pesar de que la asignatura se basa en la realización de un proyecto de software concreto, el curso también cubre aspectos teóricos tanto nuevos como otros que complementan los conocimientos adquiridos hasta ahora, como las metodologías ágiles de desarrollo de software.

El desarrollo eficaz del proyecto se conseguirá por medio de una metodología ágil específica (Scrum) que cubre iterativamente en forma de sprints todas las etapas del ciclo de vida del software, es decir, la especificación, diseño, implementación, testing, despliegue y entrega del producto al "supuesto" cliente. En particular, en la etapa de implementación, se empleará Java para desarrollar el software distribuido basado en una arquitectura de microserveis. Además, otras tecnologías apoyarán el proyecto, como por ejemplo herramientas de configuración, diseño, pruebas, entrega continúa y despliegue con contenedores. Todas estas tecnologías se han visto y practicado a la asignatura previa de Ingeniería del Software de Componentes y Sistemas Distribuidos y por tanto se presupossa que el estudiantado está familiarizado.

Por último, la complejidad del proyecto requerirá el desarrollo específico de competencias relacionadas con el trabajo colaborativo en grupos pequeños de estudiantes. La UOC ofrecerá al alumno un espacio colaborativo donde podrá llevar a cabo la comunicación entre los miembros del grupo, compartir la documentación y en general llevar la gestión del proyecto, con el apoyo y la supervisión de los consultores de la asignatura

Amunt

La asignatura Proyecto de Desarrollo del Software se encuentra en la etapa final del itinerario Ingeniería de Software dentro del Grado de Ingeniería de Informática. Como tal, esta asignatura implica la realización y consolidación de este itinerario.

Muchas asignaturas del Grado, incluyendo las del itinerario mencionado, aplican en esta asignatura los conocimientos, habilidades y competencias adquiridas anteriormente. Por eso, esta asignatura es esencial para poder conectar todas las piezas y conseguir una perspectiva global y completa del desarrollo de software en el contexto de un proyecto.

Amunt

Esta asignatura da al estudiante la oportunidad de enfrentarse con problemas de cierta complejidad, similares a problemas reales, como por ejemplo la gestión de salud ciudadana, gestión de un catálogo de ocio, aplicaciones para e-Commerce, e-Logistics, entre otros.

Es por eso que el estudiantado tiene que tener una visión mucho más profunda comparado con los problemas que habrá resuelto hasta ahora, pues tiene que tomar decisiones importantes que repercuten en el progreso y el acabado con éxito del proyecto. Esta experiencia, sin duda, le dará al estudiantado una visión general de como abordar problemas complejos reales en el desarrollo de aplicaciones "grandes".

Dada la complejidad del proyecto, y por tanto el volumen de trabajo necesario para llevarlo a cabo, el proyecto se desarrollará, como se ha mencionado, en grupos de 6 o 7 estudiantes. Por lo tanto el estudiante tendrá la oportunidad de aprender como se trabaja en un grupo virtual, como se toman las decisiones, como y cuando se hace la comunicación entre miembros del grupo, en definitiva, conocer la problemática del trabajo en equipo.

Amunt

Haber superado la asignatura Ingeniería del Software de Componentes y Sistemas Distribuidos o tener los conocimientos equivalentes es la condición previa indispensable para poder cursar y superar esta asignatura.

Por otro lado, el desarrollo de un proyecto de software con un grado significativo de complejidad requiere disponer de un conocimiento técnico amplio y conceptos clave muy consolidados en disciplinas diferentes dentro del área de ingeniería de software, como los cimientos de programación, estructuras de datos, el paradigma de orientación a objetos, requisitos de software, patrones de análisis y diseño, arquitecturas de software, bases de datos y SQL, y tecnologías distribuidas. Además, el estudiantado tendrá que mostrar un nivel de pericia en el uso de herramientas y sistemas específicos, como IntelliJ, PostgreSQL, Docker, Spring, etc., que ya han visto y practicado a la asignatura previa Ingeniería del Software de Componentes y Sistemas Distribuidos.

Por último, el estudiantado tendrá que demostrar pericia en el trabajo colaborativo con herramientas basadas en las Apps de Google Suite (Drive, Groups, Meet, Mail, Calendar, etc) y herramientas de comunicación profesionales, como Slack, que en conjunto darán pleno apoyo a la colaboración, comunicación y coordinación de grupos de trabajo virtuales durante el desarrollo del proyecto, tanto intra grupos como entre grupos, a nivel de aula.

Amunt

Cómo se ha comentado, esta asignatura requiere disponer de un buen conocimiento previo, por lo tanto hace falta que el estudiantado haya superado las asignaturas previas que conducen a esta antes de matricularse. En particular, es imprescindible haber superado la asignatura Ingeniería del Software de Componentes y Sistemas Distribuidos donde se adquieren las competencias conceptuales y técnicas para poder hacer frente a esta asignatura..

También es esencial que el estudiantado haya superado el resto de asignaturas previas que formen el itinerario de Ingeniería del Software: Ingeniería de Requisitos, Análisis y Diseño con Patrones, y Diseño de Estructuras de Datos. Además, el estudiantado tiene que disponer del conocimiento equivalente a las asignaturas de Grado relacionadas con el desarrollo de software, como Cimientos de Programación, Ingeniería de Software y Uso de Base de datos. Por último, hay que tener asimilado los conceptos claves de la asignatura Gestión de Proyectos a fin de tener las competencias básicas para dirigir y llevar a cabo el proyecto de software desarrollado durante el curso.

Amunt

Competencias generales del Grado en Ingeniería Informática:

  • Trabajo en equipo.
  • Capacidad para innovar y generar nuevas ideas.
  • Capacidad para planificar y gestionar proyectos en el entorno de las TIC.
  • Capacidad de analizar un problema en el nivel de abstracción adecuado a cada situación y aplicar las habilidades y conocimientos adquiridos para abordarlo y resolverlo.
  • Capacidad de diseñar y construir aplicaciones informáticas mediante técnicas de desarrollo, integración y reutilización.
  • Aplicación de las técnicas específicas de ingeniería del software a las diferentes etapas del ciclo de vida de un proyecto.
  • Tener capacidad para aplicar las técnicas específicas de tratamiento, almacenamiento y administración de datos.
  • Capacidad para proponer y evaluar diferentes alternativas tecnológicas para resolver un problema concreto.                                                                            

Objetivos

El objetivo general de la asignatura es que el estudiante aplique los conocimientos básicos para el desarrollo de aplicaciones distribuidas basadas en microserveis. Este objetivo se concreta en los siguientes objetivos específicos

  • Explicar los fundamentos de las metodologías ágiles de desarrollo de software.
  • Conocer los diferentes tipos de arquitecturas software y plataformas tecnológicas actuales.
  • Conocer los principios básicos de las arquitecturas de microservicios.
  • Saber interpretar (leer) modelos especificados por otros ingenieros de software.
  • Conocer los estándares importantes dentro del área.
  • Saber que elementos que conforman la configuración de proyectos a nivel de recursos.
  • Aplicar los principios de planificación y gestión de proyectos al desarrollo de un proyecto software de envergadura mediana
  • Definir las necesidades tecnológicas y arquitectónicas para un sistema de software según los requerimientos no funcionales
  • Ser capaz de recomendar una plataforma tecnológica que se ajuste a estas necesidades.
  • Saber diseñar (es decir, adaptar la especificación en la tecnología) un sistema de software por las plataformas tecnológicas más comunes (incluyente plataformas distribuidas).
  • Saber llevar a la práctica la resolución de un enunciado concreto, basado en una arquitectura de microservicios e implementado con Java EE.
  • Saber reconocer los factores de testing y calidad de una especificación/diseño.
  • Saber evaluar formalmente el testing y la calidad de una especificación/diseño.
  • Saber preparar un buen informe final de entrega a un posible cliente para nuestro enunciado.

Amunt

La asignatura se estructura en 6 Actividades principales, cada una con sus contenidos específicos:

Actividad 1: "Metodologías de desarrollo ágil y conceptualización del producto"

  • Libro "Essential Scrum: A Practical Guide to the Most Popular Agile Process by Kenneth S. Rubin. Chapter 1. Introduction.
  • Libro "Essential Scrum: A Practical Guide to the Most Popular Agile Process" by Kenneth S. Rubin. Chapters 2 - 13.
  • Libro "The Agile Samurai" by Jonathan Rasmusson. Chapters 3-5.
  • Libro "The Agile Samurai" by Jonathan Rasmusson. Chapters 1-2, 6 y 15.
  • Libro "Agile Estimating and Planning" by Mike Cohn (material complementario).
  • Libro "Scrum - a pocket guide (3rd ed.)" by Gunther Verheyen (material complementario).
  • Actividad: Primera Prueba de Evaluación Continu (PEC1).

Actividad 2: "Planificación del producto"

  • Libro "Essential Scrum: A Practical Guide to the Most Popular Agile Process"" by Kenneth S. Rubin. Chapters 15-16.
  • Libro "Essential Scrum: A Practical Guide to the Most Popular Agile Process by Kenneth S. Rubin. Chapters 19-23.
  • Artículo "The new user story backlog is a map" by Jeff Patton. https://www.jpattonassociates.com/the-new-backlog/
  • Libro "User Stories Applied: For Agile Software Development" by Kent Beck (material complementario).
  • Libro "User Story Mapping" by Jeff Patton (material complementario).
  • Libro "Essential Scrum: A Practical Guide to the Most Popular Agile Process by Kenneth S. Rubin. Chapters 17 Envisioning (Product Planning) (material complementario).  
  • Libro "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert Martin (material complementario). 
  • Libro "Refactoring: Improving the Design of Existing Code" by Martin Fowler (material complementario)
  • Actividad: Primera parte de la Práctica (PRAC1).

Actividad 3: "Desarrollo del producto: Sprint 0"

  • Actividad: Segunda parte de la Práctica (PRAC2).

Actividad 4: "Desarrollo del producto: Sprint 1"

  • Actividad: Tercera parte de la Práctica (PRAC3).

Actividad 5: "Desarrollo del producto: Sprint 2"

  • Actividad: Cuarta parte de la Práctica (PRAC4).                         

Actividad 6: "Síntesis del producto"

  • Actividad: Segunda Prueba de Evaluación Continua (PEC2).

Para más información, consultar el calendario de las Actividades, los días de estudio del material y las fechas de entrega de las PEC y PRAC en el aula de PDS.

Amunt

El apoyo principal del material docente son los libros mencionados más arriba, que se distribuirán en formato digital según los canales habituales de la UOC (Biblioteca) accesibles desde el aula. Todos los libros de la asignatura son originales de autores de referencia mundial del área de desarrollo de software distribuido y por eso están escritos completamente en inglés. Se presupone competencias de comprensión lectora en inglés al estudiantado que llega a esta etapa del Grado, aunque dado el formato digital de estos materiales (lectura con un navegador web), permite una fácil lectura en otros idiomas mediante el uso de las funcionalidades de traducción automática de los navegadores actuales. Sin embargo, en ningún caso el equipo docente se hará responsable de los fallos y problemas de los sistemas de traducción automática, y se recomienda la lectura de los materiales en el idioma original, y especialmente identificar y comprender los conceptos y palabras clave en el idioma original para evitar confusiones con su traducción a otros idiomas.

Por otro lado, la asignatura dispone de una aula de Laboratorio con material y herramientas de software, y un consultor propio con experiencia en la parte técnica de la asignatura, donde el alumno obtendrá todo el apoyo necesario para llevar a cabo las prácticas. En particular, el Laboratorio dispone de software y manuales de instalación, cursos de formación y casos de estudio resueltos sobre instalación e implementación, preguntas frecuentes con respuestas y referencias a fuentes externas de información. Además, dispone de foros donde enviar dudas, consultas y problemas que el consultor responderá lo más rápido posible, y que el estudiantado pueden compartir y participar.

Amunt

El proceso de evaluación se fundamenta en el trabajo personal de cada estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; el intento fraudulento de obtener un resultado académico mejor; la colaboración, el encubrimiento o el favorecimiento de la copia, o la utilización de material o dispositivos no autorizados durante la evaluación, entre otras, son conductas irregulares que pueden tener consecuencias académicas y disciplinarias graves.

Por un lado, si se detecta alguna de estas conductas irregulares, puede comportar el suspenso (D/0) en las actividades evaluables que se definan en el plan docente - incluidas las pruebas finales - o en la calificación final de la asignatura, ya sea porque se han utilizado materiales o dispositivos no autorizados durante las pruebas, como redes sociales o buscadores de información en internet, porque se han copiado fragmentos de texto de una fuente externa (internet, apuntes, libros, artículos, trabajos o pruebas del resto de estudiantes, etc.) sin la correspondiente citación, o porque se ha practicado cualquier otra conducta irregular.

Por el otro, y de acuerdo con las normativas académicas, las conductas irregulares en la evaluación, además de comportar el suspenso de la asignatura, pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda.

La UOC se reserva la potestad de solicitar al estudiante que se identifique o que acredite la autoría de su trabajo a lo largo de todo el proceso de evaluación por los medios que establezca la universidad (síncronos o asíncronos). A estos efectos, la UOC puede exigir al estudiante el uso de un micrófono, una cámara u otras herramientas durante la evaluación y que este se asegure de que funcionan correctamente.

La verificación de los conocimientos para garantizar la autoría de la prueba no implicará en ningún caso una segunda evaluación.

Amunt

Esta asignatura solo puede superarse a partir de la evaluación continua (EC), nota que se combina con una nota de prácticas (Pr) para obtener la nota final de la asignatura. No se prevé hacer ninguna prueba de evaluación final. La fórmula de acreditación de la asignatura es la siguiente: EC + Pr.

 
 

Amunt