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 2023-2024. 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 o convalidado la asignatura Ingeniería del Software de Componentes y Sistemas Distribuidos 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

En la UOC, la evaluación generalmente es virtual. Se estructura en torno a la evaluación continua, que incluye diferentes actividades o retos; la evaluación final, que se lleva a cabo mediante pruebas o exámenes, y el trabajo final de la titulación.

Las actividades o pruebas de evaluación pueden ser escritas y/o audiovisuales, con preguntas aleatorias, pruebas orales síncronas o asíncronas, etc., de acuerdo con lo que decida cada equipo docente. Los trabajos finales representan el cierre de un proceso formativo que implica la realización de un trabajo original y tutorizado que tiene como objetivo demostrar la adquisición competencial hecha a lo largo del programa.

Para verificar la identidad del estudiante y la autoría de las pruebas de evaluación, la UOC se reserva la potestad de aplicar diferentes sistemas de reconocimiento de la identidad y de detección del plagio. Con este objetivo, la UOC puede llevar a cabo grabación audiovisual o usar métodos o técnicas de supervisión durante la ejecución de cualquier actividad académica.

Asimismo, la UOC puede exigir al estudiante el uso de dispositivos electrónicos (micrófonos, cámaras u otras herramientas) o software específico durante la evaluación. Es responsabilidad del estudiante asegurar que estos dispositivos funcionan correctamente.

El proceso de evaluación se fundamenta en el trabajo personal del estudiante y presupone la autenticidad de la autoría y la originalidad de las actividades académicas. La web sobre integridad académica y plagio de la UOC contiene información al respecto.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; la suplantación de identidad; la aceptación o la obtención de cualquier actividad académica a cambio o no de una contraprestación; la colaboración, el encubrimiento o el favorecimiento de la copia, o el uso de material, software o dispositivos no autorizados en el plan docente o el enunciado de la actividad académica, incluida la inteligencia artificial y la traducción automática, entre otras, son conductas irregulares en la evaluación que pueden tener consecuencias académicas y disciplinarias graves.

Estas conductas irregulares pueden conllevar el suspenso (D/0) en las actividades evaluables definidas en el plan docente -incluidas las pruebas finales- o en la calificación final de la asignatura, ya sea porque se han utilizado materiales, software o dispositivos no autorizados durante las pruebas (como el uso de inteligencia artificial no permitida, 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 de otros estudiantes, etc.) sin la citación correspondiente, por la compraventa de actividades académicas, o porque se ha llevado a cabo cualquier otra conducta irregular.

Asimismo, y de acuerdo con la normativa académica, las conductas irregulares en la evaluación también pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda, de conformidad con lo establecido en la normativa de convivencia de la UOC.

En el marco del proceso de evaluación, la UOC se reserva la potestad de:

  • Solicitar al estudiante que acredite su identidad según lo establecido en la normativa académica.
  • Solicitar al estudiante que acredite la autoría de su trabajo a lo largo de todo el proceso de evaluación, tanto en la evaluación continua como en la evaluación final, a través de una entrevista oral síncrona, que puede ser objeto de grabación audiovisual, o por los medios establecidos por la UOC. Estos medios tienen el objetivo de verificar los conocimientos y las competencias que garanticen la identidad del estudiante. Si no es posible garantizar que el estudiante es el autor de la prueba, esta puede ser calificada con una D, en el caso de la evaluación continua, o con un suspenso, en el caso de la evaluación final.

Inteligencia artificial en el marco de la evaluación

La UOC reconoce el valor y el potencial de la inteligencia artificial (IA) en el ámbito educativo y, a su vez, pone de manifiesto los riesgos que supone si no se utiliza de forma ética, crítica y responsable. En este sentido, en cada actividad de evaluación se informará al estudiantado sobre las herramientas y los recursos de IA que se pueden utilizar y en qué condiciones. Por su parte, el estudiantado se compromete a seguir las indicaciones de la UOC a la hora de realizar las actividades de evaluación y de citar las herramientas utilizadas y, concretamente, a identificar los textos o imágenes generados por sistemas de IA, los cuales no podrá presentar como si fueran propios.

Respecto a usar o no la IA para resolver una actividad, el enunciado de las actividades de evaluación indica las limitaciones en el uso de estas herramientas. Debe tenerse en cuenta que usarlas de manera inadecuada, como por ejemplo en actividades en las que no están permitidas o no citarlas en las actividades en las que sí lo están, puede considerarse una conducta irregular en la evaluación. En caso de duda, se recomienda que, antes entregar la actividad, se haga llegar una consulta al profesorado colaborador del aula.

Amunt

La asignatura solo puede aprobarse con el seguimiento y la superación de la evaluación continua (EC). La calificación final de la asignatura es la nota obtenida en la EC.

 

Amunt