Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Area IV: Pr. y Met. de Des. del Soft.
(Programa del año 2017)
I - Oferta Académica
Materia Carrera Plan Año Periodo
INGENIERIA WEB TCO.UNIV.EN WEB 08/13 2017 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
ROQUÉ FOURCADE, LUIS ERNESTO Prof. Responsable P.Adj Semi 20 Hs
SANCHEZ, ALEJANDRO Responsable de Práctico JTP Semi 20 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
2 Hs.  Hs.  Hs. 6 Hs. 8 Hs. 1º Cuatrimestre 13/03/2017 23/04/2017 15 120
IV - Fundamentación
El desarrollo de aplicaciones web se ha visto impactado por múltiples tecnologías que confluyen en un ambiente heterogéneo como Internet. Este nuevo panorama tecnológico obliga a reconsiderar el grado de importancia asignado al diseño arquitectural ubicándolo en el centro de la escena y convirtiéndolo en la médula de los procesos de desarrollo de software. En ese sentido los métodos y técnicas de desarrollo de software recientes, asignan al diseño arquitectural un rol central, considerándolo desde etapas tempranas y ubicándolo en el eje que conduce la mayoría de las actividades de desarrollo.
En otro sentido también, la tecnología ha producido avances importantes en la identificación y especificación de una variedad de patrones arquitecturales, con diferentes grados de estandarización, que simplifican, aceleran y estandarizan el diseño arquitectural. Los métodos de desarrollo, a pesar del rol central que asignan al diseño arquitectural, no incorporan de manera formal el uso de estos patrones arquitecturales (más allá de aconsejar su uso) por diferentes motivos, entre los cuales se puede mencionar: mantener el grado de generalidad del método, el ritmo aún lento con que los métodos se adecuan a los avances tecnológicos, etc.
V - Objetivos
Formar a los alumnos en uso de metodologías de desarrollo incorporando patrones arquitecturales ampliamente utilizados en el diseño de arquitecturas para aplicaciones web.
VI - Contenidos
Unidad 1: Introducción al desarrollo de aplicaciones web
Historia y evolución de Modelos de Desarrollo de Software. Modelos de desarrollo centrados en la arquitectura. Arquitecturas Orientadas a Componentes. Arquitecturas Orientadas a Servicios. Patrones de Diseño. Patrones Arquitecturales. Patrones de Solución. Evolución tecnológica y patrones. Internet como ambiente para la ejecución de aplicaciones distribuidas y orientadas a componentes: Componentes, Integración, Aplicaciones compuestas. Revisión de Orientación a Objetos, Java, XML y UML.

Unidad 2: Patrones de Diseño
Patrones de Diseño. Fundamento, definición y uso. Tipificación y descripción. Catálogo de Patrones de Diseño. Categorías Creacional, Estructural y Comportamental. Especificación de Patrones de Diseño. Objetivo y motivación. Consecuencias de su uso (ventajas y desventajas). Aplicación. Estructura y colaboración. Implementación. Uso de Patrones de Diseño. Patrón de Diseño y Modelo de Diseño de Solución. Selección del Patrón de Diseño. Identificación de estructura y colaboración. Identificación de vocabulario en el dominio. Definición y especificación de clases, operaciones y propiedades. Implementación. Uso integrado de Patrones de Diseño. Impacto en estructura y colaboración. Uso metodológico de Patrones de Diseño. El método orientado por Patrones Arquitecturales y de Diseño.

Unidad 3: Desarrollo de aplicaciones Web con Patrones Arquitecturales y de Diseño
Introducción. JEE. Beneficios y principales características. MVC. Vista, Controlador y Modelo. Diseño de Aplicaciones JEE usando Patrones Arquitecturales y de Diseño. Introducción a la Vista. Contenedor Web. Servlets y JSP’s. Servlets, principales características. Ciclo de Vida. Principales métodos. Parámetros HttpServletRequest y HttpServletResponse. Invocación. Procesamiento del requerimiento. Elaboración y envío de la Respuesta. Técnicas avanzadas. Despacho y Filtros. Eventos de Ciclo de Vida. Sesiones. JavaServer Pages. Comparación con Servlets. Invocación. Elementos Básicos. Desarrollo centrado en componentes. Rol arquitectural de Servlets y JavaServer Pages. Comunicaciones. Remote Method Invocation (RMI). RMI y J2EE. Java Naming and Directory Interface (JNDI).Contenedor JEE y JNDI. Contexto Inicial. Búsqueda y referencia de recursos locales y remotos. Enterprise JavaBeans (EJB’s). Introducción. Tipos. Session, Entity y Message-Driven EJB’s. Arquitectura. Servidor y Contenedores EJB. Servicios provistos. Clientes de EJB’s. Clases e Interfaces de EJB’s. Despliegue y ejecución. Enterprise JavaBeans. Session Bean (Stateful and Stateless). Entity Bean. Message-Driven Bean. Principales características y rol arquitectural.

VII - Plan de Trabajos Prácticos
Trabajos Prácticos

Práctico 1: Ejercitación sobre Lenguaje de Programación Java y XML.
Práctico 2: Ejercitación sobre Patrones de Diseño.
Práctico 3: Ejercitación sobre Arquitecturas Web y Patrones Arquitecturales usando UML y J2EE.

Laboratorio
Desarrollo de un caso hasta especificación de diseño usando UML y Modelo Integrado de Patrones visto en la materia.
Los alumnos deben desarrollar un caso utilizando el enfoque dado en la materia de uso e integración de patrones arquitecturales a efectos de obtener una arquitectura adecuada para productos de software que se desempeñarán en un ambiente web.
Del mismo modo deberán aplicar las técnicas proporcionadas en la materia a efectos de orientar actividades de diseño en UML al uso de los patrones arquitecturales y de diseño mencionados.
Para aprobar el laboratorio, los alumnos deberán:
1. Seleccionar al menos 3 Escenarios de un Caso de Uso.
El Caso de Uso puede ser tomado de casos proporcionados por la cátedra o aportados por el alumno y aprobados por la cátedra.
2. Avanzar con los modelos UML de Casos de Uso, Modelo de Clases, Escenarios y Diagramas de Secuencia
2.1 Cada Diagrama de Secuencia debe avanzar hasta un punto en el que:
- Sea evidente la aplicación de las técnicas vistas en la materia.
- Sea visible un diseño arquitectural que satisfaga el modelo de integración de patrones visto en la materia.
- Sea visible de manera lógica y sin ambigüedades la posible implementación de un prototipo de los diagramas de secuencia.
Nota: El alumno puede opcionalmente presentar una implementación del prototipo, aunque no es exigible.
3. Entregar el formato impreso y digital del laboratorio.
VIII - Regimen de Aprobación
Condiciones de regularización
1. Aprobación de los Trabajos Prácticos.
2. Presentación y aprobación de los proyectos de Laboratorio.
3. Aprobación de 2 exámenes parciales teórico/prácticos con nota mayor o igual a 6 (seis) o sus correspondientes recuperaciones.
4. Tener un 60% de asistencia a clases teóricas, prácticas y de laboratorio.
5. Se otorga, tal como lo expresa la reglamentación vigente, dos recuperaciones por cada parcial.

Condiciones de aprobación
1. Por promoción: El alumno debe contar con las condiciones de regularización, una nota en los exámenes parciales mayor o igual a 7 (siete) y debe tener un 80% de asistencia a clases teóricas, prácticas y de laboratorio. Además, para promocionar deberá rendir una evaluación global integradora.
2. Examen Final, el cual podrá ser oral o escrito.
Condiciones de alumnos libres según lo dispuesto por Art 27 de Ord 13/03.CS.
IX - Bibliografía Básica
[1] Unified Modeling Language User Guide - Grady Booch, James Rumbaugh and Ivar Jacobson.
[2] Design Patterns: Elements of Reusable Object-Oriented Software - Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.
[3] The J2EE(TM) 1.4 Tutorial - http://java.sun.com/j2ee/1.4/docs/tutorial/doc/.
[4] Apuntes de la materia.
X - Bibliografia Complementaria
[1] Object-Oriented Software Engineering: A Use Case Driven Approach - Ivar Jacobson.
[2] Unified Modeling Language - http://www.omg.org/technology/documents/formal/uml.htm.
XI - Resumen de Objetivos
Utilizar patrones arquitecturales en el diseño de arquitecturas para aplicaciones web.
XII - Resumen del Programa
1. Introducción al desarrollo de aplicaciones web.
2. Patrones de diseño.
3. Desarrollo de aplicaciones Web con Patrones Arquitecturales y de Diseño.
XIII - Imprevistos