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 consiste en formar ao/á alumno/a no desenvolvemento de aplicacións baseadas no concepto de servizo. Así, o/a alumno/a será capaz, por unha banda, de identificar para que situaciónes o uso de arquitecturas baseadas en servizos sen estado proporcionan unha solución idónea, e por outra banda, utilizar desde 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 consomen devanditos servizos. Máis concretamente, os obxectivos específicos da materia son os seguintes:
OBJ1. Entender o concepto de servizo.
OBJ2. Coñecer os principios e estilos arquitectónicos baseados en servizos.
OBJ3. Comprender o concepto de servizos sen estado.
OBJ4. Entender as características das aplicacións sen estado.
OBJ5. Coñecer o deseño e desenvolvemento de API de servizos.
OBJ6. Coñecer os estándares e boas prácticas para o desenvolvemento de API de servizos.
OBJ7. Coñecer metodoloxías para o desenvolvemento de aplicacións baseadas en API de servizos.
TEORÍA
Tema 1. Introdución á Enxeñaría de Servizos.
Tema 2. Compoñentes distribuídos e estilos arquitectónicos.
Tema 3. Concepto de servizo: servizos sen estado.
Tema 4. Deseño de servizos: boas prácticas.
Tema 5. Patróns de deseño de aplicacións baseadas en servizos.
Tema 6. Tecnoloxía para o desenvolvemento de aplicacións baseadas en servizos.
PRÁCTICAS
Poxecto: API DE SERVIZOS.
* Deseño da arquitectura do sistema.
* Seguridade e autenticación de usuarios.
* Deseño de servizos sen estado.
* Implementación dos servizos.
* Uso de Open API para a descrición de servizos.
Proxecto: CLIENTE WEB.
* Deseño do cliente web.
* Modelo de datos (JSON).
* Invocación de servizos.
* Implementación do cliente (JavaScript).
BIBLIOGRAFÍA BÁSICA (por orden de prioridad)
1. MASSE, Mark. REST API Design Rulebook. 1a Edición, O'Really Media, 2011. ISBN: 978-1449310509.
2. ERL, Thomas, CARLYLE, Benjamin, PAUTASSO, Cesare, BALASUBRAMANIAN, Raj. SOA with REST: Principles, Patterns & Constraints for Building Enterprise Solutions. 1a Edición, Prentice Hall, 2013. ISBN: 978-0137012519.
3. RICHARDSON, Leonard, RUBY, Sam David. Restful Web Services. 1a Edición, O'Reilly, 2007. ISBN: 978-0596529260
[Sig.: C60 28, Escola Técnica de Enxeñaría Informática]
BIBLIOGRAFÍA COMPLEMENTARIA (por orden de prioridad)
4. WALLS, Craig. Spring Boot in Action. 1a Edición, Manning Publications, 2016. ISBN: 978-1617292545.
5. WIERUCH, Robin. The road to learn React: Your journey to master plain yet pragmatic React.js. https://github.com/the-road-to-learn-react/the-road-to-learn-react
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 esta disciplina doutras aproximacións. O/A alumno/a debe estar capacitado/a, por tanto, para entender as vantaxes 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áticas 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 outras paradigmas distibuidos, en espacial dos servizos sen estado; e (b) no tipo de problemas que resolven. Estes conceptos explicaranse, por unha banda, independentemente das linguaxes de programación nas que se implementan os servizos, e por outra banda, focalizando nas aproximacións e estilos arquitectónicos máis usados na actualidade.
(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, en especial clientes baseados en JavaScript. É importante que nestas sesións prácticas o alumno/a desenvolva 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 e, máis concretamente, para a implementación de solucións web baseadas no cliente. A asistencia a estas clases por parte dos alumno/a é OBRIGATORIA.
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 escalabilidad. 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 na parte práctica, xa que nela débense analizar os problemas expostos e sintetizar os conceptos da Enxeñaría de Servizos; a competencia TR2 traballarase o desenvolvemento da API de servizos sen estado no que o alumno/a terá que interaccionar entre si para executar os servizos desenvoltos polos seus compañeiros; e a competencia TR3 traballarase na parte práctica, xa que nela é onde o alumno/a debe adaptarse a unha novo paradigma de desenvolvemento de aplicacións web (baseado no cliente).
A avaliación da materia terá lugar de dúas maneiras diferentes, aínda que complementarios, 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) Exame no que o alumno/a demostrará o dominio dos aspectos teóricos da enxeñaría de servizos como alternativa ou complemento aos outros paradigmas de computación distribuída, así como das aproximacións que se seguen para implementar solucións arquitectónicas baseadas en servizos, en especial dos servizos sen estado cos que se desenvolven arquitecturas máis escalables e flexibles. Este exame constituirá o 50% da nota final e SERÁ REQUISITO IMPRESCINDIBLE APROBALO PARA SUPERAR A MATERIA.
(2) Realización dun proxecto no que o alumno/a demostrará de maneira práctica o dominio do deseño e implementación de APIs de servizos, así como o desenvolvemento dun cliente que consumirá ditas APIs para prover a funcionalidade demandada polo cliente. Esta parte constituirá o 50% da nota final da materia e será realizada polo alumno/a de maneira individual. Ademais, o proxecto constará das seguintes partes:
2.(a) Na primeira parte desenvolverase unha API de servizos que soportará a funcionalidade do proxecto. Esta API deberase deseñar e implementar seguindo os preceptos e boas prácticas da paradigma de servizos sen estado, como unha das mellores solucións para o desenvolvemento de arquitecturas modulares e escalables, necesarias, por exemplo, na programación web. Nesta parte tamén se fará uso de estándares (Open API) para a descrición dos servizos sen estado. Esta parte constituirá o 60% da nota práctica e SERÁ REQUISITO IMPRESCINDIBLE APROBALA PARA SUPERAR A MATERIA.
2.(b) Na segunda parte desenvolverase un cliente que consumirá a API de servizos implementada en 2.(a). Este cliente estará baseado en JavaScript, xa que actualmente é un das linguaxes máis usadas para o desenvolvemento de clientes web e de dispositivos móbiles. Desta forma, achegaremos ao alumno/a á proramación web baseada no cliente, un das paradigmas máis utilizados na actualidade para o desenvolvemento de solucións web ao descargar ao servidor de manter o estado da aplicación. Esta parte constituirá o 40% da nota práctica.
Por outra banda, a parte práctica dividirase en dúas entregas, correspodientes aos diferentes tipos de funcionalidades do proxecto. Tendo isto en conta, se se realiza a primeira entrega, considerarase como presentado na materia.
CONTROL DE ASISTENCIA
A asistencia ás sesións prácticas interactivas é obrigatoria debido a que nelas se abordan conceptos crave da materia, e o control desta asistencia realizarase a través de follas de firmas que o alumno/a deberá cubrir á finalización de cada unha das sesións. Ademais, se un alumno/a asiste a menos do 80% das sesións prácticas interactivas, considerarase que non superou a materia.
OPORTUNIDADE DE RECUPERACIÓN
A avaliación das partes de teoría e práctica serán exactamente as mesmas que para a oportunidade ordinaria. Por tanto, ademais de superar o exame de teoría e o proxecto correspondente á parte práctica, para poder superar a materia será necesario que o alumnado asista ás sesións prácticas interactivas. 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 oportunidade de recuperación.
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 o leste estudo non só inclúe o tempo necesario para preparar o exame teórico, senón tamén o tempo que o alumno/a precisa para entender os conceptos teóricos de xeito que os poida aplicar correctamente ao deseño e implementación dos servizos sen cliente e dos clientes web que consomen este tipo de servizos.
(2) Docencia interactiva (30 horas). O tempo dedicado á realización do proxecto durante as sesións interactivas, é dicir, ao deseño e implementación dos servizos sen estado e do desenvolvemento do cliente web. Nestas sesinoes, ademais, 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 a maneira de resolver o proxecto, 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. Ademais, neste tempo asociado ao estudo e realización das preguntas que formarán parte do exame teórico.
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, tutoriales 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.
O idioma preferente de impartición das clases expositivas e interactivas é o galego.
Daniel Cores Costa
Coordinador/a- Departamento
- Electrónica e Computación
- Área
- Ciencia da Computación e Intelixencia Artificial
- Correo electrónico
- daniel.cores [at] usc.es
- Categoría
- Profesor/a: Profesor Axudante Doutor LOU
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.2025 10:00-14:00 | Grupo /CLE_01 | IA.S1 |
16.01.2025 10:00-14:00 | Grupo /CLIL_01 | IA.S1 |
09.07.2025 10:00-14:00 | Grupo /CLIL_01 | Aula A3 |
09.07.2025 10:00-14:00 | Grupo /CLE_01 | Aula A3 |