Ir a cuerpo Ir a Estudios, Gobernanza y organización
Logo UA
Realizar búsqueda
Guías docentes
  DESARROLLO DE APLICACIONES DISTRIBUIDAS

Competencias y objetivos

 

Contexto de la asignatura para el curso 2020-21

Este curso está dirigido a estudiantes que desean diseñar, desarrollar, implementar o mover una aplicación o sistema de información a la nube utilizando la plataforma Microsoft Azure.

El curso cubrirá los tipos de servicios que ofrece un servicio de nube pública y cómo las aplicaciones pueden hacer uso de ella para explotar su potencial. Para ello se explicarán patrones de arquitectura y diseño de cara a lograr unas aplicaciones sólidas, robustas y escalables. Junto a ello, se mostrarán escenarios reales basados en situaciones históricas y se simularán dichos escenarios de forma detallada para dar a entender y exponer cómo un buen diseño y el uso de la potencia de un sistema de computación en la nube permite disponer de aplicaciones distribuidas robustas.

Por ello, durante el curso no sólo se explicarán conceptos puramente técnicos sino también conceptos culturales que deben ser tenidos en cuenta de cara al desarrollo de cualquier tipo de aplicación, especialmente de aquellas que son distribuidas.

Aunque durante el curso se usarán diversos servicios ofrecidos en la plataforma Microsoft Azure, no se centrará en temas avanzados y detallados de la administración y funcionamiento de esos servicios más allá de los requeridos para el uso de los ejemplos y escenarios que se explicarán. Tenga en cuenta, sin embargo, que no se trata simplemente de un curso paso a paso. No sólo se centra en los aspectos básicos del desarrollo de aplicaciones, sino que explica la lógica detrás del paradigma de la nube y los principales aspectos necesarios para liderar la nueva era del software, introduciendo aspectos prácticos de IaaS, CaaS, PaaS, Faas y Saas.

 

 

Competencias de la asignatura (verificadas por ANECA en grados y másteres oficiales)

Competencias Generales del Título (CG)

  • B10 : Capacidad para identificar, seleccionar e implementar los distintas capas y componentes que configuran la arquitectura software de las aplicaciones Web y las aplicaciones distribuidas.
  • B12 : Capacidad de conocer y aplicar el lenguaje de marcado XML y lenguajes de transformación relacionados con las aplicaciones Web, en los componentes y servicios software.
  • B6 : Capacidad para diseñar y programar en las distintas plataformas y lenguajes de programación con los que implementar aplicaciones Web.
  • B7 : Capacidad para diseñar y programar en las distintas plataformas y lenguajes de programación con los que implementar aplicaciones distribuidos.
  • B8 : Capacidad para diseñar y programar en las distintas plataformas y lenguajes de programación con los que implementar dispositivos móviles.
  • B9 : Capacidad para diseñar, consultar e integrar sistemas de base de datos buscando la optimización en su rendimiento.

 

Competencias Básicas y del MECES (Marco Español de Cualificaciones para la Educación Superior)

  • A1 : Capacidad de análisis y síntesis.
  • A10 : Habilidad de adaptación al ambiente cambiante propio de la disciplina, sabiendo aplicar los conocimientos adquiridos y resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
  • A11 : Capacidad de creatividad.
  • A12 : Motivación por la calidad.
  • A13 : Capacidad para mostrar información de forma clara atendiendo a un amplio conjunto de discapacidades técnicas, físicas y psíquicas.
  • A5 : Capacidad de trabajar en equipo con iniciativa y espíritu emprendedor.
  • A7 : Capacidad de razonamiento y extracción de conclusiones.
  • A8 : Compromiso ético y respeto por la propiedad intelectual.
  • A9 : Habilidad de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida auto-dirigido o autónomo.

 

Competencias Específicas Obligatorias:>>De Tecnologías de Desarrollo Software

  • C2.1 : Capacidad para aprender a utilizar una plataforma rica de desarrollo y a desarrollar mediante los lenguajes de programación de la plataforma .NET y Java.
  • C2.10 : Capacidad para aprender y desarrollar arquitecturas software distribuidas basadas en sistemas orientados a servicios mediante la plataformas .NET y Java.
  • C2.11 : Capacidad para desarrollar aplicaciones pesadas para un dispositivo móvil que requieren de una arquitectura orientada a servicios mediante la plataforma .NET y Java.
  • C2.12 : Capacidad para desarrollar interfaces de usuario ligeras en las aplicaciones para el dispositivo móvil.
  • C2.13 : Capacidad para aprender a definir, validar y utilizar el lenguaje de marcado XML en sus diferentes los diferentes escenarios de una aplicación.
  • C2.14 : Explicar los posibles usos de las transformaciones basadas en XSLT. Describir la forma de aplicar XSLT y las construcciones más básicas de este lenguaje.
  • C2.15 : Explicar los APIs básicos para analizar un documento XML. Describir las diferencias básicas entre los diferentes enfoques.
  • C2.2 : Capacidad para desarrollar aplicaciones de escritorio con acceso a una base de datos relacional mediante la plataforma .NET y Java.
  • C2.3 : Capacidad para conocer y utilizar las técnicas de desarrollo para aplicaciones Web, mediantes las herramientas de programación de la plataforma .NET y Java.
  • C2.4 : Capacidad para desarrollar aplicaciones Web mediante peticiones síncronas y asíncronas y con acceso a una base de datos relacionar en las plataformas .NET y Java.
  • C2.5 : Capacidad para aprender y aplicar diferentes soluciones de gestión de bases de datos para el acceso eficiente y para asegurar el acceso en entornos de alta concurrencia.
  • C2.6 : Conocer diferentes sistemas de gestión de bases de datos apropiados para el manejo de grandes volúmenes de información y valorar su integración con las plataformas de desarrollo software.
  • C2.7 : Conocer y saber aplicar las distintas opciones de indexación para mejorar el rendimiento de la base de datos relacional.
  • C2.8 : Capacidad para aprender y desarrollar arquitecturas de computación distribuidas basadas en llamadas a procedimientos remotos con la plataforma .NET y Java.
  • C2.9 : Capacidad para aprender y desarrollar arquitecturas de computación distribuida basadas en sistemas orientados a mensajes con la plataforma .NET y Java.

 

 

 

Resultados de aprendizaje (Objetivos formativos)

  • Utilizar una plataforma de cliente rico para el desarrollo de aplicaciones.
  • Utilizar herramientas que mejoren el desarrollo colaborativo como control de versiones, gestión documental, etc.
  • Desarrollar el código necesario para validar los datos de entrada mediante el uso de expresiones regulares y controles de validación, y controlar posibles excepciones.
  • Desarrollar aplicaciones que accedan a bases de datos mediante herramientas de mapeo objeto relacional.
  • Desarrollar programas que utilicen documentos el lenguaje de marcas extensible (XML) como fuente o repositorio de datos.
  • Estimular el conocimiento y la utilización de las nuevas tecnologías emergentes en el marco de las aplicaciones distribuidas.
  • Aprovechar las ventajas funcionales aportadas por este tipo de tecnologías para el desarrollo de aplicaciones distribuidas.
  • Perfeccionar la metodología de desarrollo de aplicaciones distribuidas.
  • Estimular el conocimiento y la utilización de nuevas tecnologías emergentes en el marco de las aplicaciones Web.
  • Desarrollar una aplicación Web siguiendo el proceso adecuado y con la utilización de nuevas tecnologías.
  • Perfeccionar la metodología de desarrollo de las aplicaciones Web.
  • Determinar la tecnología más adecuada para implementar una aplicación para dispositivos móviles.
  • Diseñar interfaces de usuario que se adapten a las características de los dispositivos, optimizando su usabilidad.
  • Desarrollar aplicaciones para dispositivos móviles que se comuniquen con aplicaciones Web y almacenen datos
  • locales.
  • Mantener réplicas locales de datos remotos, permitiendo a las aplicaciones trabajar en modo “offline”, y sincronizar ambas copias para mantener la consistencia.
  • Utilizar los emuladores para el desarrollo de aplicaciones para dispositivos móviles.
  • Especificar correctamente un nuevo lenguaje de marcado utilizando XML, mediante una gramática, permitiendo
  • posteriormente su validación.
  • Escribir analizadores mediante las interfaces de programación estándar de XML con Java y NET.
  • Decidir dónde y cómo es apropiado el uso de XML en un escenario de aplicación dado, evaluando las posibles
  • alternativas.
  • Evaluar la indización de base de datos óptima para cada sistema software.
  • Evaluar las consultas a base de datos y los procesos involucrados en función de su óptimo rendimiento.
  • Integrar estándares de representación en la gestión de datos.
  • Diferenciar la gestión de los datos de las plataformas que hacen uso de ellos.

 

 

Objetivos específicos indicados por el profesorado para el curso 2020-21

En finalitzar aquest curs, l'estudiant serà capaç de:

  • Entendre els diferents tipus de serveis oferits per un sistema de computació basat en el núvol.
  • Entendre els diferents escenaris de cara a tindre en compte per al disseny d'una aplicació distribuïda.
  • Entendre els riscos actuals, quin impacte tenen i què es pot fer per a mitigar-los a una aplicació distribuïda.
  • Entendre els diferents patrons de comunicació de cara al desenvolupament d'una aplicació distribuïda.

 

 

Datos generales

Código: 38212
Profesor/a responsable:
MATE MORGA, ALEJANDRO
Crdts. ECTS: 3,00
Créditos teóricos: 0,60
Créditos prácticos: 0,60
Carga no presencial: 1,80

Departamentos con docencia

  • Dep.: LENGUAJES Y SISTEMAS INFORMÁTICOS
    Área: LENGUAJES Y SISTEMAS INFORMATICOS
    Créditos teóricos: 0,6
    Créditos prácticos: 0,6
    Este dep. es responsable de la asignatura.
    Este dep. es responsable del acta.

Estudios en los que se imparte