Aumentar letras   Inicio   Información   Contactar   Mapa
Català   English

Diseño de Sistemas Basados en la Web (DSBW)

Créditos Dept.
6.0 ECTS LSI

Profesores

Responsable:  Carles Farre Tost (farre@lsi.upc.edu)
Otros:Jordi Pradel Miquel (jpradel@lsi.upc.edu)

Objectivos Generales

Extender e integrar los conocimientos adquiridos en asignaturas anteriores de ingeniería del software para diseñar aplicaciones distribuidas y basadas en la web con orientación a objetos, aplicando patrones de diseño y usando como notación el lenguaje UML.

Objectivos Específicos

Conocimientos

  1. Conocer las tecnologías Web necesarias para el desarrollo de aplicaciones Web.
  2. Conocer los principales modelos/patrones de negocio para sistemas basados en el Web.
  3. Conocer la metodología de desarrollo de las aplicaciones Web.
  4. Conocer los elementos de UML específicos para el diseño de aplicaciones Web.
  5. Conocer los patrones de diseño para el diseño de aplicaciones Web.
  6. Conocer XML y sus aplicaciones en el desarrollo web.

Habilidades

  1. Saber aplicar e integrar los conocimientos adquiridos en las asignaturas de Ingeniería del Software, adaptándolos si es necesario a las especificidades del desarrollo web.
  2. Saber construir los diferentes modelos UML necesarios para documentar el desarrollo de las aplicaciones web.
  3. Saber identificar los patrones que se pueden aplicar en un diseño web, y aplicarlos correctamente.
  4. Saber implementar, desplegar y configurar aplicaciones web.
  5. Saber identificar los principales riesgos de seguridad de las aplicaciones web y las estrategias para solucionarlos.
  6. Saber diseñar y ejecutar pruebas para aplicaciones web

Competencias

  1. Capacidad para diseñar sistemas, componentes o procesos que se ajusten a unes necesidades, usando los métodos, técnicas y herramientas más adecuadas en cada caso.
  2. Capacidad para argumentar lógicamente las decisiones tomadas, el trabajo realizado o un punto de vista. Capacidad para dar opiniones, razonamientos y justificaciones fundamentadas con el objetivo de convencer.
  3. Capacidad para tomar decisiones en presencia de incertidumbre o de requisitos contradictorios.
  4. Capacidad para estudiar de diversas fuentes, identificando cuándo la información recibida en clase no es suficiente y buscando información complementaria.
  5. Capacidad para aprender de forma autónoma.
  6. Capacidad para trabajar efectivamente en grupos pequeños de personas para la resolución de un problema de dificultad media.
  7. Capacidad para presentar por escrito, de forma clara y correcta, los resultados del trabajo propio (al nivel de documentar una entrega de prácticas).

Contenidos

Horas estimadas de:

T P L Alt L Ext. Est O. Ext.
Teoria Problemas Laboratorio Otras actividades Laboratorio externo Estudio Otras horas fuera del horario fijado

1. Introducción
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 4,0 0 0 0 6,0 0 12,0

2. Tecnologías web
T      P      L      Alt    L Ext. Est    O. Ext. Total 
4,0 2,0 6,0 0 6,0 6,0 0 24,0
Repaso y estudio de las tecnologías utilizadas para el desarrollo de aplicaciones web.

3. Metodología para el desarrollo de aplicaciones web. Modelos de negocio para sistemas basados en el web.
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 2,0 0 0 0 4,0 0 8,0
Repaso de los conceptos fundamentales sobre el ciclo de vida del desarrollo del software, haciendo especial énfasis en las particularidades del entorno web.

4. Análisis y especificación de requisitos de aplicaciones web.
T      P      L      Alt    L Ext. Est    O. Ext. Total 
1,0 0 0 0 0 1,0 0 2,0

5. Diseño: Introducción, UX Model y arquitectura física y lógica de una aplicación web.
T      P      L      Alt    L Ext. Est    O. Ext. Total 
3,0 6,0 0 0 0 9,0 0 18,0

6. Diseño: notación UML para el diseño web.
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 2,0 0 0 0 4,0 0 8,0

7. Diseño: patrones para el diseño de aplicaciones web
T      P      L      Alt    L Ext. Est    O. Ext. Total 
8,0 12,0 4,0 0 4,0 20,0 0 48,0

8. Técnicas de prueba de aplicaciones web.
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 2,0 0 2,0 2,0 0 8,0

9. Seguridad de las aplicaciones web
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 0 0 0 2,0 0 4,0

10. XML y Web
T      P      L      Alt    L Ext. Est    O. Ext. Total 
2,0 0 2,0 0 2,0 2,0 0 8,0


Total por tipo T      P      L      Alt    L Ext. Est    O. Ext. Total 
28,0 28,0 14,0 0 14,0 56,0 0 140,0
Horas adicionales dedicadas a la evaluación 3,0
Total horas de trabajo para el estudiante 143,0

Metodología docente

Clases de teoría: 2 horas semana.

En las clases de teoría los profesores presentan los contenidos esenciales de la asignatura. Normalmente los profesores usan transparencias, que los estudiantes pueden (y deberían) obtener antes de las clases. Otros contenidos de la asignatura (no tan esenciales) no se presentan en clase, pero deben ser estudiados de manera autónoma por los propios estudiantes.

Estos contenidos son tan "obligatorios" como los otros, simplemente han de estudiarse de manera diferente. Los profesores indican en qué momento del curso se deben haber estudiado estos contenidos y los recursos docentes que se pueden usar. Muchas veces estos recursos están escritos en inglés.

Clases de problemas: 2 horas semana.

En las clases de problemas se practican los contenidos de la asignatura (los presentados en clase y los adquiridos autónomamente) mediante la realización de problemas. A veces se requiere que los problemas se hayan resuelto (o al menos intentado resolver) antes de la clase, y entonces la clase se destina a analizar y discutir colectivamente las mejores soluciones. Otras veces el problema se plantea y se ha de resolver en la misma clase mediante técnicas basadas en el aprendizaje cooperativo. En ciertas ocasiones, los estudiantes seran invitados a dar pequeñas charlas sobre algún tema de interés.

Clases de laboratorio: 2 horas cada quince días.

Después de una breve introducción para motivar las tareas a realizar, los estudiantes deberán hacer diversas tareas con el ordenador (instalar, configurar, implementar, probar, monitorizar, etc.), de acuerdo con un plan de trabajo preestablecido y una lista de objetivos, el alcance total o parcial de los cuales determinará la evaluación de aquella sesión de laboratorio.

Método de evaluación

La evaluación global de la asignatura tiene en cuenta cuatro elementos:

+ Nota de Laboratorio (NLab). Durante el curso, el estudiante tiene que participar en un mínimo de 5 sesiones de laboratorio. En cada sesión, el alumno que participe obtendrá una nota en función del grado de resolución de los objetivos preestablecidos. La Nota de Laboratorio será el promedio de las 5 mejores sesiones.

+ Nota de Ejercicios (NEj). Durante el curso, el estudiante ha de realizar y presentar personalmente -o en grupo, dependiendo del caso- un mínimo de 7 ejercicios correspondientes a sesiones de problemas diferentes. La Nota de Ejercicios será el promedio de los 7 mejores ejercicios.

+ Nota del Examen Final (NEF).

+ Nota de Participación (NPart). Esta nota valora la participación activa de los alumnos tanto en las clases de teoría como en las de problemas, así como también la participación en el foro electrónico de la asignatura.

Nota Actos Evaluación (NAE) = 0.25*NLab + MAX((0.25*NEj + 0.45*NEF), 0.70*NEF)

Nota Final = Min((NAE + 0.10*NPart), 10)

Bibliografía básica

  • CONALLEN, Jim Building Web Aplications wiht UML, 2on Edition, Addison-Wesley, 2002.
  • PREESSMAN, Roger S.; Lowe, David Web Engineering: A Practioner's Approach, McGraw-Hill Higher Education, 2008.
  • KAPPEL, Gerti et al. (Eds.) Web Engineering, John Wiley & Sons, 2006.
  • SHKLAR, Leon et al. Web Application Architecture: Principles, Protocols and Practices, John Wiley & Sons, 2003.

Bibliografía complementaria

  • FOWLER, Martin Patterns of Enterprise Application Architecture, Addison Wesley, 2002.
  • CERI, Stefano et al. Designing Data-Intensive Web Applications, Morgan Kaufmann, 2002.
  • JOHNSON, Rod; HOELLER, Juergen Expert One-on-One J2EE Development without EJB, Wiley, 2004.
  • ALUR, Deepak et al. Core J2EE Patterns: Best Practices and Design Strategies, 2on Edition, Prentice Hall, 2003.
  • VAN DER VLIST, Eric et al. Professional Web 2.0 Programming, Wiley, 2007.

Capacidades previas

1) Saber qué es una especificación (formal) en UML/OCL 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.

A la vista de estas capacidades, se sugiere como prerrequisito la asignatura siguiente: Ingeniería del Software II



 
logo FIB © Facultad de Informática de Barcelona - webmaster@fib.upc.edu - RSS RSS