Guía docente de Tecnología de Objetos Aplicada al Desarrollo de Aplicaciones Distribuidas y de Tiempo Real (M52/56/3/13)

Curso 2022/2023
Fecha de aprobación por la Comisión Académica 15/07/2022

Máster

Máster Universitario en Desarrollo del Software

Módulo

Módulo 6: Ingeniería del Software de Sistemas Distribuidos, Empotrados y de Tiempo Real

Rama

Ingeniería y Arquitectura

Centro Responsable del título

International School for Postgraduate Studies

Semestre

Segundo

Créditos

3

Tipo

Optativa

Tipo de enseñanza

Enseñanza Virtual

Profesorado

  • Manuel Isidoro Capel Tuñón

Tutorías

Manuel Isidoro Capel Tuñón

Email
  • Tutorías 1º semestre
    • Lunes 11:30 a 13:30 (Etsiit 3ª P Despacho 37)
    • Jueves 15:30 a 17:30 (Etsiit 3ª P Despacho 37)
    • Viernes 15:30 a 17:30 (Etsiit 3ª P Despacho 37)
  • Tutorías 2º semestre
    • Lunes 11:30 a 13:30 (Etsiit 3ª P Despacho 37)
    • Miércoles 11:30 a 13:30 (Etsiit 3ª P Despacho 37)
    • Jueves 11:30 a 13:30 (Etsiit 3ª P Despacho 37)

Breve descripción de contenidos (Según memoria de verificación del Máster)

Modelos de componentes-software. Arquitecturas de software avanzadas. Técnicas modernas de desarrollo basadas en componentes distribuidos. Software intermediario (middleware) actual. Desarrollo de software de sistemas de tiempo real con las metodologías actuales.

Prerrequisitos y/o Recomendaciones

Desarrollo de sistemas software que satisfagan los requisitos de usuario establecidos de cardo con los estándares actuales de calidad

Conocimiento general de teorías, principios, métodos y prácticas de la IS

Habituación en el uso de entornos de desarrollo integrado: Eclipse (preferiblemente), NetBeans, VisualStudio...

 

Competencias

Competencias Básicas

  • CB6. Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
  • CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
  • CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
  • CB9. Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
  • CB10. Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.

Competencias Generales

  • CG01. Habilidades cognitivas: conocer los principales problemas o retos tecnológicos planteados en el ámbito de las líneas de investigación del programa de posgrado, conocer los principios de las técnicas o metodologías de solución para dichos problemas propuestas por la comunidad científica, conocer las debilidades y fortalezas de dichas soluciones, así como conocer las aplicaciones que este conocimiento tiene en la sociedad actual. 
  • CG02. Destreza para iniciar un trabajo de investigación científica o desarrollo tecnológico original e innovador, en el marco de los problemas descritos en el punto anterior. 
  • CG03. Ser capaz de emplear el conocimiento científico existente en la resolución de problemas o mejora de procesos a nivel individual o en el contexto de empresas u organismos públicos. 
  • CG04. Capacidades sistémicas para obtener la capacidad de asimilación y adaptación a la evolución futura del estado del arte en el ámbito de las disciplinas científicas del Máster. 
  • CG05. Destrezas tecnológicas: capacidad de usar, evaluar, crear, modificar o extender la herramientas informáticas útiles en la resolución de problemas relacionados con las líneas de investigación 
  • CG06. Capacidades metodológicas: conocer las principales fuentes bibliográficas que describen los avances científicos en las líneas de investigación del programa de posgrado. 
  • CG07. Destrezas lingüísticas: conocer y utilizar la terminología científica especializada, tanto en español como en inglés, relacionada con las líneas de investigación del departamento. 
  • CG08. Competencias personales: capacidad de análisis y síntesis en la resolución efectiva de problemas, así como capacidad de toma de decisiones, organización y planificación. Capacidad de comunicación escrita y oral. 
  • CG09. Competencias interpersonales: capacidad de trabajo en equipo, incluyendo la toma de decisiones en colectivos o grupos. Habilidades en las relaciones interpersonales. Habilidades para presentar trabajos y mantener debates en grupo. 
  • CG10. Destrezas de redacción: ser capaz de expresar los resultados y el desarrollo de las investigaciones en textos o informes científico-técnicos, conocer los mecanismos de revisión entre pares propios de la ciencia para estos documentos, así como los mecanismos para su difusión en forma de artículos en revistas, libros, sitios web o en aportaciones a congresos. 

Competencias Específicas

  • CE01. Ser capaz de llevar a cabo un trabajo de investigación en campos científicos relacionados con el desarrollo del software, teniendo en cuenta los recursos disponibles y sus implicaciones éticas y sociales 
  • CE03. Identificar y comprender los conceptos clave y las principales características de los sistemas software, en cuanto a sus requerimientos, diseño o programación, así como saber aplicar los principales modelos, métodos y técnicas de la Ingeniería del Software al desarrollo de estos sistemas. 
  • CE04. Conocer y saber aplicar métodos, técnicas y herramientas avanzadas de modelado, análisis, diseño y simulación en sistemas colaborativos, ubicuos, móviles, distribuidos, de diálogo, empotrados, de tiempo real o de procesos de negocio. 
  • CE05. Identificar y valorar propiedades software de usabilidad, accesibilidad, seguridad, confiabilidad, rendimiento, y ética informática, entre otras, y analizar cómo afectan a la calidad de un sistema software. 
  • CE06. Saber aplicar las estrategias de modelado más adecuadas para el diseño de sistemas software, así como las técnicas para la generación sistemática de sistemas dirigido por modelos 
  • CE07. Diseñar y desarrollar sistemas software desde una perspectiva centrada en el usuario. 
  • CE08. Diseñar modelos de sistemas software que permitan aplicar mecanismos evolutivos de reflexión, parametrización, refactorización, reutilización y simulación de procesos, entre otros. 
  • CE09. Conocer los paradigmas, fundamentos y técnicas específicas de interacción persona-ordenador para el diseño de sistemas software de interacción multimodales (voz, tangibles, gestos) 
  • CE10. Comprender las metodologías y técnicas asociadas al desarrollo e implantación de aplicaciones web, en cuanto al sistema hipermedia construido, al gestor de contenido seleccionado, o la tecnología de desarrollo web utilizada en su implementación, así como comprender las diferencias existentes en cuanto al diseño y desarrollo frente a otros tipos de aplicaciones. 
  • CE11. Reconocer y analizar los métodos y técnicas de sistemas de acceso integrado a múltiples fuentes de datos, en cuanto a los modelos espaciales y temporales para el diseño de base de datos, los almacenes de datos y sistemas OLAP, las ontologías y/o la web semántica. 
  • CE12. Comprender y conocer técnicas de representación, interconexión, implementación, despliegue, y reutilización de servicios y componentes software y de negocio para su aplicación en sistemas colaborativos, distribuidos, ubicuos, empotrados y/o de tiempo real. 

Competencias Transversales

  • CT01. Mostrar interés por la calidad y la excelencia en la realización de diferentes tareas. 
  • CT02. Comprender y defender la importancia que la diversidad de culturas y costumbres tienen en la investigación o práctica profesional. 
  • CT03. Tener un compromiso ético y social en la aplicación de los conocimientos adquiridos. 
  • CT04. Ser capaz de trabajar en equipos interdisciplinarios para alcanzar objetivos comunes desde campos expertos diferenciados. 
  • CT05. Incorporar los principios del Diseño Universal en el desempeño de su profesión. 

Resultados de aprendizaje (Objetivos)

-Conocer los modelos actuales de componentes de aplicación al desarrollo de sistemas software

-Dominar técnicas modernas de desarrollo

-Saber cómo programar y desplegar un servicio RESTful con acceso receptivo desde varias interfaces y dispositivos; con conectividad a bases de datos compatibles SQL

Programa de contenidos Teóricos y Prácticos

Teórico

1. Ingeniería del software de sistemas distribuidos: Formalización de sistemas software abiertos y basados en componentes. Programación Basada en Componentes. Modelos de "componente software"

2.Servicios Web: Middleware. SOA. Business processes modeling. Composición de servicios Web

3. Tecnología de objetos aplicada al desarrollo de sistemas de tiempo real: RT-CORBA. Calidad de servicio. Ejemplos de aplicación. RT-CORBA en TAO. ACE ORB (TAO). Evolución de TAO y entornos actuales.

Práctico

1. Programación de componentes software con el marco de trabajo JSF

2. Programación de un servicio RESTful

3. Aplicación de TR

Bibliografía

Bibliografía fundamental

-Capel, Manuel I. (2016). Desarrollo de Software y Sistemas Basados en Componentes y Servicios. Garceta (Madrid) 

-Thomas Erl. SOA: principles of service design. Prentice Hall, 2008 (recurso electrónico:

http://proquest.safaribooksonline.com/9780132344821).

Bibliografía complementaria

--Kessig, Z. Building Web Applications with Erlang: Working with REST and Web. O’Reilly, 2012.

-Silver, B. BPMN Method and Style with BPMN's implementers guide. Cody-Cassidy (2nded.), 2011, CA (USA), 2011

-Eden, A., Hirshfeld, Y., and Kazman, R. (2006). Abstraction classes in software design. IEE Software, 153(4):163–182.

-Exposito, D. and Saltarello, A. (2009). Architecting Microsoft .NET solutions for the enterprise. Microsoft Press, Redmond, Washington.

-Szyperski, C. (1998). Component Software. Beyond Object-Oriented Programming. Addison–Wesley, 

Enlaces recomendados

A principio de curso se avisará de la plataforma Web y páginas auxiliares donde se encontrarán los enlaces recomendados para la asignatura.

Metodología docente

  • MD01 Lección magistral/expositiva 
  • MD02 Sesiones de discusión y debate 
  • MD03 Resolución de problemas y estudio de casos prácticos 
  • MD04 Prácticas de laboratorio o clínicas 
  • MD05 Seminarios 
  • MD09 Realización de trabajos individuales 
  • MD14 Cuestionarios de autoevaluación on-line 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final.)

Evaluación Ordinaria

Todo lo relativo a la evaluación se regirá por la Normativa de evaluación y calificación de los estudiantes vigente en la Universidad de Granada, que puede consultarse en: https://lsi.ugr.es/lsi/normativa_examenes

Preferentemente, la evaluación se ajustará al sistema de evaluación continua del aprendizaje del estudiante siguiendo el artículo 7 de la anterior Normativa.

Para aprobar la asignatura es necesario obtener una calificación numérica superior o igual a 5 puntos (sobre 10). No obstante, además del requisito anterior, se establece adicionalmente que tanto la calificación correspondiente a la parte teórica como a la parte práctica sean mayores o iguales 3,5 puntos (sobre 10).

Evaluación Extraordinaria

La evaluación de los estudiantes en la convocatoria extraordinaria se regirá por los mismos criterios y constará de las mismas pruebas que ellas indicadas para la evaluación única final.

Evaluación única final

La evaluación única final consistirá en dos pruebas de evaluación, una para la parte teórica y otra para la parte práctica, con las características que se indican a continuación:

Evaluación de teoría: los estudiantes realizarán una única prueba escrita que constará de preguntas de teoría, preguntas tipo test (35% de la nota final) problemas y ejercicios sobre la teoría impartida (50% nota final)  y resolución de un supuesto práctico (15% nota final)

Evaluación de las prácticas:los estudiantes realizarán una prueba en el laboratorioque consistirá en la reali-zación con ordenador de un programa basado en un supuesto práctico similar a los realizados durante las prác-ticas regladas.

La ponderación de cada parte en la nota final será del 50% (parte teórica) y 50% (parte práctica). Paraaprobar la asignatura se han de cumplir los siguientes requisitos:

La nota de la prueba de teoría ha de ser igual o superior al 40% del máximo de dicha prueba

La nota de la prueba de prácticas ha de ser igual o superior al 40% del máximo de dicha prueba

Información adicional

Para aprobar siguiendo la modalidad de evaluación continua hay que realizar todos los controles (cuestionarios en PRADO) y entregar las prácticas en las fechas establecidas al comienzo del curso.