Créditos ECTS Créditos ECTS: 4.5
Horas ECTS Criterios/Memorias Traballo do Alumno/a ECTS: 70.5 Horas de Titorías: 2 Clase Expositiva: 10 Clase Interactiva: 30 Total: 112.5
Linguas de uso Castelán, Galego
Tipo: Materia Ordinaria Grao RD 1393/2007 - 822/2021
Departamentos: Electrónica e Computación
Áreas: Ciencia da Computación e Intelixencia Artificial
Centro Escola Técnica Superior de Enxeñaría
Convocatoria: Primeiro semestre
Docencia: Con docencia
Matrícula: Matriculable
O obxectivo desta materia é formar ao alumnado no desenvolvemento de aplicacións baseadas no concepto de servizo. Así, o alumnado será capaz, por unha banda, de identificar para que situacións o uso de arquitecturas baseadas en servizos sen estado proporcionan unha solución idónea, e por outra banda, utilizar dende un punto de vista práctico a tecnoloxía actual para o deseño e implementación de servizos sen estado, así como o desenvolvemento de clientes que consuman ditos servizos. Máis concretamente, os obxectivos específicos da materia son os seguintes:
OBX 1. Entender o concepto de servizo.
OBX 2. Coñecer os principios e estilos arquitectónicos baseados en servizos.
OBX 3. Comprender o concepto de servizos sen estado.
OBX 4. Entender as características das aplicacións sen estado.
OBX 5. Deseñar e desenvolver APIs de servizos.
OBX 6. Adoptar os estándares e boas prácticas para o desenvolvemento dunha API de servizos.
OBX 7. Deseñar e desenvolver aplicacións cliente baseadas en APIs de servizos.
TEORÍA
Tema 1. Introdución á Enxeñaría de Servizos. Contexto histórico.
a. Arquitecturas cliente-servidor
b. RPC
c. Arquitecturas orientadas a servizos
Tema 2. Compoñentes distribuídos e estilos arquitectónicos. SOAP e REST
Tema 3. Concepto de servizo. Servizos sen estado.
a. Recursos
b. Verbos HTTP
c. Códigos de estado
d. Cabeceiras e mensaxes HTTP
Tema 4. Deseño de servizos: boas prácticas.
a. Documentación de servizos sen estado
Tema 5. Patróns de deseño de aplicacións baseadas en servizos.
a. Caches
b. Versionado
c. Deseño por capas
d. SLAs e ratios de uso
e. Seguridade en servizos sen estado
Tema 6. Tecnoloxía para o desenvolvemento de aplicacións baseadas en servizos.
PRÁCTICAS
A parte práctica da materia consistirá no desenvolvemento dun proxecto, en grupos pequenos (2/3 persoas), no que o alumnado deberá propoñer e desenvolver unha aplicación baseada en servizos REST. O desenvolvemento desta aplicación será guiado polo profesor durante as sesións interactivas. No desenvolvemento desta aplicación o alumnado deberá seguir os principios presentados nas clases expositivas, e o profesor proporcionará a retroalimentación necesaria para asegurar unha complexidade equivalente en todos os traballos.
BIBLIOGRAFÍA BÁSICA
MASSE, Mark. REST API Design Rulebook. 1a Edición, O'Really Media, 2011. ISBN: 978-1449310509.
RICHARDSON, Leonard, AMUNDSEN, Mike. RESTful Web APIs, 1ª Edición, O’Really Media, 2013. ISBN: 978-1449358068.
MADDEN, Neil, API Security in Action. 1ª Edición, Manning, 2020. ISBN: 978-1617296024.
BIBLIOGRAFÍA COMPLEMENTARIA
ALLAMARAJU, Subbu. RESTful Web Services Cookbook, 1ª Edición. O’Really Media, 2010. ISBN: 978-0596801687.
GUTIERREZ, Felipe. Pro Spring Boot 3: An Authoritative Guide with Best Practices, 3ª Edición. Apress, 2024. ISBN: 978-1484292938
WIERUCH, Robin. The Road to React. 2025 Edition. https://www.roadtoreact.com/
O/A alumno/a adquirirá un conxunto de competencias específicas da enxeñaría de servizos, pero tamén unha serie de competencias xenéricas a calquera desenvolvemento dun programa software e, finalmente, unhas competencias transversais que inciden nas habilidades persoais do/a alumno/a e na maneira no que se relaciona co restante alumnado. Tendo isto en conta, as competencias son as seguintes:
BÁSICAS E XENERAIS
CB03 - Que os estudantes teñan a capacidade de reunir e interpretar datos relevantes (normalmente dentro da súa área de estudo) para emitir xuízos que inclúan unha reflexión sobre temas relevantes de índole social, científica ou ética.
CG04 - Capacidade para definir, avaliar e seleccionar plataformas hardware e software para o desenvolvemento e a execución de sistemas, servizos e aplicacións informáticas.
CG05 - Capacidade para concibir, desenvolver e manter sistemas, servizos e aplicacións informáticas empregando os métodos da enxeñaría do software como instrumento para asegurar a súa calidade, de acordo cos coñecementos adquiridos.
CG06 - Capacidade para concibir e desenvolver sistemas ou arquitecturas informáticas centralizadas ou distribuídas integrando hardware, software e redes de acordo cos coñecementos adquiridos.
CG8 - Coñecemento das materias básicas e tecnoloxías, que capaciten para a aprendizaxe e desenvolvemento de novos métodos e tecnoloxías, así como as que lles doten dunha gran versatilidade para adaptarse a novas situacións.
TRANSVERSAIS
TR01 - Instrumentais: Capacidade de análise e síntese. Capacidade de organización e planificación. Comunicación oral e escrita en galego, castelán e inglés. Capacidade de xestión da información. Resolución de problemas. Toma de decisións.
TR02 - Persoais: Traballo en equipo. Traballo nun equipo multidisciplinar e multilingüe. Habilidades nas relacións interpersoais. Razoamento crítico. Compromiso ético.
TR03 - Sistémicas: Aprendizaxe autónoma. Adaptación a novas situacións. Creatividade. Iniciativa e espírito emprendedor. Motivación pola calidade. Sensibilidade cara a temas ambientais.
ESPECÍFICAS
RI1 - Capacidade para deseñar, desenvolver, seleccionar e avaliar aplicacións e sistemas informáticos.
RI8 - Capacidade para analizar, deseñar, construír e manter aplicacións de forma robusta, segura e eficiente, elixindo a paradigma e as linguaxes de programación máis adecuados.
RI11 - Coñecemento e aplicación das características, funcionalidades e estrutura dos Sistemas Distribuídos, as Redes de Computadores e Internet e capacidade para deseñar e implementar aplicacións baseadas nelas.
RI13 - Coñecemento e aplicación das ferramentas necesarias para o almacenamento, procesado e acceso aos Sistemas de información, incluídos os baseados en web.
TI2 - Capacidade para seleccionar, deseñar, despregar, integrar, avaliar, xestionar e manter as tecnoloxías software dentro dos parámetros de custo e calidade adecuados.
TI5 - Capacidade para seleccionar, despregar, integrar e xestionar sistemas de información que satisfagan as necesidades da organización, con criterios de custo e calidade identificados.
TI6 - Capacidade de concibir sistemas, aplicacións e servizos baseados en tecnoloxías de rede, incluíndo Internet, web, comercio electrónico, multimedia, servizos interactivos e computación móbil.
A metodoloxía do ensino está dirixida a focalizar a materia sobre os aspectos prácticos da enxeñaría de servizos e sobre os conceptos que diferencian a estas arquitecturas doutras aproximacións. O/A alumno/a debe estar capacitado/a, por tanto, para entender as vantaxes e desvantaxes do uso de servizos e para desenvolver un programa con solvencia seguindo esta paradigma. Tendo isto en conta, distínguense dous tipos de actividades de aprendizaxe: clases maxistrais e sesións prácticas en grupos reducidos. Así:
(1) As clases maxistrais (10 horas) están dirixidas a explicar os conceptos que soportan a enxeñaría de servizos, facendo énfase (a) nas vantaxes que ofrecen as arquitecturas baseadas en servizos fronte a outros paradigmas distribuídos; e (b) no tipo de problemas que resolven. Estes conceptos abórdanse, por unha banda, dun xeito teórico, independente de linguaxes e tecnoloxías, e por outra banda, exemplificando as tecnoloxías e implementacións máis usados na actualidade. Estas sesións complementaranse coa resolución de casos prácticos de deseño de APIs REST.
(2) As sesións prácticas en grupos reducidos (30 horas) están dirixidas a que o alumno/a adquira destreza no deseño, descrición e implementación de APIs de servizos sen estado, así como na súa invocación desde diferentes tipos de clientes. Nestas sesións prácticas o alumno/a desenvolverá, en grupos pequenos, un proxecto de certa complexidade no que se poña de manifesto a utilidade da enxeñaría de servizos para a resolución de problemas distribuídos. A asistencia a estas clases por parte dos alumno/a é OBRIGATORIA (Artigo 1c do Regulamento de asistencia a clase nas ensinanzas oficiais de grao e máster da USC).
Tendo en conta esta metodoloxía de ensino, as competencias RI1, RI8, RI11, RI13, TI2, TI5, TI6, CG4 e CG6 teñen contidos específicos que están asociados aparte teórica e práctica dunha materia como Enxeñaría de Servizos, na que se estenden as metodoloxías de deseño de arquitecturas web para dotalas dunha maior flexibilidade e escalabilidade. Ademais, cabe resaltar que as arquitecturas e solucións de servizos forman parte dos modernos sistemas de información que se implantan nas empresas.
Por outra banda, as competencias TI2 e CG5 traballaranse na parte práctica da materia, na que se fará unha énfase especial no desenvolvemento de servizos que cumpran os estándares de flexibilidade e baixo acoplamento propio da enxeñaría de servizos.
Finalmente, a competencia TR1 traballarase en ambas partes, ben mediante a resolución de casos teóricos, ben no desenvolvemento do proxecto no que se deben afrontar os problemas expostos e sintetizar os conceptos da Enxeñaría de Servizos; a competencia TR2 traballarase durante as sesións de prácticas, onde o alumnado deberá desenvolver un proxecto en parellas; e a competencia TR3 traballarase na parte práctica, xa que nela é onde o alumno/a debe adaptarse a unha novo paradigma e propoñer un problema que lle resulte interesante á vez que realista.
A avaliación da materia terá lugar de tres maneiras diferentes, aínda que complementarias, que pretenden avaliar a competencia do alumno/a na realización práctica de solucións baseadas na enxeñaría de servizos e no dominio dos conceptos teóricos da devandita disciplina.
OPORTUNIDADE ORDINARIA
(1) Resolución de casos prácticos durante as horas expositivas, nos que o alumnado deberá deseñar unha solución a un problema proposto seguindo unha serie de restricións indicadas polo profesor e centrándose nalgún aspecto concreto do deseño de APIs de servizos. Resolveranse un total de 3 actividades deste tipo ao longo do curso: a primeria tras impartir o tema 3b, a segunda ao finalizar o tema 3 e a terceira tras finalizar o tema 5. Estas actividades, avaliables pero non obrigatorias (Artigo 1a do Regulamento de asistencia a clase nas ensinanzas oficiais de grao e máster da USC), permitirán avaliar a interiorización dos conceptos teóricos expostos, e representaran o 20% da nota final da asignatura. Coa fin de que todo o alumnado poida participar desta cualificación, a data de realización dos exercicios anunciarase tanto na aula como a través do Campus Virtual con un mínimo dunha semana de antelación. Por outra banda, a calificación destes exercicios entregarase, como moi tarde, duas semanas despois da data de entrega.
(2) Exame final. Este exame consistirá na resolución dun caso práctico complexo (similar aos desenvolvidos durante o curso pero non tan orientado a un aspecto concreto do deseño das APIs), no que os alumnos deberan demostrar o dominio de tódolos conceptos relacionados co deseño de aplicacións baseadas en servizos. Este exame constituirá o 20% da nota final e será REQUISITO IMPRESCINDIBLE APROBALO PARA SUPERAR A MATERIA.
(3) Realización dun proxecto en pequenos grupos (2/3 persoas) onde o alumnado deberá implementar unha aplicación baseada en servizos REST. Este proxecto contará con unha única entrega, ao final do cuatrimestre, e dunha presentación en clase aos compañeiros e o profesor, que valorarán a complexidade, o detalle e a corrección do deseño orientado a servizos da solución proposta. A nota desta parte dividirase entre unha cualificación outorgada polo resto de grupos (30%) e polo profesor (70%), e constituirá un 60% da nota final da materia. A calificación do proxecto entregarase, como moi tarde, duas semanas despois da data de entrega, e sempre asegurando un mínimo de 2 semanas de antelación á data do exame final. SERÁ IMPRESCINDIBLE SUPERAR ESTA PARTE DA AVALIACIÓN PARA SUPERAR A MATERIA.
CONTROL DE ASISTENCIA
A asistencia a un mínimo dun 80% das horas das sesións interactivas é OBRIGATORIA (Artigo 1 do Regulamento de asistencia a clase nas ensinanzas oficiais de grao e máster da USC) xa que nelas se guiará o desenvolvemento do proxecto e proporcionaranse orientacións de cara a obter aplicacións de similar complexidade. O control de asistencia realizarase a través de follas de firmas que o alumno/a deberá cubrir á finalización de cada unha das sesións. Todo aquel alumnado que non asista a un mínimo do 80% das horas interactivas terá a consideración de NON PRESENTADO.
OPORTUNIDADE EXTRAORDINARIA
Na oportunidade extraordinaria unicamente se avaliaran as partes 2 e 3, polo que o peso do exame final sube a un 40%. O proxecto (parte (3)) realizarase de xeito individual e a súa avaliación farase unicamente fronte ao profesor, mantendo un peso do 60% na nota final. Ademais, se o alumno/a supera algunha das partes (teórica ou práctica) na oportunidade ordinaria, conservaráselle a cualificación desa parte na para a oportunidade extraordinaria.
No caso de realización fraudulenta de exercicios ou probas, será de aplicación o recollido na Normativa de avaliación do rendemento académico dos estudantes e de revisión de cualificacións.
En aplicación da Normativa da ETSE sobre plaxio (aprobada pola Xunta da ETSE o 19/12/2019), a copia total ou parcial dalgún exercicio de prácticas ou teoría suporá o suspenso nas dúas oportunidades do curso, coa cualificación de 0,0 en ambos casos.
Tal e como se indicou anteriormente, a asistencia ás sesións de prácticas é obrigatoria, e ademais esa participación debería ser activa para así aproveitar adecuadamente o tempo. Ademais disto o alumno/a precisará un tempo adicional para traballar nos seguintes aspectos:
(1) Docencia teórica (10 horas). O tempo dedicado á presentación dos conceptos teóricos relacionados co deseño de aplicacións baseadas en servizos e á resolución de casos e discusión de solucións aplicadas a casos reais.
(2) Docencia interactiva (30 horas). O tempo dedicado á realización do proxecto durante as sesións interactivas, é dicir, ao deseño e implementación da aplicación baseada en servizos e á presentación da aplicación final fronte ao resto de alumnos e alumnas. Nestas sesións, ademais, proporcionarase retroalimentación sobre o desenvolvemento do proxecto e poderanse formular directamente as cuestións ou preguntas ao profesorado co fin de afianzar os conceptos que se usarán no proxecto.
(3) Traballo persoal do alumno/a (71,5 horas). Este tempo é necesario para que o alumnado complete aquelas partes do proxecto que non terá tempo de acabar nas sesións de prácticas. Neste tempo o alumno/a poderá interiorizar os conceptos das arquitecturas orientadas a servizos a maneira de aplicalos para resolver un proxecto real, na medida en que nas sesións interactivas faise máis énfases en entender o proxecto e a maneira xeral no que se resolverá, mentres que os detalles necesarios para completalo deberanse realizar no tempo adicional de traballo práctico.
Para poder aproveitar a materia e adquirir con certa fluidez os conceptos da Enxeñaría de Servizos é moi aconsellable aproveitar as clases de teoría e as sesións de prácticas, na medida en que, tal e como se presentou no programa e na metodoloxía docente, estas actividades están directamente relacionadas. Por outra banda, tamén é moi recomendable que o alumno/a explore o material de soporte (páxinas web sobre tecnoloxía, cursos online das contornas de desenvolvemento, descrición de casos de éxito, etc.) no que se inclúen explicacións adicionais ás das clases presenciais e que axudan a entender e afianzar os conceptos da Enxeñaría de Servizos e do desenvolvemento de servizos sen estado. Ademais, aínda que non é estritamente necesario, recomendase ter cursado previamente as asignaturas de Desenvolvemento de Aplicacións Web, Computación Distribuída e Seguridade.
No desenvolvemento desta materia farase un uso intensivo do campus virtual, tanto para proporcionar contidos como para a realización de anuncios e a resolución de dubidas ao alumnado. O idioma preferente de impartición das clases é o galego.
Victor Jose Gallego Fontenla
Coordinador/a- Departamento
- Electrónica e Computación
- Área
- Ciencia da Computación e Intelixencia Artificial
- Teléfono
- 881815520
- Correo electrónico
- victorjose.gallego [at] usc.es
- Categoría
- Profesor/a: Axudante Doutor LOSU
Mércores | |||
---|---|---|---|
09:00-11:30 | Grupo /CLIL_01 | Galego | IA.04 |
Xoves | |||
16:00-17:00 | Grupo /CLE_01 | Galego | IA.S1 |
16.01.2026 10:00-14:00 | Grupo /CLIL_01 | IA.11 |
16.01.2026 10:00-14:00 | Grupo /CLE_01 | IA.11 |
30.06.2026 10:00-14:00 | Grupo /CLIL_01 | Aula A2 |
30.06.2026 10:00-14:00 | Grupo /CLE_01 | Aula A2 |