Profesorado
Juan Manuel Dodero Beardo (coordinador)
Situación
Prerrequisitos
Es recomendable conocimiento de lenguajes de marcado y técnicas de presentación
web (XHTML, XML, JavaScript) y de algún lenguaje de programación.
Contexto dentro de la titulación
Asignatura optativa del perfil Desarrollo de Sistemas Software.
Recomendaciones
Se recomienda a los alumnos cursar también las asignaturas:
- Ingeniería de Requisitos.
- Tecnología Avanzada de Bases de Datos.
- Diseño de Sistemas Software.
Asimismo se recomienda a los alumnos que cursen el resto de asignaturas
optativas del perfil Desarrollo de Sistemas Software ofertadas a los alumnos:
- Comercio electrónico.
- Desarrollo de aplicaciones con lenguajes de marcado.
- Administración de Servidores Web.
Competencias
Competencias transversales/genéricas
INSTRUMENTALES
- Capacidad de organización y planificación.
- Capacidad de análisis y síntesis.
- Capacidad para resolver problemas en un entorno pluridisciplinar.
- Comunicación oral y escrita.
- Toma de decisiones.
PERSONALES
- Trabajo en equipo.
- Aprendizaje autónomo.
- Habilidades en las relaciones interpersonales.
Competencias específicas
Cognitivas(Saber):
- Entender los conceptos básicos de la Ingeniería Web.
- Conocer los principales estándares en la Web.
- Distinguir los principales entornos de desarrollo en la Web.
- Conocer una metodología de desarrollo de aplicaciones Web.
- Comprender la arquitectura típica de una aplicación Web.
- Conocer herramientas de desarrollo de aplicaciones Web.
Procedimentales/Instrumentales(Saber hacer):
- Utilizar una metodología de desarrollo de aplicaciones Web.
- Realizar la especificación de requisitos de una aplicación Web
- Modelar la arquitectura de una aplicación Web
- Realizar el análisis y el diseño de una aplicación Web.
- Desarrollar completamente una aplicación Web utilizando herramientas
de desarrollo.
Actitudinales:
- Aprendizaje autónomo de nuevos métodos y herramientas de desarrollo
de aplicaciones Web.
- Motivación por la calidad de una aplicación Web.
- Planificación de las actividades de un proyecto software para la Web.
- Trabajo en equipo.
- Razonamiento crítico para la elección de métodos y herramientas de
desarrollo Web.
Objetivos
Los objetivos de la asignatura se basan en la consecución de las competencias
descritas en el apartado anterior:
- Aprender los conceptos básicos de la ingeniería Web.
- Conocer las principales plataformas de desarrollo de aplicaciones Web.
- Estudiar y aplicar un proceso de desarrollo de aplicaciones Web.
- Aprender los principales patrones arquitectónicos de aplicaciones Web.
- Aprender a desarrollar aplicaciones Web utilizando una herramienta de
desarrollo.
Programa
TEORÍA
******
PARTE I: Visión general de la Ingeniería Web.
Tema 1. La Ingeniería Web.
1.1 Panorámica
1.2 Conceptos básicos de las aplicaciones Web
1.3 Protocolos y lenguajes
1.4 Antecedentes
Tema 2. Arquitectura y tecnologías
2.1 Arquitecturas de las aplicaciones Web: MVC
2.2 Ejecución dinámica en el cliente y en el servidor.
2.3 Tecnologías en el Servidor.
2.4 Lenguajes y entornos de desarrollo: J2EE
Tema 3. Desarrollo de aplicaciones Web.
3.1 Métodos ágiles de desarrollo
3.2 Requisitos de una aplicación Web
3.3 Patrones de arquitectura y diseño de aplicaciones Web
3.4 Análisis y diseño de aplicaciones Web
3.5 Elección de entornos de desarrollo
3.6 Modelo de pruebas en aplicaciones Web
Tema 4. Servicios web
4.1 Servicios web
4.2 Arquitecturas basadas en servicios
4.3 SOAP/RPC
4.4 REST
Tema 5. Evolución de la Web
5.1 Web 2.0
5.2 Tecnologías de la web 2.0
5.3 Comunicaciones asíncronas con el servidor: AJAX
5.4 Web semántica
Tema 6: Otros aspectos de la construcción de aplicaciones Web
6.1 Seguridad
6.2 Usabilidad
6.3 Escalabilidad
6.4 Transacciones
PRÁCTICAS
*********
En las clases prácticas de la asignatura se estudiarán y utilizarán
herramientas para:
- Especificar los requisitos de una aplicación Web.
- Realizar el modelo de análisis y diseño en UML de una aplicación Web.
- Utilizar frameworks para el desarrollo de una aplicación Web.
- Diseñar y realizar pruebas de unidad, funcionales y de integración en una
aplicación Web
- Gestionar un proyecto de ingeniería Web.
Actividades
Se realizarán los siguientes tipos de actividades para la consecución de las
competencias específicas y desarrollo de las competencias genéricas que se citan
a continuación:
TRABAJO EN EQUIPO
- Capacidad de organización y planificación.
- Comunicación oral y escrita.
- Toma de decisiones.
- Habilidades en las relaciones interpersonales.
RESOLUCIÓN DE PROBLEMAS
- Capacidad de análisis y síntesis.
- Razonamiento crítico.
- Creatividad.
EXPOSICIONES
- Comunicación oral y escrita.
- Creatividad.
- Toma de decisiones.
DEBATE
- Capacidad de análisis y síntesis.
- Razonamiento crítico.
- Comunicación oral y escrita.
- Creatividad.
- Toma de decisiones.
- Habilidades en las relaciones interpersonales.
BÚSQUEDA DE INFORMACIÓN
- Capacidad de análisis y síntesis.
- Razonamiento crítico.
- Creatividad.
- Toma de decisiones.
REALIZACIÓN DE UN TRABAJO ACADÉMICAMENTE DIRIGIDO
Para superar la asignatura, los alumnos deberán realizar un trabajo consistente
en la aplicación de los conocimientos teóricos/prácticos estudiados a un caso
práctico concreto orientado al desarrollo de un proyecto. Este trabajo se
realizará en grupos formados por tres alumnos y tendrá un seguimiento periódico
mediante revisiones periódicas del grupo de trabajo con el profesor.
En el desarrollo de este trabajo, se desarrollarán las siguientes competencias
genéricas:
- Aprendizaje autónomo.
- Motivación por la calidad.
- Capacidad de organización y planificación.
- Comunicación oral y escrita.
- Toma de decisiones.
- Capacidad de análisis y síntesis.
- Razonamiento crítico.
- Creatividad.
Metodología
Se promoverá una metodología activa que fomente la participación activa del
alumno en el desarrollo de las clases y el autoaprendizaje del alumno. Para
ello se utilizarán los siguientes métodos docentes:
* Clases de teoría
Estas clases se utilizarán para la exposición de los contenidos teóricos de la
asignatura. Las exposiciones de los temas deben seguir un esquema básico en su
presentación que incluirá una síntesis de los conceptos estudiados en las
lecciones anteriores, los objetivos y puntos del tema a desarrollar, y
finalmente un resumen y conclusiones sobre los conceptos introducidos.
En el desarrollo de estas clases, los alumnos realizarán las siguientes
actividades:
- Análisis, debate y discusión de casos prácticos.
- Trabajo en equipo.
- Realización de trabajos.
- Exposiciones de los trabajos.
* Clases prácticas
Son un medio complementario muy importante a las clases de teoría y son
fundamentales para una buena comprensión de la asignatura. En estas clases el
profesor planteará ejercicios y supuestos prácticos que los alumnos deben
resolver individualmente antes de enfrentarse a la solución del trabajo
académicamente dirigido. En el desarrollo de estas clases, los alumnos
realizarán las siguientes actividades:
- Análisis, debate y discusión de lecturas propuestas.
- Trabajo en equipo.
- Realización de trabajos.
- Exposiciones de los trabajos.
* Aprendizaje basado en proyectos
- Los contenidos teóricos y prácticos de la asignatura se trabajarán
utilizando esta técnica de manera que se promuevan las capacidades de aprendizaje
autónomo y planificación de los alumnos. El profesor diseñará los requisitos del
proyecto que considere necesarios para que el alumno adquiera los conocimientos
indicados en los objetivos de la asignatura y promoverá la utilización activa de
fuentes de información.
Se utilizará el campus virtual como herramienta de apoyo para la docencia.
Estarán disponibles herramientas de comunicación, foros especializados,
tutorías electrónicas privadas, correo electrónico y material docente en
formato digital.
Distribución de horas de trabajo del alumno/a
Nº de Horas (indicar total): 100
- Clases Teóricas: 16
- Clases Prácticas: 16
- Exposiciones y Seminarios: 1
- Tutorías Especializadas (presenciales o virtuales):
- Colectivas: 5
- Individules: 1
- Realización de Actividades Académicas Dirigidas:
- Con presencia del profesorado: 6
- Sin presencia del profesorado: 28
- Otro Trabajo Personal Autónomo:
- Horas de estudio: 24
- Preparación de Trabajo Personal: 1
- ...
- Realización de Exámenes:
- Examen escrito: 2
- Exámenes orales (control del Trabajo Personal):
Criterios y Sistemas de Evaluación
Se realizará una evaluación continúa del trabajo del alumno en la asignatura en
la que se valorará tanto los conocimientos específicos adquiridos como las
competencias genéricas.
Los conocimientos específicos se evaluarán mediante el trabajo realizado durante
el curso, prestando especial atención en la evolución del mismo y en la
aplicación de los conocimientos impartidos en la fase teórica. La evaluación de
las competencias transversales se llevarán a cabo
valorando la participación de los alumnos en las actividades propuestas por el
profesor.
A continuación se detallan los criterios de evaluación, las técnicas de
evaluación y el sistema de calificación de los alumnos.
* Criterios de evaluación
- Precisión y rigurosidad en el conocimiento de los temas tratados.
- Corrección técnica y formal de los trabajos realizados.
- Calidad de las exposiciones.
- Conocimiento y utilización de las técnicas estudiadas.
- Interés y grado de compromiso en su proceso de aprendizaje.
- Participación en las clases y actividades propuestas.
- Participación y calidad de las intervenciones en los debates y en los foros
del campus virtual.
* Técnicas de evaluación
- Desarrollo de un trabajo en grupo de carácter técnico.
- Exposiciones orales.
- Auto-evaluación y evaluación por pares basada en escalas de valoración y
rúbricas
- Examen.
* Sistema de Calificación
La calificación final de la asignatura se obtendrá mediante una media ponderada
de la calificación del examen y la de la aplicación web realizada.
Al ser el proceso de desarrollo iterativo, se plantearán entregas parciales en
varias fases. Aquellos trabajos que no cumplan los mínimos exigidos deberán
realizar una fase de desarrollo adicional para mejorar/completar el trabajo.
Para aprobar deberá de cumplirse las distintas entregas y hacer una aplicación
adecuada de los contenidos teóricos y prácticos.
Recursos Bibliográficos
- Leon Shklar, Richard Rosen: "Web Application Architecture. Principles,
protocols and practices", 2ª edición, Wiley & Sons, 2003.
- G. Kappel et al. (eds): "Web Engineering. The Discipline of Systematic
Development of Web Applications", John Wiley & Sons, 2006.
- D. Rosenberg, M. Stephens: "Use Case Driven Object Modeling with UMLTheory and
Practice", Apress, 2007.
- D. Rosenberg, M. Collins-Cope, M. Stephens: "Agile Development with ICONIX
Process: People, Process, and Pragmatism", Apress, 2005.
- Jim Conallen: "Building Web Applications with UML", 2ª ed., Addison-Wesley,
2002
- M. Fowler et al.: "Patterns of Enterprise Application Architecture",
Addison-Wesley, 2002
- L. Richardson & S. Ruby: "RESTful Web Services", O'Reilly, 2007.
- C. Gross: "Apress, Ajax Patterns and Best Practices", Apress, 2006
- Dierk Koenig et al.: "Groovy in action", Manning, 2007.
- Graeme Rocher: "The Definitive Guide to Grails", Apress, 2009.
- Seth Ladd: "Expert Spring MVC and Web Flow", Apress, 2006.
- Craig Walls: "Spring in action", Manning, 2008.
- Neal Ford: "Art of Java Web Development", Manning, 2004
- Tim Downey: "Web Development with Java Using Hibernate, JSPs and Servlets",
Springer, 2007
- Gustavo Rossi, Oscar Pastor, Daniel Schwabe, Luis Olsina (eds.): "Web
Engineering: Modelling and Implementing Web Applications", Springer, 2008
- Dave Thomas, David H. Hansson: "Agile Web development with Rails", The
Pragmatic Bookshelf, 2nd. ed., 2006.
- Russ Olsen: "Design Patterns in Ruby", Addison-Wesley Professional, 2007
- Adrian Holovaty, Jacob Kaplan-Moss: "The Django Book", Apress, 2007
[http://www.djangobook.com/]
- George Schlossnagle, "Advanced PHP Programming", Sams, 2004.
- Philip GreenSpun, "Software Engineering for Internet Applications"
[http://philip.greenspun.com/seia/]
- 37 Signals, "Getting Reals", [http://gettingreal.37signals.com/].
Referencias
===========
Página de estándares de Internet
http://www.w3.org
Página oficial de Sun sobre Java
http://java.sun.com
Portal de grails:
http://grails.org/