38205 - ARQUITECTURA DE SISTEMAS SOFTWARE (2017-18)
Datos generales
Código:
38205
Profesor/a responsable:
GILART IGLESIAS, VIRGILIO
Crdts. ECTS:
3,00
Créditos teóricos:
0,60
Créditos prácticos:
0,60
Carga no presencial:
1,80
Departamentos con docencia
-
Dep.:
TECNOLOGÍA INFORMÁTICA Y COMPUTACIÓN
Área: ARQUITECTURA Y TECNOLOGIA DE COMPUTADORES
Créditos teóricos: 0,6
Créditos prácticos: 0,6
Este dep. es responsable de la asignatura.
Este dep. es responsable del acta.
Estudios en los que se imparte
-
MÁSTER UNIVERSITARIO EN DESARROLLO DE APLICACIONES Y SERVICIOS WEB
Tipo de asignatura: OBLIGATORIA (Curso: 1)
Competencias y objetivos
Contexto de la asignatura para el curso 2017-18
La necesidad de interconectar los diferentes sistemas informáticos en una organización o entre diferentes organizaciones para mejorar la gestión de sus procesos o para ofrecer servicios que permitan mejorar su posicionamiento en el mercado frente a los competidores es un hecho innegable. Sin embargo, este proceso de integración es una tarea compleja debido a la heterogeneidad existente entre las tecnologías y sistemas informáticos y a la falta de estándares orientados a la integración. En este sentido, el paradigma SOA y las tecnologías de servicios Web se han convertido en una de los principales soluciones a estos problemas, introduciendo una serie de metodologías, patrones arquitectónicos y estándares para su consecución.
Competencias de la asignatura (verificadas por ANECA en grados y másteres oficiales)
Competencias Generales del Título (CG)
- B1 : Capacidad para conocer y aplicar procesos y metodologías de desarrollo software basadas en el desarrollo dirigido por modelos para obtener de aplicaciones Web distribuidas.
- B13 : Capacidad de diseñar sistemas donde se consideren los aspectos de usabilidad y accesibilidad mediante técnicas diseño centrado en el usuario.
- B2 : Capacidad de capturar, definir y especificar los requisitos de usuario mediante técnicas basadas de diseño centrado en el usuario y en desarrollo dirigido por modelos.
- B3 : Capacidad para detectar y aplicar las mejores prácticas fundamentadas en la aplicación de los patrones en cualquier fase de desarrollo software.
- B4 : Capacidad para diseñar e implementar interfaces de usuario siguiendo los requisitos de calidad.
- B5 : Capacidad para capturar, diseñar e implementar las pruebas necesarias que aseguren la calidad de un sistema software.
Competencias Básicas y del MECES (Marco Español de Cualificaciones para la Educación Superior)
- A1 : Capacidad de análisis y síntesis.
- A10 : Habilidad de adaptación al ambiente cambiante propio de la disciplina, sabiendo aplicar los conocimientos adquiridos y resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
- A11 : Capacidad de creatividad.
- A12 : Motivación por la calidad.
- A13 : Capacidad para mostrar información de forma clara atendiendo a un amplio conjunto de discapacidades técnicas, físicas y psíquicas.
- A2 : Capacidad de organización y planificación.
- A3 : Capacidad de comunicación oral y escrita de los conocimientos y conclusiones a públicos especializados y no especializados de un modo claro y sin ambigüedades.
- A4 : Capacidad de gestión de la información y de los recursos disponibles.
- A5 : Capacidad de trabajar en equipo con iniciativa y espíritu emprendedor.
- A6 : Habilidades en las relaciones interpersonales.
- A7 : Capacidad de razonamiento y extracción de conclusiones.
- A8 : Compromiso ético y respeto por la propiedad intelectual.
- A9 : Habilidad de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida auto-dirigido o autónomo.
Competencias Específicas Obligatorias:>>De Ingeniería del Software Avanzada
- C1.1 : Capacidad para aprender y aplicar las técnicas y los conceptos principales del desarrollo dirigido por modelos que permitan establecer una clara trazabilidad entre los modelos que especifican el sistema y la implementación final obtenida.
- C1.10 : Conocer e interpretar los estándares, normas y guías de usabilidad y accesibilidad.
- C1.11 : Capacidad para aprender a usar los términos y conceptos usados en diseño gráfico y capacidad para adoptar guías de estilo en los interfaces creados.
- C1.12 : Conocer el comportamiento medio de un usuario frente a los interfaces de usuario y adaptar el diseño de éstos en función de ese conocimiento.
- C1.13 : Capacidad para diseñar, implementar y ejecutar pruebas de stress/carga sobre el sistema. Saber analizar los resultados obtenidos para conocer los límites soportados por el sistema. Saber identificar los puntos críticos (cuellos de botella) de la aplicación.
- C1.14 : Capacidad para diseñar, implementar y ejecutar pruebas unitarias, funcionales y de integración partiendo de los requisitos especificados para el proyecto.
- C1.15 : Capacidad para diseñar, implementar y ejecutar pruebas de stress/carga sobre el sistema. Saber analizar los resultados obtenidos para conocer los límites soportados por el sistema. Saber identificar los puntos críticos (cuellos de botella) de la aplicación.
- C1.16 : Capacidad para realizar el análisis de los resultados obtenidos a partir de las pruebas para evaluar el nivel de calidad obtenido.
- C1.17 : Diseñar y desarrollar soluciones basadas en el paradigma de Arquitectura Orientada a Servicios atendiendo a los parámetros de adaptación de las TIC a los cambios en los requerimientos de los procesos de negocio de las organizaciones.
- C1.18 : Diseñar e implantar sistemas e infraestructuras para las arquitecturas software atendiendo a características de alta disponibilidad, tolerancia a fallos y continuidad en el negocio.
- C1.19 : Comprender y saber aplicar los principales paradigmas de la computación distribuida e Internet, teniendo en cuenta los requerimientos del proyecto.
- C1.2 : Capacidad para aplicar el desarrollo dirigido por modelos a dominios específicos mediante lenguajes de dominio específico (DSL) y mediante la utilización de perfiles sobre el lenguaje de modelado estándar (UML).
- C1.20 : Realizar un plan de iteración que permita planificar y gestionar el desarrollo de una aplicación gestionando el ámbito, los recursos disponibles, la duración del proyecto y los costes.
- C1.21 : Utilizar de forma efectiva una herramienta de control de versiones para realizar el desarrollo en equipo de una aplicación Web distribuida.
- C1.22 : Documentar de forma adecuada el desarrollo de una aplicación Web distribuida.
- C1.23 : Dada una especificación de una aplicación, realizar la elección del conjunto de tecnologías adecuadas aplicables para la implementación de dicha aplicación.
- C1.24 : Capacidad para definir el modelo de dominio a partir de los requisitos de usuario.
- C1.25 : Capacidad para asignar responsabilidades, contratos de operación sobre las diferentes clases de dominio utilizando criterios de bajo acoplamiento, alta cohesión y complejidad manejable.
- C1.3 : Capacidad para aprender y saber aplicar cuando debemos desarrollar un proyecto de una aplicación Web distribuida utilizando una metodología de desarrollo dirigida por modelos.
- C1.4 : Capacidad para aprender y saber aplicar cuando debemos desarrollar un proyecto de una aplicación Web distribuida utilizando una metodología de desarrollo ágil.
- C1.5 : Capacidad para asociar a cada actividad del proceso software el conjunto de artefactos (especificaciones, diagramas, código, etc.) que le son aplicables.
- C1.6 : Capacidad de capturar, definir y especificar los requisitos del usuario que permitan establecer de forma trazable el desarrollo, la interfaz de usuarios y pruebas del sistema software.
- C1.7 : Capacidad para detectar y aplicar la aplicación de los patrones de diseño detallado.
- C1.8 : Capacidad para detectar y aplicar la aplicación de los patrones de mejores prácticas en aplicaciones Web distribuidas.
- C1.9 : Capacidad para diseñar e implementar interfaces de usuario siguiendo los requisitos de calidad como usabilidad, seguridad y rendimiento.
Competencia exclusiva de la asignatura
Sin datos
Resultados de aprendizaje (Objetivos formativos)
- Desarrollo de un sistema, en el cual tendrán que ir realizando aplicando los conocimientos adquiridos.
- Adquirir conocimientos sobre los diferentes tipos de desarrollo actuales y saber cual aplicar a un sistema.
- Aplicar los conceptos básicos de desarrollo dirigido por modelos, como definir los modelos del sistema, formalizarlos mediante metamodelo y las transformaciones.
- Utilizar herramientas DSDM para modelar el sistema propuesto. Evaluar diferentes herramientas.
- Adquirir conocimientos sobre los diferentes tipos de patrones que se van a ir describiendo en la asignatura.
- Saber si debemos o no aplicar un determinado patrón, en función de las fuerzas del patrón.
- Implementar los diferentes patrones en las plataformas. NET y Java.
- Diseñar una aplicación en la que se proponga el uso de patrones.
- Diseñar una aplicación Web distribuida siguiendo las mejores prácticas de diseño centrado en el usuario
- Evaluar la usabilidad y la accesibilidad de una aplicación Web.
- Realizar un borrador correcto (que cumpla los principios de usabilidad y de buen diseño) de la interfaz de usuario de una aplicación Web.
- Realizar un borrador correcto de la interfaz de usuario de una aplicación con un cliente rico.
- Diseñar un plan de pruebas adecuado para una determinada aplicación.
- Familiarizarse con el uso de un entorno automático para desarrollar las pruebas.
- Gestionar un proceso de pruebas para una aplicación.
- Dada una especificación, decidir qué diagramas son los más adecuados para reflejar la arquitectura del sistema, en función de las necesidades del desarrollo, haciendo un uso efectivo del uso de encapsulación, herencia e interfaces.
- Dada una especificación, diseñar una arquitectura adecuada en función de que sean necesarias las siguientes características: escalabilidad, mantenibilidad, fiabilidad, extensibilidad, rendimiento, gestionabilidad, y seguridad.
- Dada una arquitectura, detectar beneficios y debilidades potenciales de la misma, para corregir dichas debilidades.
- Dada una especificación arquitectónica de un sistema, identificar los "lugares" adecuados para la implementación de características de seguridad específicas, indicando los mecanismos concretos a aplicar.
- Dada una especificación de una aplicación, realizar la elección del conjunto de tecnologías adecuadas aplicables para la implementación de dicha aplicación.
Objetivos específicos indicados por el profesorado para el curso 2017-18
Conocimientos, destrezas y aptitudes que los estudiantes deben adquirir al finalizar el estudio de la materia. Los alumnos serán capaces de:
Conocimientos
• 405-C1: Conocimiento de los principales paradigmas de la computación distribuida.
• 405-C2: Conocer los principales modelos de integración de aplicaciones distribuidas.
• 405-C3: Explicar el efecto de las siguientes características sobre arquitecturas multicapa: escalabilidad, mantenibilidad, fiabilidad, extensibilidad, rendimiento, capacidad de gestion, y seguridad.
• 405-C4: Explicar los beneficios y debilidades potenciales de las arquitecturas descritas.
• 405-C5: Explicar la importancia del paradigma de arquitecturas orientadas a servicio.
• 405-C6: Conocer las principales tecnologías basadas en este paradigma.
• 405-C7: Conocer la tecnología WS-* centrada en el paradigma SOA.
• 405-C8: Conocer la implementación Apache AXIS y JUDDI para el desarrollo de arquitecturas SOA basadas en Servicios Web.
• 405-C9: Conocer y explicar las principales características de calidad de servicio (QoS) que enriquezcan las prestaciones del sistema.
Destrezas
• 405-D01: Dada una especificación identificar el paradigma más adecuado para el diseño de la arquitectura del sistema.
• 405-D02: Dada una especificación, diseñar una arquitectura adecuada en función de que sean necesarias las siguientes características: escalabilidad, mantenibilidad, fiabilidad, extensibilidad, rendimiento, capacidad de gestión, y seguridad.
• 405-D03: Dada una arquitectura, trazar las estrategias de integración de la aplicación.
• 405-D04: Dada una arquitectura, detectar beneficios y debilidades potenciales de la misma, para corregir dichas debilidades.
• 405-D05: Ser capaz de diseñar aplicaciones basadas en SOA obteniendo los beneficios de dicho paradigma.
• 405-D06: Saber elegir las tecnologías basadas en SOA adecuadas a cada proyecto.
• 405-D07: Poder diseñar aplicaciones SOA mediante el uso de servicios Web, en concreto usando Apache AXIS.
• 405-D08: Diferenciar entre aplicaciones basadas en Servicios Web y Arquitecturas Orientadas a Servicios implementadas mediante Servicios Web.
• 405-D09: Ser capaz de afrontar problemas de escalabilidad, continuidad en el negocio y tolerancia a fallos.
• 405-D10: Poder diseñar escenarios complejos con multitud de servidores web, contenedores y servidores de aplicaciones.
Aptitudes
• 405-A01: Capacidad de abstracción para poder centrarse en diseños de alto nivel.
• 405-A02: Motivación para el estudio de nuevas tecnologías, así como su idoneidad para la creación de diseños arquitectónicos adecuados.
• 405-A03: Interés por conocer los paradigmas de computación distribuida y cuando aplicar cada uno.
• 405-A04: Actitud crítica ante diseños basados en SOA y que no cumplen sus requisitos.
• 405-A05: Actitud crítica en cuanto a los posibles problemas de seguridad y rendimiento que pueden plantearse en las arquitecturas orientadas a servicios.
Contenidos y bibliografía
Contenidos para el curso 2017-18
Contenidos de la materia y número de horas de sesiones teórico-prácticas presenciales dedicadas a cada uno. Las horas no presenciales dedicadas a cada tema se distribuyen de forma proporcional al número de horas presenciales.
- Arquitectura Orientadas a Servicio y Microservicios
- Fundamentos y principios de SOA y Microservicios
- Metodología de diseño SOA y Microservicios (MSOAM)
- Tecnologías para la implementación de SOA y Microservicios
- Servicios Web y Servicios Web 2.0
- Servicios RESTFul
- Estnadarización de contratos: WSDL y RAML
- Apache Axis2 y Juddi
- NodeJS y Express
- Composición de Servicios
- Introducción a la composición de servicios
- Orquestación de Servicios Web: WS-BPEL
- Apache ODE
- Eclipse BPEL Designer
Enlaces relacionados
Sin datos
Bibliografía
Service-Oriented Architecture : analysis and design for services and microservices | |
Autor(es): | Erl, Thomas |
Edición: | - : Pearson, 2016; |
ISBN: | 0-13-385870-7 |
Categoría: | Básico |
SOA with REST : principles, patterns & constraints for building enterprise solutions with REST | |
Autor(es): | Earl, Thomas |
Edición: | Upper Saddle River : Prentice Hall, 2013; |
ISBN: | 0-13-701251-9 |
Categoría: | Básico |
Service-oriented architecture : concepts, technology, and design | |
Autor(es): | Erl, Thomas |
Edición: | Upper Saddle River : Prentice Hall , 2005; |
ISBN: | 0-13-185858-0 |
Categoría: | Sin especificar |
SOA : principles of service design | |
Autor(es): | Erl, Thomas |
Edición: | Upper Saddle River, NJ : Prentice Hall, 2017; |
ISBN: | 978-0-13-469551-8 |
Categoría: | Sin especificar |
Evaluación
Instrumentos y criterios de evaluación 2017-18
La nota final se obtendrá de la media ponderada de las tres partes de la asignatura teniendo que ser dicha nota final mayor o igual a 5 para superar la asignatura.
No hay examen final.
La evaluación en las convocatorias extraordinarias consiste en una recuperación de la evaluación continua, con la entrega de las tareas que quedaron pendientes (nota de actividad < 5), junto con un informe de su realización y una defensa presencial de las mismas ante los profesores de la asignatura.
La nota de las actividades entregadas durante el curso se le guardará al estudiante si así lo desea.
Descripción | Criterio | Tipo | Ponderación |
Actividades no presenciales | En cada sesión se definen actividades no presenciales puntuables que van contribuyendo a la nota final. Puesto que se utiliza moodle como plataforma docente, es allí donde se enuncian y se entregan. |
ACTIVIDADES DE EVALUACIÓN DURANTE EL SEMESTRE | 50 |
Actividades semanales presenciales | En cada sesión se definen actividades presenciales puntuables que van contribuyendo a la nota final. Puesto que se utiliza moodle como plataforma docente, es allí donde se enuncian y se entregan.
|
ACTIVIDADES DE EVALUACIÓN DURANTE EL SEMESTRE | 50 |
Fechas de pruebas de evaluación oficiales para el curso 2017-18
Convocatoria | Fecha | Hora | Grupo - Aula(s) asignada(s) | Observaciones |
(C3) Periodo ordinario para asignaturas de segundo semestre y anuales | 18/06/2018 | Prácticas | ||
(C4) Pruebas extraordinarias para asignaturas de grado y máster | 04/07/2018 | Prácticas |
Profesorado
GILART IGLESIAS, VIRGILIO
Profesor/a responsable
-
CLASE TEÓRICA:
Grupos:
- 1
-
PRÁCTICAS CON ORDENADOR:
Grupos:
- 1
MARCOS JORQUERA, DIEGO
-
CLASE TEÓRICA:
Grupos:
- 1
-
PRÁCTICAS CON ORDENADOR:
Grupos:
- 1
Grupos
CLASE TEÓRICA
Grupo | Semestre | Turno | Idioma | Matriculados |
---|---|---|---|---|
Gr. 1 (CLASE TEÓRICA) : GRUPO 1 | AN | Tarde | Castellano | 9 |
PRÁCTICAS CON ORDENADOR
Grupo | Semestre | Turno | Idioma | Matriculados |
---|---|---|---|---|
Gr. 1 (PRÁCTICAS CON ORDENADOR) : GRUPO 1 | AN | Tarde | Castellano | 9 |
Horarios
CLASE TEÓRICA
PRÁCTICAS CON ORDENADOR