Información general


Idiomas de impartición


  • Català

Descripción


La asignatura de Laboratorio de Software 1 del tercer trimestre de segundo curso, es la primera de las dos asignaturas denominadas Laboratorio de Software. Su impartición está pensada en dedicar 1 ECTS en la parte de teoría y 3 ECTS a practicar los conceptos expuestos en teoría y los adquiridos en el resto de asignaturas de primer y segundo curso.

Esta asignatura será la que introducirá la persistencia de objetos a base de datos relacionales utilizando la API JDBC, profundizará en las técnicas de programación y se introducirá los conceptos de REST API.

 

Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con el Covid-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.

Resultados de aprendizaje


En el ámbito general, esta asignatura contribuye a siguientes resultados de aprendizaje especificados para la materia a la que pertenece (Ingeniería del Software)

  • 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 forma que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
  • Usar las herramientas de un entorno de desarrollo de software para crear y desarrollar aplicaciones.
  • Demostrar conocimiento y saber aplicar las técnicas apropiadas para modelar y analizar los diferentes tipos de decisiones.
  • Gestionar y resolver los problemas y conflictos gracias a la capacidad de generar alternativas o escenarios de futuro convenientemente analizados, integrando los aspectos de incertidumbre y los múltiples objetivos a considerar.
  • Controlar versiones y configuraciones de proyecto.
  • Controlar la calidad y diseñar pruebas en la producción de software.
  • Definir y gestionar los requisitos de un sistema de software
  • Identificar tecnologías actuales y emergentes y evaluar si son aplicables, y en qué medida, para satisfacer las necesidades de los usuarios.
  • Comprender y utilizar eficazmente manuales, especificaciones de productos y otra información de carácter técnico escrita en inglés.
  • Planificar y utilizar la información necesaria para un trabajo académico (por ejemplo, para el trabajo de fin de grado) a partir de una reflexión crítica sobre los recursos de información utilizados. Gestionar la información de manera competente, independiente y autónoma. Evaluar la información encontrada e identificar las lagunas presentes.
  • Garantizar que los sistemas TIC de una organización funcionan de forma adecuada, son seguros y están adecuadamente instalados, documentados, personalizados, mantenidos, actualizados y sustituidos, y que las personas de la organización reciben un apoyo TIC correcto.
  • Dirigir, planificar y coordinar la gestión de la infraestructura informática: hardware, software, redes y comunicaciones.

A un nivel más concreto, al finalizar la asignatura el estudiante debe ser capaz de:

  • RA1: Conocer las fases de un proyecto de programación.
  • RA2: Aplicar los principios del diseño orientado a objetos.
  • RA3: Implementar programas con interfaz gráfica para el usuario en entorno escritorio.
  • RA4: Implementar programas para entorno web.
  • RA5: Persistir objetos a bases de datos relacionales mediante el uso del JDBC.
  • RA6: Entender los criterios de calidad de los programas.
  • RA7: Desarrollar proyectos de programación en equipo.
  • RA8: Controlar las versiones del proyecto

Para superar (aprobar) las actividades evaluativas, los estudiantes deberán demostrar

  • Que han adquirido los conocimientos teóricos relativos a los contenidos de la asignatura y que su comprensión les permite llevarlos a la práctica [MECES-2 punto a, punto c]
  • Que pueden desarrollar soluciones a problemas que, si bien son similares a otros vistos anteriormente, presentan aspectos que son nuevos [MECES2 punto f]

A continuación se explicitan los aspectos más importantes de cada competencia asignada a la asignatura:

  • B2: Aplicar los conocimientos de forma profesional
  • B4: Transmitir información, ideas, problemas y soluciones a un público diverso
  • B5: Tener autonomía en el aprendizaje
  • EFB4: Conocimientos sobre programación de computadores y bases de datos
  • CIN1: Desarrollar software asegurando su seguridad y calidad conforme principios ético
  • CIN2: Planificar proyectos informáticos
  • CIN3: Negociar y comunicar problemas y soluciones dentro del grupo de trabajo
  • CIN4: Elaborar un pleg de condiciones técnicas
  • CIN5: Administración y mantenimiento de aplicaciones informáticas
  • CIN8: Analizar, diseñar y construir aplicaciones de forma robusta, segura y eficiente
  • CIN12: Uso adecuado de las bases de datos
  • CIN13: Acceso a sistemas de información basados ¿¿en web
  • CIN16: Aplicación de los principios y metodologías de la ingeniería del software
  • CIN17: Diseñar y evaluar interfaces persona computador accesibles y usables
  • EIS1: Desarrollar sistemas software que satisfagan los requisitos del usuario
  • EIS2: Entender las necesidades del cliente y especificar los requisitos software
  • EIS3: Solucionar problemas de integración usando las tecnologías disponibles
  • EIS4: Identificar y solucionar problemas software todo documentándolos
  • T1: Leer y comprender manuales técnicos en inglés
  • T2: Trabajar en equipo

Metodologia de trabajo


En esta asignatura unas pocas sesiones estarán dedicadas preferentemente a introducir los conceptos teóricos, mostrando su aplicación con ejercicios resueltos por el docente. Se recomienda que antes de cada sesión los estudiantes se lean el material publicado en la plataforma virtual.

La mayoría de sesiones serán para desarrollar el software propuesto en el enunciado de la práctica, se hará en grupos reducidos (entre 3 y 5 estudiantes) y se aplicarán los conocimientos adquiridos en los 3 bloques de la asignatura, además de los conocimientos de las asignaturas de programación, bases de datos y de ingeniería del software. En estas sesiones se darán las herramientas adecuadas para desarrollar el software propuesto pero se espera que se continue trabajando en el software más allá de las horas de laboratorio.

Normas de realización de las actividades

Para cada actividad, los docentes informarán de las normas y condiciones particulares que las rijan.
Las actividades unipersonales presuponen el compromiso del estudiante de realizarlas de manera individual. Se considerarán suspendidas todas aquellas actividades en las que el estudiante no se ajuste a este compromiso, independientemente de su papel (origen o destino).
Igualmente, las actividades que se deban realizar en grupos presuponen el compromiso por parte de los estudiantes que lo integran de realizarlas en el seno del grupo. Se considerarán suspendidas todas aquellas actividad en la que el grupo no haya respetado este compromiso con independencia de su papel (origen o destino).

En las actividades realizadas en grupo el docente puede, en base a la información de que disponga, personalizar la calificación para cada integrante del grupo.

Cualquier actividad no entregada se considerará puntuada con cero puntos.

Contenidos


  1. Perfeccionamiento de la Programación: patrones y buenas prácticas.

 

Se perfeccionarán las capacidades de programar de cada alumno para facilitar el mantenimiento y la escalabilidad de un proyecto de software en entorno de producción.

 

        2. Conceptos básicos de entorno REST

 

Se introducirán los conceptos necesarios para poder desarrollar una api REST en JAVA.

 

    3. Persistencia de objetos Java base de datos relacionales

 

Se trabajará con JDBC para persistir los objetos de JAVA a base de datos.

 

 

Actividades de aprendizaje


PRIMERA PARTE DEL PROYECTO EN GRUPO

Analizar y desarrollar el dominio del proyecto grupal.

A partir de un enunciado, el grupo diseñará el diagrama UML de clases del dominio e implementará el dominio del software final.

Ponderación: 16% de la nota final.

Objetivos específicos: Al finalizar la actividad los estudiantes deben ser capaces de:

Aplicar los principios del diseño orientado a objetos.
Entender los criterios de calidad del software.
Desarrollar proyectos de programación en equipo.
Controlar las versiones del proyecto

SEGUNDO PARTE DEL PROYECTO EN GRUPO

Implementación de las principales funcionalidades del software con el patrón capas y persistencia con JDBC.

Se deberá entregar el proyecto funcional que cumpla los requisitos detallados previamente.

Ponderación: 18% de la nota final.

Objetivos específicos: Al finalizar la actividad los estudiantes deben ser capaces de:

Aplicar los principios del diseño orientado a objetos.
Persistir objetos a bases de datos relacionales mediante el uso del JDBC.
Entender los criterios de calidad de los programas.
Desarrollar proyectos de programación en equipo.
Controlar las versiones del proyecto

TERCERA PARTE DEL PROYECTO EN GRUPO

Diseño, implementación del módulo REST API.

Se deberá entregar el proyecto final con REST API que cumpla los requisitos que se han detallado anteriormente.

Ponderación: 16% de la nota final.

Objetivos específicos: Al finalizar la actividad los estudiantes deben ser capaces de:

Aplicar los principios del diseño orientado a objetos.
Entender los criterios de calidad de los programas.
Desarrollar proyectos de programación en equipo.
Controlar las versiones del proyecto


Prueba 1

Prueba individual práctica del bloques 1, 2 y 3.

Se deberá entregar la resolución de la prueba.

Esta prueba representa el 50% de la calificación final de la asignatura.

Objetivos específicos: El objetivo de esta actividad es evaluar si el estudiante sabe:

Aplicar los principios del diseño orientado a objetos.
Implementación del software en API Rest.
Persistir objetos a bases de datos relacionales mediante el uso del JDBC.


Para superar esta prueba, los estudiantes deberán demostrar

Que han adquirido los conocimientos teóricos relativos a los contenidos de la asignatura y que su comprensión les permite llevarlos a la práctica [MECES-2 punto a, punto c]
Que pueden desarrollar soluciones a problemas que, si bien son similares a otros vistos anteriormente, presentan aspectos que son nuevos [MECES2 punto f]
A continuación se detallan los aspectos más importantes de cada competencia correspondiente a la asignatura:

B2: Aplicar los conocimientos de forma profesional
B4: Transmitir información, ideas, problemas y soluciones a un público diverso
B5: Tener autonomía en el aprendizaje
EFB4: Conocimientos sobre programación de computadores y bases de datos
CIN1: Desarrollar software asegurando su seguridad y calidad conforme principios ético
CIN3: Negociar y comunicar problemas y soluciones dentro del grupo de trabajo
CIN4: Elaborar las condiciones técnicas
CIN5: Administración y mantenimiento de aplicaciones informáticas
CIN8: Analizar, diseñar y construir aplicaciones de forma robusta, segura y eficiente
CIN12: Uso adecuado de las bases de datos
CIN16: Aplicación de los principios y metodologías de la ingeniería del software
EIS1: Desarrollar sistemas software que satisfagan los requisitos del usuario
EIS2: Entender las necesidades del cliente y especificar los requisitos software
EIS3: Solucionar problemas de integración usando las tecnologías disponibles
EIS4: Identificar y solucionar problemas software todo documentándolos
T1: Leer y comprender manuales técnicos en inglés
T2: Trabajar en equipo

 

Sistema de evaluación


La nota final se calculará con las calificaciones de las actividades ponderadas de la forma siguiente:
· Prueba 1: 50%
. Primera entrega del proyecto en grupo 16%.
· Segunda entrega del proyecto en grupo 18%.
· Tercera entrega del proyecto en grupo 16%.

Sólo podrá recuperarse la prueba 1 (el proyecto en grupo no se podrá recuperar). El 50% de la nota final de la asignatura será la mayor entre la prueba de recuperación y la obtenida en la prueba 1.

Para poder realizar la prueba de recuperación del estudiante deberá cumplir las tres condiciones siguientes:
. La nota de la asignatura es inferior a cinco.
. La nota de la prueba 1 es superior a 3.
. La nota que ha obtenido de la práctica de grupo es superior a 3.

Bibliografía


Básica

Larman, Crai; Moros Valle, Begoñ. UML y patrones : una introducción al análisis y diseño orientado a objetos y al proceso unificado. 2ª ed. Madrid [etc.]: Prentice Hall, cop. 200. ISBN 9788420534381.

Pressman, Roger S. Ingeniería del software: un enfoque práctico. 7e. McGraw-Hill, 2010. ISBN 9786071503145.


Complementaria

Bolaños Alonso, Danie; Sierra Alonso, Almuden; Alarcón Rodríguez, Miren Idoi. Pruebas de software y JUnit : un análisis en profundidad y ejemplos prácticos.Madrid: Pearson, cop. 200. ISBN 9788483223543.

Martin, Robert C.. UML para programadores Java. 1a.Pearson, 2004. ISBN 9788420541099.