Ing. del software de componentes y sistemas distribuidos Código:  75.587    :  6
Consulta de los datos generales   Descripción   La asignatura en el conjunto del plan de estudios   Campos profesionales en el que se proyecta   Conocimientos previos   Información previa a la matrícula   Objetivos y competencias   Contenidos   Consulta de los recursos de aprendizaje de los que dispone la asignatura   Recursos de aprendizaje y herramientas de apoyo   Informaciones sobre la evaluación en la UOC   Consulta del modelo de evaluación  
Este es el plan docente de la asignatura para el segundo semestre del curso 2023-2024. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios.

Los continuos adelantos en informática y telecomunicaciones están cambiando la manera como se desarrolla el software. En particular, el incesante aumento de la potencia de los ordenadores personales, el abaratamiento de los costes del hardware y la aparición de redes de datos de cobertura global han hecho posible una infraestructura especialmente favorable para el uso de los sistemas abiertos y distribuidos.

Estos cambios han provocado, entre otras cosas, que los métodos de diseño y desarrollo de software tradicionales (vistos en las asignaturas de Ingeniería del Software y Análisis y Diseño con Patrones) sean insuficientes, puesto que, más o menos implícitamente, asumen que la aplicación a desarrollar se ejecutará en un entorno básicamente centralizado. Por lo tanto, los métodos tradicionales son incapaces de gestionar de manera natural la complejidad de los requisitos de este nuevo tipo de sistemas.

Esta asignatura sirve como introducción a los conceptos y métodos fundamentales sobre los cuales se fundamenta el diseño y desarrollo de aplicaciones distribuidas basadas en componentes, y así se complementan los conocimientos adquiridos en las asignaturas previas.

En primer lugar, se aborda el diseño de alto nivel de este tipo de sistemas, describiendo los diferentes puntos de vista a considerar, utilizando como marco de referencia el estándar definido por ISO, IEC e ITU-T, denominado RM-ODP. Cada punto de vista es independiente de los otros y aborda una serie de aspectos concretos, abstrayéndose del resto. Entre los diferentes puntos de vista, esta asignatura se centra en los más cercanos a su diseño y su implementación, como son la arquitectura del software y la implementación con componentes. Los aspectos más cercanos al análisis y a la especificación de requisitos no cambian respecto a aquello que se ha visto en las asignaturas anteriores y, por lo tanto, no se repiten aquí.

La arquitectura de los sistemas de software permite describir de una manera abstracta y de alto nivel tanto la funcionalidad del sistema como otros muchos aspectos no funcionales de este (distribución, fiabilidad, seguridad, adaptabilidad, prestaciones, etc.). Esta descripción del sistema suele definirse partiendo de un estilo arquitectónico, una clasificación de los sistemas de software en grandes familias que siguen un patrón estructural común. Entre los estilos arquitectónicos más usuales para los sistemas distribuidos hay los sistemas organizados en múltiples capas, los sistemas cliente-servidor o los sistemas peer-to-peer.

Estas arquitecturas pueden implementarse después utilizando cualquier paradigma de programación (orientado a objetos, estructurado...). Sin embargo, en esta asignatura abordaremos la programación orientada a componentes, un paradigma de programación que proporciona mecanismos apropiados para el desarrollo y la implementación de componentes de software distribuidos. Estos componentes son los que servirán para implementar los componentes arquitectónicos descritos en la arquitectura del sistema.

El diseño de la aplicación en términos de componentes de software tiene que refinarse, posteriormente, para adaptarlo e implementarlo en una tecnología de componentes distribuidos concreta. En nuestro caso concreto, se describe con detalle la plataforma Java Enterprise Edition (Java EE). Ésta es una plataforma abierta basada en componentes que permiten desarrollar, desplegar y gestionar aplicaciones distribuidas con arquitecturas multinivel. Para conocer mejor el funcionamiento de esta tecnología, previamente se explica a fondo el mecanismo de invocación remota RMI que representa el núcleo del modelo distribuido de Java y la capa subyacente de comunicación distribuida de Java EE.

Finalmente, para dar una visión más general del estado tecnológico actual, también se comentan otras plataformas y tecnologías distribuidas como por ejemplo CORBA, .NET, y especialmente los servicios web.

Amunt

Esta asignatura está enmarcada dentro del itinerario de Ingeniería del software del Grado de Ingeniería Informática constituyendo una extensión en varias dimensiones de los conocimientos básicos de ingeniería del software, contenidos tanto en el itinerario concreto como las asignaturas obligatorias del Grado.

Para poder cursar con provecho esta asignatura, se requiere que los estudiantes tengan unos ciertos conocimientos previos sobre tecnología orientada a objetos. Concretamente hay que conocer los fundamentos de la programación orientada a objetos y las notaciones básicas de UML, tal y cómo se ven, por ejemplo, en la asignatura Ingeniería del Software y en Análisis y Diseño con Patrones de esta misma titulación.

Amunt

La asignatura será especialmente útil a todos los futuros profesionales dedicados al desarrollo de software según una concepción actual. El campo del desarrollo de software cambia día a día, y tanto los sistemas distribuidos como los sistemas de componentes van tomando más y más importancia.

Finalmente, también es importante por todo ingeniero informático lograr las habilidades básicas en la instalación, configuración y uso de las diversas herramientas de apoyo existentes para el desarrollo, despliegue y ejecución de aplicaciones de software. En esta asignatura se llevará a cabo una intensa labor en este sentido para consolidar estas habilidades mediante el apoyo de una aula Laboratorio especializada. Por lo tanto, se evitará en lo posible el uso de máquinas virtuales automáticas con entornos ya configurados y fomentar el uso de herramientas individuales que el estudiante tendrá que aprender a instalar y configurar manualmente.

Amunt

Haber superado Ingeniería del software y Análisis y Diseño con Patrones o tener los conocimientos equivalentes es la condición previa para poder cursar esta asignatura.

Es también imprescindible que el estudiante tenga un buen nivel de Java para poder superar la asignatura. La asignatura tiene una parte importante de trabajo práctico en Java que asume un conocimiento y práctica importantes en este lenguaje. No es nada recomendable que el estudiante curse la asignatura hasta que se haya logrado un buen nivel en Java, puesto que de lo contrario se verá abocado a repetir la asignatura con una alta probabilidad.

Amunt

Es recomendable haber superado las asignaturas Ingeniería del software y Análisis y diseño con Patrones.

Amunt

Competencias transversales:

  • Capacidad de comunicación escrita en el ámbito académico y profesional.
  • Uso y aplicación de las TIC en el ámbito académico y profesional
  • Capacidad para adaptarse a las tecnologías y a futuros entornos actualizando las competencias profesionales


Competencias del Grado en Ingeniería Informática:

  • Saber construir aplicaciones informáticas mediante técnicas de desarrollo, integración y reutilizació.
  • Saber proponer y evaluar diferentes alternativas tecnológicas para resolver un problema concreto.


Estas competencias se desglosan en los siguientes objetivos:

El objetivo general de la asignatura es que los estudiantes adquieran los conocimientos básicos para el desarrollo de aplicaciones distribuidas basadas en componentes. Este objetivo general se concreta en los siguientes objetivos específicos:

  • Entender los diferentes puntos de vista a considerar en el desarrollo de este tipo de aplicaciones.
  • Conocer los diferentes estilos arquitectónicos existentes y saber definir la arquitectura de software más adecuada según las características particulares de cada aplicación.
  • Conocer la programación orientada a componentes como técnica de implementación de las arquitecturas de software.
  • Ver como se materializa (y se adapta) este marco teórico sobre las plataformas tecnológicas actuales, con atención especial a Java EE.
  • Conocer el modelo de objetos distribuido de Java basado en RMI como capa subyacente de comunicación distribuida de la tecnología de componentes Java EE.
  • Conocer las similitudes y diferencias entre las diferentes plataformas tecnológicas, con especial atención a los servicios web.
  • Entender que el proceso de desarrollo de software explicado aquí es útil independientemente de la plataforma final a utilizar, puesto que todas siguen unos mismos principios arquitectónicos.

Amunt

Módulo didáctico 1: Diseño de aplicaciones distribuidas
1. Los sistemas abiertos y distribuidos
2. Diseño arquitectónico basado en puntos de vista
3. El modelo de ''4+1'' vistas de Kruchten
4. El modelo de referencia RM-ODP
5. Diseño de aplicaciones distribuidas basadas en componentes

Módulo didáctico 2: Arquitectura del software
1. Arquitecturas de software
2. Representación de la arquitectura software

Módulo didáctico 3: Desarrollo de software basado en componentes
1. El concepto de componiendo software
2. Conceptos y mecanismos básicos
3. Representación de componentes software en UML
4. Proceso de desarrollo basado en componentes

Módulo didáctico 4: Introducción a las plataformas distribuidas
1. Un poco de historia: RPC, RMI, DCOM...
2. CORBA

Módulo didáctico 5: Java RMI
1. Introducción a RMI
2. Arquitectura RMI
3. Caso de estudio RMI

Módulo didáctico 6: Java EE
1. Java EE, una plataforma de componentes distribuida
2. Arquitectura lógica
3. Diseño de aplicaciones Java EE con UML

Módulo didáctico 7: SOA
1. Introducción a las arquitecturas orientadas a servicios
2. El concepto SOA: arquitecturas orientadas a servicios
3. Servicios web pesados y ligeros
4. Diseño de aplicaciones orientadas a servicios con UML

Amunt

El soporte principal del material docente son los apuntes propios de la asignatura, que se distribuirán según los canales habituales de la UOC. 

Por otra parte, la asignatura dispone de un aula de Laboratorio con material y herramientas de software, y un consultor propio con experiencia en la parte técnica de la asignatura, donde el alumno obtendrá todo el apoyo necesario para llevar a cabo las prácticas. En particular, el Laboratorio dispone de software y manuales de instalación, cursos de entrenamiento y casos de estudio resueltos sobre instalación e implementación, preguntas frecuentes con respuestas y referencias a fuentes de información. Además, dispone de foros donde enviar dudas, consultas y problemas que el consultor responde de manera inmediata y todos los alumnos pueden compartir y participar.

Amunt

La Normativa académica de la UOC dispone que el proceso de evaluación se fundamenta en el trabajo personal del estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de originalidad en la autoría o el mal uso de las condiciones en las que se hace la evaluación de la asignatura es una infracción que puede tener consecuencias académicas graves.

El estudiante será calificado con un suspenso (D/0) si se detecta falta de originalidad en la autoría de alguna actividad evaluable (práctica, prueba de evaluación continua (PEC) o final (PEF), o la que se defina en el plan docente), ya sea porque ha utilizado material o dispositivos no autorizados, ya sea porque ha copiado de forma textual de internet, o ha copiado de apuntes, de materiales, manuales o artículos (sin la citación correspondiente) o de otro estudiante, o por cualquier otra conducta irregular.

La calificación de suspenso (D/0) en la evaluación continua (EC) puede conllevar la obligación de hacer el examen presencial para superar la asignatura (si hay examen y si superarlo es suficiente para superar la asignatura según indique este plan docente).

Cuando esta mala conducta se produzca durante la realización de las pruebas de evaluación finales presenciales, el estudiante puede ser expulsado del aula, y el examinador hará constar todos los elementos y la información relativos al caso.

Además, esta conducta puede dar lugar a la incoación de un procedimiento disciplinario y la aplicación, si procede, de la sanción que corresponda.

La UOC habilitará los mecanismos que considere oportunos para velar por la calidad de sus titulaciones y garantizar la excelencia y la calidad de su modelo educativo.

Amunt

Esta asignatura se puede superar a partir de la evaluación continua (EC), cuya nota final se cruza con la calificación de una prueba de síntesis (PS). Es necesario realizar las actividades prácticas obligatorias (Pr) cuya nota se cruza con la nota de evaluación continua . El resultado de este cruce entre la EC y la Pr se cruza a su vez con la nota de la PS para obtener la nota final de la asignatura. Para hacer la PS es necesario haber superado la FC. La fórmula de acreditación de la asignatura es la siguiente: (EC+Pr) + PS

 
 

Amunt