Información general


Tipo de asignatura: obligatoria

Coordinador: Adso Fernández Baena

trimestre:3

Créditos: 4

Profesorado: Jordi Boix Baró

Descripción


La asignatura de Laboratorio de Software 1 del tercer trimestre de segundo curso, es la primera de las dos asignaturas llamadas Laboratorio de Software. Su impartición está pensada en dedicar 1 ECTS en la parte de teoría y 3 ECTS practicar los conceptos expuestos en teoría y los adquiridos al 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á con 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 la Covidien-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ó- 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

Metodología de trabajo


En esta asignatura sólo unas cuantas 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 habrá que aplicar 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 estas alarguen desde el punto de vista temporal, más allá de las horas de laboratorio y que, en consecuencia, los estudiantes deban finalizar durante el tiempo de aprendizaje autónomo.

 

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

Es potestativo de los docentes aceptar o no entregas fuera de los plazos que se indiquen. En caso de que estas entregas fuera de plazo se acepten, es potestativo del docente decidir si aplica alguna penalización y la cuantía de la misma.

contenidos


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


Se perfeccionarán las capacidades de programar de cada alumno, para que sea fácil de mantener y escalar proyectos de software en entorno de producción.


2. Conceptos básicos de entorno REST

Se trata de introducir los conceptos necesarios para poder desarrollar una apio REST con 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 programar el dominio del proyecto grupal.

A partir de un enunciado, el grupo ha diseñar el diagrama UML de clases del dominio y desarrollar 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 de los programas.
  • 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 eminentemente 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 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
  • 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
  • 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ásico

Larman, CRAI; Moros Valle, begonias. UML y patrones: una introducción al análisis y diseño orientado a objetos y el Proceso unificada. 2ª ed. Madrid [etc.]: Prentice Hall, golpe. 200. ISBN 9788420534381.

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

Complementario

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, golpe. 200. ISBN 9788483223543.

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