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



Competencias y objetivos

Información provisional. Pendiente de aprobación por el Consejo de Departamento.

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.

  1. Arquitectura Orientadas a Servicio y Microservicios
    • Fundamentos y principios de SOA y Microservicios
    • Metodología de diseño SOA y Microservicios (MSOAM) 
  2. 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
  3. 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

Información provisional. Pendiente de aprobación por el Consejo de Departamento.

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

Grupo Fecha inicio Fecha fin Día Hora inicio Hora fin Aula
1 30/10/2017 06/11/2017 LUN 16:00 18:30 0039PS004  
1 11/12/2017 15/01/2018 LUN 16:00 18:30 0039PS004  

PRÁCTICAS CON ORDENADOR

Grupo Fecha inicio Fecha fin Día Hora inicio Hora fin Aula
1 30/10/2017 06/11/2017 LUN 18:30 21:00 0039PS004  
1 11/12/2017 15/01/2018 LUN 18:30 21:00 0039PS004