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 los que dispone la asignatura   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 Proyectode Desarrollo del Software tiene como objetivo primordial el desarrollo de un proyecto de software completo. Está basada en la aplicación práctica de los conocimientos y competencias obtenidas hasta el momento en el Grado, como por ejemplo Fundamentos de Programación , Ingeniería del 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 aspecto teóricos, tanto nuevos como otros que complementan los conocimientos adquiridos hasta ahora, como la gestión de proyectos, la calidad del software, y la configuración del software y su mantenimiento.

El desarrollo eficaz del proyecto se conseguirá por medio de una metodología específica que cubre todas las etapas del ciclo de vida del software, es decir, desde la especificación a la entrega final del producto al "supuesto" cliente. En particular, en la etapa de implementación, se empleará extensamente la plataforma Java EE para desarrollar el software distribuido basado en los componentes modulares que corren en  un servidor de aplicaciones. Además, otras tecnologías apoyarán el proyecto, como por ejemplo las herramientas para realizar pruebas del código y para la configuración y control del software.

Por último, la complejidad del proyecto requerirá el desarrollo específico de competencias relacionadas con el trabajo colaborativo en grupos pequeños de 4 o 5 estudiantes. Para apoyar a este trabajo, la asignatura proporciona un entorno de trabajo colaborativo basado en las Apps de Google Suite para dar soporte a equipos virtuales de estudiantes durante el desarrollo del proyecto.

Amunt

 

La asignatura Proyecto de Desarrollo de Software se ubica en la etapa final del itinerario de Ingeniería de Software dentro del Grado de Ingeniería en Informática. Como tal, esta asignatura acontece 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 llega a ser esencial para poder conectar todas las piezas y disponer de 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 y similares a problemas reales, como por ejemplo la gestión de una tienda o PYME, servicios de un Cajero OnLine, Gestión de un CAP (Centro de Atención Primaria), aplicaciones para Teletrabajo, eCommerce, eLogistics, eLearning, entre otros.

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

Dada la complejidad del proyecto, y por lo tanto el volumen de trabajo necesario para llevarlo a cabo, el proyecto se desarrollará en grupos de 5 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 de trabajo en equipo.

Amunt

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 fundamentos de programación, estructuras de datos, el paradigma de orientación a objetos, ingeniería de requisitos, patrones de análisis y diseño, arquitecturas de software, bases de datos y SQL, y tecnologías distribuidas (por ejemplo, RMI, Java EE, y SOA).

Además, los estudiantes tendrán que mostrar un nivel de expertesa en el uso de herramientas y sistemas específicos, como PostgreSQL, JEE, EJB 3.x, Eclipse y servicios web).

Amunt

 

Esta asignatura requiere disponer de sólidos conocimientos previos, por lo tanto se requiere que el estudiante haya superado las asignaturas previas que conducen a ésta antes de matricularse. En particular es imprescindible haber cursado y superado la asignatura Ingeniería del Software de Componentes y Sistemas Distribuidos.

També es esencial que el estudiante haya superado el resto de asignaturas previas que forman 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 estudiante tiene que disponer del conocimiento equivalente a las asignaturas de Grado relacionadas con el desarrollo de software, como Fundamentos de Programación,Ingeniería del Software y Uso de Base de Datos. Por último, hay que tener asimilado los conceptos claves de la asignatura Gestión de Proyectos del Grado con objeto de tener las competencias básicas para dirigir el proyecto de software desarrollado durante el curso.

Amunt

Competencias generales del Grado

  • 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.
  • 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.

Competencias de la asignatura

  • Conocer los principios básicos de la gestión de configuración en una arquitectura Java EE.
  • 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 traer a la práctica la resolución de un enunciado concreto, basado en una arquitectura cliente-servidor 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.
  • Conocer los conceptos básicos de los diferentes tipos de arquitecturas software y plataformas tecnológicas actuales.

Objetivos

  • Comprender la necesidad de una gestión rigurosa de proyectos de software.
  • Disponer de una visión general en la gestión de proyectos de software.
  • Comprender las diferencias con la gestión otros tipos de proyectos.
  • Aprender las actividades básicas de un proyecto de software.
  • Comprender las perspectivas diferentes de calidad de software, desde el punto de vista teórico al práctico
  • Identificar las actividades dirigidas a detectar e impedir defectos de software, y la importancia del coste derivado de la mala calidad.
  • Conocer los modelos más importantes y estándares de calidad de software y las métricas más utilizadas para medir la calidad de un producto de software y la calidad del proceso de desarrollo.
  • Entender los conceptos básicos relacionados con la gestión de la configuración de software.
  • Identificar las actividades más importantes de la gestión de la configuración.
  • Saber gestionar la gestión de configuración de software.
  • Conocer algunas de las herramientas que apoyan a la gestión de la configuración de software.
  • Comprender qué son los tests y los diferentes niveles y tipos de tests.
  • Identificar los mecanismos de prevención que se pueden aplicar para evitar defectos en el software.
  • Conocer diferentes herramientas que pueden ser utilizadas para apoyar a todas las técnicas de tèsting.
  • Ser consciente de la importancia del mantenimiento de software en un sistema informático.
  • Identificar los tipos diferentes de mantenimiento de software.

Amunt

El estudiante dispondrá de días de estudios para poder repasar estos conceptos teóricos. Estos días serán seleccionados específicamente por los consultores a tal efecto, de forma que antes de empezar un nuevo bloque el alumno disponga de tiempo de revisar sus apuntes.

Consultar el calendario de PECs, días de estudio, y fechas de entrega del curso al aula de PDS para más información.

Amunt

 

El material principal de la asignatura (5 módulos) se facilita en formato Web y PDF.

Para llevar a cabo el proyecto en grupo del curso y las diferentes actividades individuales de la asignatura, se puede requerir todo o parte del siguiente software que se hará llegar al estudiante con un DVD que incluirá los manuales de usuario correspondientes:

  • Magic Draw: Herramienta CASE visual por el modelado de software con UML.
  • GitLab: Sistema de gestión de configuración de software cliente-servidor.
  • JBoss: Servidor de aplicaciones de código abierto en Java que implementa la arquitectura Java EE.
  • Apache Ant: Herramienta de código abierto en Java para la automatización de tareas de compilación y construcción de proyectos Java.
  • MySQL: Sistema de gestión de base de datos (SGBD) relacional de código abierto.
  • PostgreSQL: Sistema de gestión de base de datos (SGBD) relacional de código abierto.
  • Eclipse: Entorno integrado de desarrollo (IDE) para desarrollar proyectos en diferentes lenguajes. de programación (en nuestro caso JEE).
  • JDK y SDK: Entornos de desarrollo de Java (últimas versiones).
  • JHawk: Herramienta de análisis de código estático Java para evaluar la calidad del código. 
  • G Suite: Conjunta de herramientas (GDrive, GGroups, GCalendar, GMail, GCalendar, etc) para apoyar el trabajo colaborativo de equipos virtuales.

Para apoyar a la parte estrictamente técnica el estudiante tendrá a su alcance un laboratorio virtual con un consultor y toda una serie de recursos que lo ayudarán a resolver los problemas de instalación y utilización de las herramientas.

Aparte de estas herramientas específicas, el curso proporcionará las herramientas estándar por el trabajo colaborativo en el aula, como Foros y Wikis.

Finalmente, al inicio del semestre, por un lado, los estudiantes encontrarán en el Tablero un documento que explica el proceso de trabajo en equipo que se tiene que seguir para desarrollar el proyecto. Por otro lado, en el Gdrive de l'assignatura habrá un documento de ayuda para la formación de grupos y para la utilización de las Apps de G Suite

 

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.

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