Aplicaciones y Servicios Web

Usted está aquí

Créditos
6
Tipos
Obligatoria de especialidad (Ingeniería del Software)
Requisitos
  • Prerrequisito: AS
Departamento
ESSI
En esta asignatura queremos que el alumno adquiera un conocimiento profundo, crítico y sistemático de las tecnologías más importantes para el desarrollo de aplicaciones y servicios web modernos, que sepa cómo utilizarlas en situaciones concretas y que lo haga de acuerdo con los principios de diseño y las buenas prácticas más apropiados en cada caso.

Profesorado

Responsable

  • Carles Farre Tost ( )

Otros

  • Carlota Catot Bragós ( )
  • Marc Oriol Hilari ( )
  • Quim Motger de la Encarnacion ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6

Competencias

Competencias Técnicas

Competencias técnicas comunes

  • CT2 - 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 manera que se demuestre la comprensión de los compromisos adoptados en las decisiones de diseño.
    • CT2.1 - Demostrar conocimiento y capacidad de aplicación de los principios, metodologías y ciclos de vida de ingeniería de software.
    • CT2.3 - Diseñar, desarrollar, seleccionar y evaluar aplicaciones, sistemas y servicios informáticos, y al mismo tiempo asegurar su fiabilidad, su seguridad y su calidad, conforme a principios éticos y a la legislación y la normativa vigente.
    • CT2.5 - Diseñar y evaluar interfaces persona-computador que garanticen la accesibilidad y la usabilidad a los sistemas, a los servicios y a las aplicaciones informáticas.

Competencias Técnicas de cada especialidad

Especialidad ingeniería del software

  • CES1 - Desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario, que se comporten de forma fiable y eficiente, que tengan un desarrollo y mantenimiento asequible y que cumplan normas de calidad, aplicando las teorías, los principios, los métodos y las prácticas de Ingeniería del Software.
    • CES1.1 - Desarrollar mantener y evaluar sistemas y servicios software complejos y/o críticos.
    • CES1.2 - Dar solución a problemas de integración en función de las estrategias, de los estándares y de las tecnologías disponibles.
    • CES1.4 - Desarrollar, mantener y evaluar servicios y aplicaciones distribuidas con soporte de red.
    • CES1.7 - Controlar la calidad y diseñar pruebas en la producción de software.
  • CES2 - Valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables, dentro de las limitaciones derivadas del costo, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones.
    • CES2.2 - Diseñar soluciones apropiadas en uno o más dominios de aplicación, utilizando métodos de ingeniería del software que integren aspectos éticos, sociales, legales y económicos.
  • CES3 - Identificar y analizar problemas, y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, de los modelos y de las técnicas actuales.
    • CES3.1 - Desarrollar servicios y aplicaciones multimedia.

Competencias Transversales

Aprendizaje autónomo

  • G7 [Avaluable] - Detectar carencias en el propio conocimiento y superarlas mediante la reflexión crítica y la elección de la mejor actuación para ampliar este conocimiento. Capacidad para el aprendizaje de nuevos métodos y tecnologías y versatilidad para adaptarse a nueves situaciones.
    • G7.3 - Aprendizaje autónomo: Capacidad de planificación y organización del trabajo personal. Aplicar los conocimientos adquiridos a la realización de una tarea en función de la pertenencia y la importancia, decidiendo la manera de llevarla a cabo y el tiempo que hay que dedicarle y seleccionando las fuentes de información más adecuadas. Identificar la importancia de establecer y mantener contactos con los compañeros de estudios, con el profesorado y con profesionales (networking). Identificar fórums de información sobre ingeniería TIC, sus avances y su impacto en la sociedad (IEEE, asociaciones, etc.).

Objetivos

  1. Adquirir un conecimiento crític0 y sistemático de los principales protocolos y tecnologias web
    Competencias relacionadas: CES1.1, CES1.2, CES1.4, CES3.1, G7.3, CT2.3,
  2. Adquirir una visión de conjunto del amplio abanico de lenguajes, técnicas y herramientas disponibles para el desarrollo de aplicaciones y servicios web
    Competencias relacionadas: CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  3. Evaluar y seleccionar la arquitectura y las tecnologías más apropiadas para una determinada aplicación / servicio web
    Competencias relacionadas: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  4. Diseñar aplicaciones y servicios web
    Competencias relacionadas: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CES1.7, CT2.3,
    Subcompetences:
    • Conocer y aplicar los patrones de diseño más apropiados en cada caso
    • Diseñar las interfaces de los servicios web
    • Realizar el diseño externo de aplicaciones web
    • Realizar el diseño interno de aplicaciones y servicios web
  5. Conocer y utilizar frameworks para implementar aplicaciones y servicios web
    Competencias relacionadas: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  6. Implementar, desplegar y configurar aplicaciones y servicios web utilizando las tecnologías y técnicas propuestos
    Competencias relacionadas: CT2.1, CES1.1, CES1.2, CES1.4, CES2.2, G7.3, CT2.3,
  7. Conocer e identificar los principales riesgos de seguridad de las aplicaciones y servicios web y las estrategias para solucionarlos.
    Competencias relacionadas: CT2.1, CES1.1, CES1.4, CES2.2, G7.3, CES1.7, CT2.3,
  8. Analizar y evaluar aplicaciones y servicios web según criterios de calidad
    Competencias relacionadas: CT2.1, CES1.1, CES1.4, CES2.2, CT2.5, G7.3, CES1.7, CT2.3,
    Subcompetences:
    • Conocer y aplicar principios, estrategias y herramientas para evaluar el rendimiento de aplicaciones y servicios web
    • Diseñar y ejecutar pruebas de regresión
    • Conocer y aplicar principios, estrategias y herramientas para evaluar la usabilidad de aplicaciones y servicios web

Contenidos

  1. Introducción
    Diferencias entre aplicaciones web y servicios web. Evolución histórica. Características principales de las aplicaciones y servicios web.
  2. Protocolos, lenguajes y tecnologías Web
    • El núcleo: URIs y HTTP
    • En el cliente: HTML, CSS, JavaScript, DOM, AJAX
    • En el servidor: PHP, Java Servlets, JSPs, ...
    • Formatos de intercambio de datos: XML, JSON
    • Servicios Web: SOAP + WSDL, REST
  3. Arquitecturas para Aplicaciones y Servicios Web
    Arquitectura Lógica vs. Arquitectura Física. Especificidades y condicionantes de las aplicaciones y servicios web. Componentes de una arquitectura web genérica. Patrones de arquitecturas físicas.
  4. Diseño de Aplicaciones Web
    Arquitectura y diseño de aplicaciones web.
  5. Diseño de Servicios Web
    Arquitectura y diseño de servicios web.
  6. Seguridad, Usabilidad i Pruebas de Aplicaciones y Servicios Web
    Aspectos relacionados con la seguridad, usabilidad y la automatización de pruebas de aplicaciones y servicios web.

Actividades

Actividad Acto evaluativo


Tema 1: Introducción

Participa activamente en la clase de teoría, donde se explican los objetivos y la organización de la asignatura.

Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Tema 2: Protocolos, lenguajes y tecnologías Web

Participa activamente en la clase de teoría. De manera autónoma, y ​​en grupos de dos o tres, comenzará a buscar información sobre una tecnología específica que deberán presentar en clase.
Objetivos: 1 2
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

P1: Presentación sobre protocolos, lenguajes y tecnologías web (Parte 1)

Además de realizar la presentación ante toda la clase, se deberá entregar un archivo con las transparencias elaboradas a tal efecto.
Objetivos: 1 2
Semana: 3
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

P1: Presentación sobre protocolos, lenguajes y tecnologías web (Parte 2)

Además de realizar la presentación ante toda la clase, se deberá entregar un archivo con las transparencias elaboradas a tal efecto.
Objetivos: 1 2
Semana: 4
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Tema 3: Arquitecturas para Aplicaciones y Servicios Web

Participa activamente en la clase de teoría.
Objetivos: 3
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Tema 4: Diseño de Aplicaciones Web

Participa activamente la clase de teoría. De manera autónoma, estudiará material relacionado con el tema y realizará los ejercicios propuestos por el profesor.
Objetivos: 4
Contenidos:
Teoría
6h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
9h

C1: Control 1

Control donde se evaluarán todos los contenidos de los temas 1, 2 y 3.
Objetivos: 4
Semana: 9
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Tema 5: Diseño de Servicios Web

Participa activamente la clase de teoría. De manera autónoma, estudiará material relacionado con el tema y realizará los ejercicios propuestos por el profesor.
Objetivos: 4
Contenidos:
Teoría
6h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
9h

P2: Presentación sobre seguridad, usabilidad y pruebas de aplicaciones y servicios web (Parte 1)


Objetivos: 7 8
Semana: 13
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

P2: Presentación sobre seguridad, usabilidad y pruebas de aplicaciones y servicios web (Parte 2)


Objetivos: 7 8
Semana: 14
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
3h

C2: Control 2

Control donde se evaluarán todos los contenidos de los temas 5 y 6.
Objetivos: 4 7 8
Semana: 15 (Fuera de horario lectivo)
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Laboratorio: Sesiones d'introducción a tecnologias para aplicaciones y servicios web

Por parejas, trabaja (instala, configura, programa) para llevar a cabo una serie de tareas preestablecidas en el enunciado entregado al inicio de la sesión, utilizando el lenguaje, herramientas y recursos indicados. Con antelación, y de manera autónoma, se ha familiarizado e introducido en el uso de estas tecnologías.
Objetivos: 1 2 6
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
8h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

Laboratorio: Proyecto

En grupos de 3-4, diseña e implementa los tests y el código de una aplicación web y hace el despliegue en la nube. Independientemente de sus funcionalidades, esta aplicación constará de tres partes: aplicación web "clásica", API REST e interfaz móvil "responsive". Cada semana acude a la sesión de laboratorio para trabajar en el proyecto, indicar el grado de consecución de los hitos establecidos para esa sesión, (re) planificar los hitos para las próximas sesiones, presentar resultados i reportar dudas y problemas. Al final del proyecto, evalua el trabajo de sus compañeros de proyecto.
Objetivos: 4 5 6 7 8
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
22h
Aprendizaje dirigido
0h
Aprendizaje autónomo
30h

Metodología docente

La docencia de la asignatura está estructurada en clases de teoría/problemas y clases de laboratorio.

Clases de teoría / problemas: 2 horas de clase por semana.
Los instructores pueden presentar algunos de los contenidos del curso utilizando diapositivas o algún otro material disponible en Atenea. Los problemas servirán para poner en práctica y comprobar el aprendizaje. A veces, los estudiantes podrían ser requeridos a tener los problemas resueltos total o parcialmente antes de la clase. Entonces las posibles soluciones serán discutidas en clase. En otras ocasiones, el problema será planteado y resuelto durante la clase, utilizando técnicas de aprendizaje cooperativo. Habrá también sesiones en las que los estudiantes serán requeridos para preparar por su cuenta y presentar ante la clase algún tema.

Clases de laboratorio: 2 horas de laboratorio por semana.
Durante las 4 primeras semanas de curso, yi tras una breve introducción sobre las tareas a realizar, los alumnos las llevarán a cabo usando el ordenador de acuerdo con un plan de trabajo preestablecido y una lista de objetivos.
Durante el resto de semanas del curso, los alumn0s, en grupos de 3-4, diseñarán e implementarán un proyecto web. Las sesiones de laboratorio servirán per trabajar en el proyecto, discutir i resolver dudas y problemas, fijar y gestionar objetivos y presentar resultados.

Método de evaluación

Nota Final = 50% NTP + 50% NLAB

NTP = nota de teoria y problemas
NLAB = nota de laboratorio

La NTP se obtiene de les notas de C1 (Control 1), C2 (Control 2), P1 (Presentación 1) y P2 (Presentación 2) aplicando la fórmula siguiente:

NTP= 30% C1 + 30% C2 + 20% P1 + 20% P2

La NLAB se obtiene de les notas IntroLAB (Sessiones de introducción a tecnologias web) i Proyecto aplicando la fórmula siguiente:

NLAB = 30% IntroLAB + 70% Proyecto

Tanto las presentaciones (P1 y P2) como el Proyecto conllevan trabajo en grupo. En estos casos, el estudiante tendrá una nota individualizada que se calculará a partir de la evaluación que hará el profesor sobre la calidad global del ítem en cuestión (presentación o proyecto), de la evaluación que hará el profesor sobre la contribución del estudiante dentro del grupo y de la evaluación que harán el resto de compañeros del grupo sobre la contribución del estudiante al grupo.

La evaluación de la competencia transversal asignada a la asignatura (G7.3) se obtiene a partir de la fórmula :

Nota G7.3 numérica = 60% Proyecto+ 40% Ps

I tendrá unos valores A, B, C, D según la distribución siguiente:

Nota G7.3 = A si la Nota numérica G7.3 está entre 8.5 y 10
Nota G7.3 = B si la Nota numérica G7.3 está entre 7 y 8.4
Nota G7.3 = C si la Nota numérica G7.3 está entre 5 y 6.9
Nota G7.3 = D si la Nota numérica G7.3 és inferior a 5

Bibliografía

Básica:

Complementaria:

Web links

Capacidades previas

1) Saber qué es una especificación en UML de los requisitos funcionales y no funcionales de un sistema.
2) Saber el contexto en que se puede hacer el diseño de un sistema y, en particular, cuáles son las actividades previas y siguientes.
3) Saber qué es la arquitectura del software, y qué estilos arquitectónicos hay (la arquitectura en capas es una de ellas).
4) Conocer los principios del diseño orientado a objetos.
5) Conocer el concepto de patrones de diseño y los patrones de diseño principales.
6) Conocer los elementos del UML específicos del diseño.
7) Conocer las características principales de las plataformas de componentes distribuidos.