Profesores
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 las siguientes asignaturas
optativas del perfil Desarrollo de Sistemas Software ofertadas a los
alumnos:
- 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 siguientes:
- 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
Nº de Horas (indicar total): 112,5
- Clases Teóricas: 9
- Clases Prácticas: 11
- Exposiciones y Seminarios: 2
- Tutorías Especializadas (presenciales o virtuales):
- Colectivas: 4
- Individules: 1
- Realización de Actividades Académicas Dirigidas:
- Con presencia del profesor: 18
- Sin presencia del profesor: 15
- Otro Trabajo Personal Autónomo:
- Horas de estudio: 28,5
- Preparación de Trabajo Personal: 13,5
- ...
- 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/
El presente documento es propiedad de la Universidad de Cádiz y forma parte de
su Sistema de Gestión de Calidad Docente.