Guía docente de Desarrollo de Sistemas de Software Basados en Componentes y Servicios (M50/56/3/8)
Máster
Módulo
Rama
Centro en el que se imparte la docencia
Centro Responsable del título
Semestre
Créditos
Tipo
Tipo de enseñanza
Profesorado
- Manuel Isidoro Capel Tuñón
Tutorías
Manuel Isidoro Capel Tuñón
Email- Tutorías 1º semestre
- Miercoles 11:30 a 13:30 (Etsiit 3ª P Despacho 37)
- Jueves 19:00 a 21:00 (Etsiit 3ª P Despacho 37)
- Viernes 11:30 a 13:30 (Etsiit 3ª P Despacho 37)
- Tutorías 2º semestre
- Lunes 9:30 a 11:30 (Etsiit 3ª P Despacho 37)
- Miercoles 9:30 a 11:30 (Etsiit 3ª P Despacho 37)
- Viernes 9:30 a 11:30 (Etsiit 3ª P Despacho 37)
Breve descripción de contenidos (Según memoria de verificación del Máster)
La asignatura aborda la construcción de sistemas software distribuidos mediante arquitecturas basadas en componentes y servicios. Se trabajan arquitecturas orientadas a servicios (SOA), programación basada en componentes (CBSE), servicios web, modelado semántico con ontologías, y desarrollo de aplicaciones RESTful y BPEL.
Prerrequisitos y/o Recomendaciones
-
Desarrollo de sistemas software que satisfagan todos los requisitos del usuario, se comporten de forma fiable, sean asequibles de mantener y eficientes.
-
Conocimiento general de las teorías, principios, métodos y prácticas de la Ingeniería del Software.
-
Familiaridad en el uso de entornos de desarrollo integrado de software: Eclipse (preferible), NetBeans, Visual Studio...
-
Uso continuo de control de versiones (GitHub, GitLab).
-
Validación de endpoints mediante Postman.
-
Lectura anticipada de los documentos docentes.
-
Aprovechar las tutorías para orientar el trabajo práctico.
En el caso de utilizar herramientas de IA para el desarrollo de la asignatura, el estudiante debe adoptar un uso ético y responsable de las mismas. Se deben seguir las recomendaciones contenidas en el documento de "Recomendaciones para el uso de la inteligencia artificial en la UGR" publicado en esta ubicación: https://ceprud.ugr.es/formacion-tic/inteligencia-artificial/recomendaciones-ia#contenido0"
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.
Resultados de aprendizaje (Objetivos)
-
Diseñar y desarrollar sistemas distribuidos modulares, seguros y escalables.
-
Integrar servicios y componentes de forma interoperable.
-
Aplicar principios SOA y CBSE en el diseño y desarrollo.
-
Utilizar herramientas como Spring Boot, JDeveloper y Protégé.
-
Aplicar razonamiento sobre ontologías y modelado semántico.
Programa de contenidos Teóricos y Prácticos
Teórico
1. Introducción a la ingeniería de software basada en componentes.
1.1. Formalización de los sistemas abiertos y basados en componentes.
1.2. Diseño y desarrollo del software basado en componentización: principios, beneficios y patrones.
2. Arquitecturas orientadas a servicios.
2.1. Limitaciones del software intermediario convencional.
2.2. Middleware y sistemas distribuidos: características, tipos y funcionalidades.
2.3. Servicios Web (SW) contemporáneos: definiciones, estándares y tecnologías.
2.4. Desarrollo de software orientado a servicios: implementación de servicios SOAP y REST.
3. Modelado de procesos de negocio
3.1. Principios de desarrollo de software orientado a procesos de negocio: definición, ciclo de vida y objetivos.
3.2. Composición de servicios software: diferenciación entre orquestación y coreografía; ventajas, retos y patrones.
3.3. Orquestación de servicios con BPEL: elementos básicos, partner links, actividades de control de flujo, manejo de errores y despliegue en JDeveloper.
4. Sistemas ubicuos e inteligencia ambiental
4.1. Introducción a la Computación Ubicua: definición, evolución y motivación.
4.2. Marcos de trabajo actuales para el desarrollo de sistemas ubicuos.
4.3. Servicios colaborativos en entornos distribuidos e inteligentes.
4.4. Modelado ontológico con OW: clases, propiedades, restricciones y uso de razonadores.
Seminarios:
-Especificación de componentes de software con UML/OCL
-Introducción al diseño e implementación de servicios web RESTful
-OWL y el modelado semántico de ontologías para la Web
Práctico
1. Programación de un servicio web RESTful con EJB y ORM
2. Orquestación de servicios Web utilizando WS-BPEL
3. Desarrollo de cliente responsivo para dispositivos móviles para el servicio web RESTful
4. Desarrollar una ontología de un sistema ubicuo utilizando un marco de trabajo y editor de ontologías de fuentes abiertas
Bibliografía
Bibliografía fundamental
-
Alonso, Gustavo, Fabio Casati, Harumi Kuno, y Vijay Machiraju. 2004. Web Services: Concepts, Architectures and Applications. Data-Centric Systems and Applications. Berlin: Springer-Verlag. https://doi.org/10.1007/978-3-662-10876-5.
-
Capel, Manuel I. 2016. Desarrollo de Software y Sistemas Basados en Componentes y Servicios. Madrid: Garceta Grupo Editorial.
-
Szyperski, Clemens. 2002. Component Software: Beyond Object-Oriented Programming. Londres: Pearson Education.
-
Veríssimo, Paulo, y Luís Rodrigues. 2004. Distributed Systems for System Architects. Dordrecht: Kluwer Academic Publishers.
-
Capel, Manuel I. Material docente: seminarios OWL, BPEL, AmI, UML. Documentación interna. Universidad de Granada.
Bibliografía complementaria
-
Baldauf, Markus, Schahram Dustdar, y Florian Rosenberg. 2012. "A Survey of Context Aware Systems." International Journal of Ad Hoc and Ubiquitous Computing 2(4): 263–267.
-
Bell, Michael. 2010. SOA Modeling Patterns for Service Oriented Discovery Analysis. Hoboken, NJ: Wiley.
-
Branca, Giuseppe, y Luigi Atzori. 2012. "A Survey of SOA Technologies in NGN Network Architectures." IEEE Communications Surveys & Tutorials 14(3): 644–661.
-
Kessig, Zachary. 2012. Building Web Applications with Erlang: Working with REST and Web. Sebastopol, CA: O’Reilly.
-
Marcs, Eric D., y Michael Bell. 2006. Service Oriented Architecture (SOA): A Planning and Implementation Guide for Business and Technology. Hoboken, NJ: Wiley.
-
Margolis, Ben. 2007. SOA for the Business Developer: Concepts, BPEL, and SCA. Boise, ID: MC Press.
-
Pashtan, Amir. 2005. Mobile Web Services. Cambridge: Cambridge University Press.
-
Raz, Danny, Antti Juhola, Josep Serrat-Fernández, y Andreas Galis. 2006. Fast and Efficient Context–Aware Services. Chichester: John Wiley and Sons.
-
Stavropoulos, Thanos, Dimitris Vrakas, y Ioannis Vlahavas. 2013. "A Survey of Service Composition in Ambient Intelligence Environments." Artificial Intelligence Review 40(3): 247–270.
-
Taylor, Hugh. 2009. Event-Driven Architecture: How SOA Enables the Real-Time Enterprise. Boston: 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
Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final.)
Evaluación Ordinaria
La teoría y las prácticas se evalúan de forma independiente, representando cada parte un 50 % de la calificación final del curso.
La evaluación de la parte teórica constará de al menos dos exámenes realizados durante las horas lectivas, basados en cuestiones con respuestas alternativas o desarrollo breve.
Para la evaluación de las prácticas se requiere la entrega de trabajos prácticos en fechas predeterminadas. La tercera práctica debe ser defendida oralmente en clase; las fechas de exposición se fijarán al inicio del curso.
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, accesible en: https://lsi.ugr.es/lsi/normativa_examenes
Para aprobar la asignatura es necesario obtener una calificación igual o superior a 5,0 (sobre 10,0). Adicionalmente, tanto la calificación de la parte teórica como la de la parte práctica deben ser superiores a 3,5 (sobre 10,0).
En el caso de evaluación continua, los seminarios se podrán evaluar teniendo en cuenta la asistencia, la resolución de problemas, entrevistas individuales y la presentación de trabajos.
Para el alumnado que se acoja a la evaluación única final, las pruebas seguirán criterios específicos que se exponen más adelante.
Evaluación Extraordinaria
La evaluación extraordinaria se regirá por los mismos criterios y constará de las mismas pruebas que la de la evaluación única final.
Evaluación única final
Consistirá en dos pruebas de evaluación, una correspondiente a la parte teórica y otra a la parte práctica:
Evaluación de la teoría: los estudiantes realizarán una única prueba escrita compuesta por: preguntas tipo test (35 %), resolución de ejercicios (50 %) y un supuesto práctico (15 %).
Evaluación de las prácticas: consistirá en una prueba en el laboratorio que implicará la programación de un supuesto práctico similar a los desarrollados durante el curso.
La ponderación de cada parte será del 50% en la calificación final. Para superar la asignatura, deberán cumplirse los siguientes requisitos mínimos::
-
La calificación obtenida en la prueba teórica deberá ser igual o superior al 40 % de la puntuación máxima posible en dicha prueba.
-
La calificación obtenida en la prueba práctica deberá ser igual o superior al 40 % de la puntuación máxima posible en dicha prueba.
Información adicional
Para ser evaluado en la modalidad de evaluación continua es necesario realizar todos los exámenes y entregar las prácticas en las fechas establecidas para cada uno de estos controles.