Descripción

Conviértete en uno de los profesionales más demandados del momento: fórmate como Maestría en Creación de Interfaces y Aplicaciones en Red con este completísimo Maestría”

Esta formación desarrollará los conceptos necesarios trabajar en la creación de Interfaces, con la seguridad que el dominio de todas las áreas de conocimientos transversales a este tema,  proporcionan al especialista. A lo largo del temario de plantearán abordajes didácticos innovadores, para conocer en profundidad la arquitectura de una aplicación distribuida. Se presentarán los aspectos particulares de la arquitectura cliente-servidor y se tratarán los fundamentos y desarrollos imprescindibles de los lenguajes de programación más utilizados, diferenciando entre lenguajes entre otras múltiples cuestiones fundamentales para el profesional. 

Esta formación desarrollará los conceptos necesarios trabajar en la creación de Interfaces, con la seguridad que el dominio de todas las áreas de conocimientos transversales a este tema,  proporcionan al especialista.}

A lo largo del temario de plantearán abordajes didácticos innovadores, para conocer en profundidad la arquitectura de una aplicación distribuida. Se presentarán los aspectos particulares de la arquitectura cliente-servidor y se tratarán los fundamentos y desarrollos imprescindibles de los lenguajes de programación más utilizados, diferenciando entre lenguajes entre otras múltiples cuestiones fundamentales para el profesional. Este conocimiento imprescindible se convierte además, en el primer paso para acceder a la propia capacidad de desarrollo de este tipo de tecnología.  A lo largo de esta formación te ofreceremos un panorama real de trabajo para poder valorar la conveniencia de su aplicación en nuestro proyecto, valorando sus indicaciones reales, su manera de desarrollo y las expectativas que podemos tener con respecto a los resultados. 

Mediante la experiencia, conseguirás aprender cómo se desarrollan los conocimientos necesarios para avanzar en esta área de trabajo. Este aprendizaje, que necesita obligatoriamente de la experiencia, consigue en esta formación, conciliar teleaprendizaje y enseñanza práctica ofreciéndote una opción única para dar a tu cv el impulso que buscas. 

Incorpórate a la élite, con esta formación de alta eficacia formativa y abre nuevos caminos a tu progreso profesional”

Éste Maestría en Creación de Interfaces y Aplicaciones en Red, contiene el programa científico más completo y actualizado del mercado. Sus características más destacadas:

  • Última tecnología en software de enseñanza online.
  • Sistema docente intensamente visual, apoyado en contenidos gráficos y esquemáticos de fácil asimilación y comprensión.
  • Desarrollo de casos prácticos presentados por expertos en activo.
  • Sistemas de vídeo interactivo de última generación.
  • Enseñanza apoyada en la telepráctica.
  • Sistemas de actualización y reciclaje permanente.
  • Aprendizaje autoregulable: total compatibilidad con otras ocupaciones.
  • Ejercicios prácticos de autoevaluación y constatación de aprendizaje.
  • Grupos de apoyo y sinergias educativas: preguntas al experto, foros de discusión y conocimiento.
  • Comunicación con el docente y trabajos de reflexión individual.
  • Disponibilidad de los contenidos desde cualquier dispositivo fijo o portátil con conexión a internet.
  • Bancos de documentación complementaria disponible permanentemente, incluso después del Maestría.

Un Maestría que te capacitará para trabajar en todos los ámbitos de la Creación de Interfaces y Aplicaciones en Red con la solvencia de un profesional de alto nivel”

Nuestro personal docente está integrado por profesionales de diferentes ámbitos relacionados con esta especialidad. De esta manera nos aseguramos de ofrecerte el objetivo de actualización formativa que pretendemos. Un cuadro multidisciplinar de profesionales formados y experimentados en diferentes entornos, que desarrollarán los conocimientos teóricos, de manera eficiente, pero, sobre todo, pondrán a tu servicio los conocimientos prácticos derivados de su propia experiencia: una de las cualidades diferenciales de esta formación.

Este dominio de la materia se complementa con la eficacia del diseño metodológico. Elaborado por un equipo multidisciplinario de expertos en e-learning integra los últimos avances en tecnología educativa. De esta manera, podrás estudiar con un elenco de herramientas multimedia cómodas y versátiles que te darán la operatividad que necesitas en tu formación.

El diseño de este programa está basado en el Aprendizaje Basado en Problemas: un planteamiento que concibe el aprendizaje como un proceso eminentemente práctico. Para conseguirlo de forma remota, usaremos la telepráctica: con la ayuda de un novedoso sistema de vídeo interactivo, y el learning from an expert podrás adquirir los conocimientos como si estuvieses enfrentándote al supuesto que estás aprendiendo en ese momento. Un concepto que te permitirá integrar y fijar el aprendizaje de una manera más realista y permanente.

Con un diseño metodológico que se apoya en técnicas de enseñanza contrastadas por su eficacia, este novedoso Maestría en Creación de Interfaces y Aplicaciones en Red te llevará a través de diferentes abordajes docentes para permitirte aprender de forma dinámica y eficaz"

 

Con la experiencia de profesionales en activo, expertos en Creación de Interfaces y Aplicaciones en Red"

Temario

Los contenidos de este Maestría han sido desarrollados por los diferentes expertos de este Maestría, con una finalidad clara: conseguir que nuestro alumnado adquiera todas y cada una de las habilidades necesarias para convertirse en verdaderos expertos en esta materia.
Un programa completísimo y muy bien estructurado que te llevará hacia los más elevados estándares de calidad y éxito.

Un completísimo programa docente, estructurado en unidades didácticas muy bien desarrolladas, orientadas a un aprendizaje compatible con tu vida personal y profesional”

Módulo 1. Interacción Persona-Ordenador

1.1. Introducción a la interacción persona-ordenador

1.1.1. Qué es la interacción persona-ordenador
1.1.2. Relación de la interacción persona-ordenador con otras disciplinas
1.1.3. La interfaz de usuario
1.1.4. Usabilidad y accesibilidad
1.1.5. Experiencia de usuario y diseño centrado en el usuario

1.2. El ordenador y la interacción: interfaz de usuario y paradigmas de interacción

1.2.1. La interacción
1.2.2. Paradigmas y estilos de interacción
1.2.3. Evolución de las interfaces de usuario
1.2.4. Interfaces de usuario clásicas: WIMP/GUI, comandos, voz, realidad virtual
1.2.5. Interfaces de usuario innovadoras: móviles, portátiles, colaborativas, BCI

1.3. El factor humano: aspectos psicológicos y cognitivos

1.3.1. La importancia del factor humano en la interacción
1.3.2. El procesamiento humano de información
1.3.3. La entrada y salida de la información: visual, auditiva y táctil
1.3.4. Percepción y atención
1.3.5. Conocimiento y modelos mentales: representación, organización y adquisición

1.4. El factor humano: limitaciones sensoriales y físicas

1.4.1. Diversidad funcional, discapacidad y deficiencia
1.4.2. Diversidad visual
1.4.3. Diversidad auditiva
1.4.4. Diversidad cognitiva
1.4.5. Diversidad motórica
1.4.6. El caso de los inmigrantes digitales

1.5. El proceso de diseño (I): análisis de requisitos para el diseño de la interfaz de usuario

1.5.1. Diseño centrado en el usuario
1.5.2. Qué es el análisis de requisitos
1.5.3. La recogida de información
1.5.4. Análisis e interpretación de la información
1.5.5. Análisis de la usabilidad y la accesibilidad

1.6. El proceso de diseño (II): prototipado y análisis de tareas

1.6.1. Diseño conceptual
1.6.2. Prototipado
1.6.3. Análisis jerárquico de tareas

1.7. El proceso de diseño (III): la evaluación

1.7.1. Evaluación en el proceso de diseño: objetivos y métodos
1.7.2. Métodos de evaluación sin usuarios
1.7.3. Métodos de evaluación con usuarios
1.7.4. Estándares y normas de evaluación

1.8. Accesibilidad: definición y pautas

1.8.1. Accesibilidad y diseño universal
1.8.2. La iniciativa WAI y las pautas WCAG
1.8.3. Pautas WCAG 2.0 y 2.1

1.9. Accesibilidad: evaluación y diversidad funcional

1.9.1. Herramientas de evaluación de la accesibilidad en la web
1.9.2. Accesibilidad y diversidad funcional

1.10. El ordenador y la interacción: periféricos y dispositivos

1.10.1. Dispositivos y periféricos tradicionales
1.10.2. Dispositivos y periféricos alternativos
1.10.3. Móviles y tabletas
1.10.4. Diversidad funcional, interacción y periféricos

Módulo 2. Bases de Datos

2.1. Aplicaciones y propósitos de los sistemas de base de datos

2.1.1. Aplicaciones de los diferentes sistemas de base de datos
2.1.2. Propósito en los diferentes sistemas de base de datos
2.1.3. Visión de los datos

2.2. Base de datos y arquitectura

2.2.1. Base de datos relacionales
2.2.2. El diseño de base de datos
2.2.3. Bases de datos basadas en objetos y semiestructuradas
2.2.4. Almacenamiento de datos y consultas
2.2.5. Gestión de transacciones
2.2.6. Minería y análisis de datos
2.2.7. Arquitectura de las bases de datos

2.3. El modelo relacional: estructura, operaciones y álgebra relacional extendida

2.3.1. La estructura de las BD relacionales
2.3.2. Operaciones fundamentales en el álgebra relacional
2.3.3. Otras operaciones del álgebra relacional
2.3.4. Operaciones del álgebra relacional extendida
2.3.5. Valores nulos
2.3.6. Modificación de la base de datos

2.4. SQL (I)

2.4.1. ¿Qué es SQL?
2.4.2. La definición de datos
2.4.3. Estructura básica de las consultas SQL
2.4.4. Operaciones sobre conjuntos
2.4.5. Funciones de agregación
2.4.6. Valores nulos

2.5. SQL (II)

2.5.1. Subconsultas anidadas
2.5.2. Consultas complejas
2.5.3. Vistas
2.5.4. Cursores
2.5.5. Consultas complejas
2.5.6. Disparadores

2.6. Diseño de base de datos y el modelo E-R

2.6.1. Visión general del proceso de diseño
2.6.2. El modelo entidad-relación
2.6.3. Restricciones

2.7. Diagramas entidad-relación

2.7.1. Diagramas entidad-relación
2.7.2. Aspectos del diseño entidad-relación
2.7.3. Conjuntos de entidades débiles

2.8. El modelo entidad-relación extendido

2.8.1. Características del modelo E-R extendido
2.8.2. Diseño de una base de datos
2.8.3. Reducción a esquemas relacionales

2.9. Diseño de bases de datos relacionales

2.9.1. Características de los buenos diseños relacionales
2.9.2. Dominios atómicos y la primera forma normal (1FN)
2.9.3. Descomposición mediante dependencias funcionales
2.9.4. Teoría de las dependencias funcionales
2.9.5. Algoritmos de descomposición
2.9.6. Descomposición mediante dependencias multivaloradas
2.9.7. Más formas normales
2.9.8. Proceso de diseño de las base de datos

2.10. Bases de datos NoSQL

2.10.1. ¿Qué son las bases de datos NoSQL?
2.10.2. Análisis de las diferentes opciones de NoSQL y sus características
2.10.3. Mongo DB

Módulo 3. Desarrollo de Aplicaciones en Red

3.1. Lenguajes de marcado HTML5

3.1.1. Conceptos básicos de HTML
3.1.2. Nuevos elementos HTML 5
3.1.3. Formularios: nuevos controles

3.2. Introducción a hojas de estilo CSS

3.2.1. Primeros pasos con CSS
3.2.2. Introducción a CSS3

3.3. Lenguaje script de navegador: JavaScript

3.3.1. Conceptos básicos de JavaScript
3.3.2. DOM
3.3.3. Eventos
3.3.4. JQuery
3.3.5. Ajax

3.4. Concepto de la programación orientada a componentes

3.4.1. Contexto
3.4.2. Componentes e interfaces
3.4.3. Estados de un componente

3.5. Arquitectura de componentes

3.5.1. Arquitecturas actuales
3.5.2. Integración y despliegue de componentes

3.6. Framework Front-End: Bootstrap

3.6.1. Diseño con rejilla
3.6.2. Formularios
3.6.3. Componentes

3.7. Modelo vista controlador

3.7.1. Métodos de desarrollo Web
3.7.2. Patrón de diseño: MVC

3.8. Tecnologías Grid de la información

3.8.1. Incremento de recursos en computación
3.8.2. Concepto de tecnología Grid

3.9. Arquitectura orientada a servicios

3.9.1. SOA y servicios Web
3.9.2. Topología de un servicio Web
3.9.3. Plataformas para los servicios Web

3.10. Protocolo HTTP

3.10.1. Mensajes
3.10.2. Sesiones persistentes
3.10.3. Sistema criptográfico
3.10.4. Funcionamiento del protocolo HTTPS

Módulo 4. Software Libre y Conocimiento Abierto

4.1. Introducción al Software Libre

4.1.1. Historia del software libre
4.1.2. “Libertad” en el software
4.1.3. Licencias de uso de herramientas software
4.1.4. Propiedad intelectual del software
4.1.5. ¿Cuál es la motivación de usar software libre?
4.1.6. Mitos del software libre
4.1.7. Top500

4.2. Conocimiento abierto y licencias CC

4.2.1. Conceptos básicos
4.2.2. Licencias Creative Commons
4.2.3. Otras licencias de contenidos
4.2.4. Wikipedia y otros proyectos de conocimiento abierto

4.3. Principales herramientas de software libre

4.3.1. Sistemas operativos
4.3.2. Aplicaciones ofimáticas
4.3.3. Aplicaciones de gestión empresarial
4.3.4. Gestores de contenido web
4.3.5. Herramientas de creación de contenidos multimedia
4.3.6. Otras aplicaciones

4.4. La empresa: El Software Libre y sus costes

4.4.1. Software libre: ¿sí o no?
4.4.2. Verdades y mentiras sobre el software libre
4.4.3. Software empresarial basado en software libre
4.4.4. Costes del software
4.4.5. Modelos de software libre

4.5. El sistema operativo GNU/Linux

4.5.1. Arquitectura
4.5.2. Estructura de directorios básica
4.5.3. Características y estructura del sistema de archivos
4.5.4. Representación interna de los archivos

4.6. El sistema operativo móvil Android

4.6.1. Historia
4.6.2. Arquitectura
4.6.3. Forks de Android
4.6.4. Introducción al desarrollo para Android
4.6.5. Frameworks para el desarrollo de aplicaciones móviles

4.7. Creación de sitios web con WordPress

4.7.1. Características y estructura de WordPress
4.7.2. Creación de sitios en wordpress.com
4.7.3. Instalación y configuración de WodPress en un servidor propio
4.7.4. Instalación de plugins y ampliación de WordPress
4.7.5. Creación de plugins para WordPress
4.7.6. Creación de temas para WordPress

4.8. Las tendencias del software libre

4.8.1. Entrornos en la nube
4.8.2. Herramientas de monitorización
4.8.3. Sistemas operativos
4.8.4. Big Data y Open Data 2.0
4.8.5. Computación cuántica

4.9. Control de versiones

4.9.1. Conceptos básicos
4.9.2. Git
4.9.3. Servicios Git en la nube y autoalojados
4.9.4. Otros sistemas de control de versiones

4.10. Distribuciones de GNU/Linux personalizadas

4.10.1. Principales distribuciones
4.10.2. Distribuciones derivadas de Debian
4.10.3. Creación de paquetes deb
4.10.4. Modificación de la distribución
4.10.5. Generación de imágenes ISO

Módulo 5. Bases de Datos Avanzadas

5.1. Introducción a los diferentes sistemas de bases de datos

5.1.1. Repaso histórico
5.1.2. Bases de datos jerárquicas
5.1.3. Bases de datos red
5.1.4. Bases de datos relacionales
5.1.5. Bases de datos no relacionales

5.2. XML y bases de datos para la web

5.2.1. Validación de documentos XML
5.2.2. Transformaciones de documentos XML
5.2.3. Almacenamiento de datos XML
5.2.4. Bases de datos relacionales XML
5.2.5. SQL/XML
5.2.6. Bases de datos nativas XML

5.3. Bases de datos paralelas

5.3.1. Sistemas paralelos
5.3.2. Arquitecturas paralelas de bases de datos
5.3.3. Paralelismo en consultas
5.3.4. Paralelismo entre consultas
5.3.5. Diseño de sistemas paralelos
5.3.6. Procesamiento paralelo en SQL

5.4. Bases de datos distribuidas

5.4.1. Sistemas distribuidos
5.4.2. Almacenamiento distribuido
5.4.3. Disponibilidad
5.4.4. Procesamiento distribuido de consultas
5.4.5. Proveedores de bases de datos distribuidas

5.5. Indexación y asociación

5.5.1. Índices ordenados
5.5.2. Índices densos y dispersos
5.5.3. Índices multinivel
5.5.4. Actualización del índice
5.5.5. Asociación estática
5.5.6. Cómo usar índices en bases de datos

5.6. Introducción al procesamiento transaccional

5.6.1. Estados de una transacción
5.6.2. Implementación de la atomicidad y durabilidad
5.6.3. Secuencialidad
5.6.4. Recuperabilidad
5.6.5. Implementación del aislamiento

5.7. Sistemas de recuperación

5.7.1. Clasificación de fallos
5.7.2. Estructuras de almacenamiento
5.7.3. Recuperación y atomicidad
5.7.4. Recuperación basada en registro histórico
5.7.5. Transacciones concurrentes y recuperación
5.7.6. Alta disponibilidad en bases de datos

5.8. Ejecución y procesamiento de consultas

5.8.1. Coste de una consulta
5.8.2. Operación de selección
5.8.3. Ordenación
5.8.4. Introducción a la optimización de consultas
5.8.5. Monitorización del rendimiento

5.9. Bases de datos no relacionales

5.9.1. Bases de datos orientadas a documentos
5.9.2. Bases de datos orientadas a grafos
5.9.3. Bases de datos clave-valor

5.10. Data warehouse, OLAP y minería de datos

5.10.1. Componentes de los almacenes de datos
5.10.2. Arquitectura de un data warehouse
5.10.3. OLAP
5.10.4. Funcionalidades de la minería de datos
5.10.5. Otros tipos de minería

Módulo 6. Ingeniería del Software

6.1. Marco de Ingeniería software

6.1.1. Características del software
6.1.2. Los procesos principales en Ingeniería del software
6.1.3. Modelos de proceso de desarrollo software
6.1.4. Marco de referencia estándar para el proceso de desarrollo de software: la norma ISO/IEC 12207

6.2. Proceso Unificado de desarrollo software

6.2.1. Proceso Unificado
6.2.2. Dimensiones del Proceso Unificado
6.2.3. Proceso de desarrollo dirigido por casos de uso
6.2.4. Flujos de trabajo fundamentales de Procesos Unificados

6.3. Planificación en el contexto de desarrollo de software ágil

6.3.1. Características del desarrollo software ágil
6.3.2. Diferentes horizontes temporales de planificación en el desarrollo ágil
6.3.3. Marco de desarrollo ágil Scrum y horizontes temporales de planificación
6.3.4. Historias de usuario como unidad de planificación y estimación
6.3.5. Técnicas comunes para derivar una estimación
6.3.6. Escalas para interpretar las estimaciones
6.3.7. Planning poker
6.3.8. Tipos de planificaciones comunes: planificación de entregas y planificación de iteración

6.4. Estilos de diseño de software distribuido y arquitecturas software orientadas a servicios

6.4.1. Modelos de comunicación en sistemas software distribuidos
6.4.2. Capa intermedia o middleware
6.4.3. Patrones de arquitectura para sistemas distribuidos
6.4.4. Proceso general de diseño de servicios software
6.4.5. Aspectos de diseño de servicios software
6.4.6. Composición de servicios
6.4.7. Arquitectura de servicios web
6.4.8. Componentes de Infraestructura y SOA

6.5. Introducción al desarrollo software dirigido por modelos

6.5.1. El concepto de modelo
6.5.2. Desarrollo software dirigido por modelos
6.5.3. Marco de referencia de desarrollo dirigido por modelos MDA
6.5.4. Elementos de un modelo de transformación

6.6. Diseño de interfaces gráficas de usuario

6.6.1. Principios de diseño de interfaces de usuario
6.6.2. Patrones de diseño arquitectónico para sistemas interactivos: Modelo Vista Controlador (MVC)
6.6.3. Experiencia de usuario (UX User Experience)
6.6.4. Diseño centrado en el usuario
6.6.5. Proceso de análisis y diseño de la interfaz gráfica de usuario
6.6.6. Usabilidad de interfaces de usuario
6.6.7. Accesibilidad en interfaces de usuario

6.7. Diseño de aplicaciones web

6.7.1. Características de las aplicaciones web
6.7.2. Interfaz de usuario de una aplicación web
6.7.3. Diseño de navegación
6.7.4. Protocolo de interacción base para aplicaciones web
6.7.5. Estilos de arquitectura para aplicaciones web

6.8. Estrategias y técnicas de pruebas software y factores de calidad del software

6.8.1. Estrategias de prueba
6.8.2. Diseños de casos de prueba
6.8.3. Relación coste calidad
6.8.4. Modelos de calidad
6.8.5. Familia de normas ISO/IEC 25000 (SQuaRE)
6.8.6. Modelo de calidad de producto (ISO 2501n)
6.8.7. Modelos de calidad de datos (ISO 2501n)
6.8.8. Gestión de la calidad del software

6.9. Introducción a las métricas en Ingeniería software

6.9.1. Conceptos básicos: medidas, métricas e indicadores
6.9.2. Tipos de métricas en Ingeniería software
6.9.3. El proceso de medición
6.9.4. ISO 25024. Métricas externas y de calidad en uso
6.9.5. Métrica orientada a objetos

6.10. Mantenimiento y reingeniería software

6.10.1. Proceso de mantenimiento
6.10.2. Marco estándar de proceso de mantenimiento. ISO/EIEC 14764
6.10.3. Modelo de proceso de reingeniería de software
6.10.4. Ingeniería inversa

Módulo 7. Programación Avanzada

7.1. Introducción a la programación orientada a objetos

7.1.1. Introducción a la programación orientada a objetos
7.1.2. Diseño de clases
7.1.3. Introducción a UML para el modelado de los problemas

7.2. Relaciones entre clases

7.2.1. Abstracción y herencia
7.2.2. Conceptos avanzados de herencia
7.2.3. Polimorfismo
7.2.4. Composición y agregación

7.3. Introducción a los patrones de diseño para problemas orientados a objetos

7.3.1. Qué son los patrones de diseño
7.3.2. Patrón Factory
7.3.3. Patrón Singleton
7.3.4. Patrón Observer
7.3.5. Patrón Composite

7.4. Excepciones

7.4.1. ¿Qué son las excepciones?
7.4.2. Captura y gestión de excepciones
7.4.3. Lanzamiento de excepciones
7.4.4. Creación de excepciones

7.5. Interfaces de usuarios

7.5.1. Introducción a Qt
7.5.2. Posicionamiento
7.5.3. ¿Qué son los eventos?
7.5.4. Eventos: definición y captura
7.5.5. Desarrollo de interfaces de usuario

7.6. Introducción a la programación concurrente

7.6.1. Introducción a la programación concurrente
7.6.2. El concepto de proceso e hilo
7.6.3. Interacción entre procesos o hilos
7.6.4. Los hilos en C++
7.6.5. Ventajas e inconvenientes de la programación concurrente

7.7. Gestión de hilos y sincronización

7.7.1. Ciclo de vida de un hilo
7.7.2. La clase Thread
7.7.3. Planificación de hilos
7.7.4. Grupos hilos
7.7.5. Hilos de tipo demonio
7.7.6. Sincronización
7.7.7. Mecanismos de bloqueo
7.7.8. Mecanismos de comunicación
7.7.9. Monitores

7.8. Problemas comunes dentro de la programación concurrente

7.8.1. El problema de los productores consumidores
7.8.2. El problema de los lectores y escritores
7.8.3. El problema de la cena de los filósofos

7.9. Documentación y pruebas de software

7.9.1. ¿Por qué es importante documentar el software?
7.9.2. Documentación de diseño
7.9.3. Uso de herramientas para la documentación

7.10. Pruebas de software

7.10.1. Introducción a las pruebas del software
7.10.2. Tipos de pruebas
7.10.3. Prueba de unidad
7.10.4. Prueba de integración
7.10.5. Prueba de validación
7.10.6. Prueba del sistema

Módulo 8. Reutilización del Software

8.1. Panorama general de la reutilización de software

8.1.1. En qué consiste la reutilización del software
8.1.2. Ventajas e inconvenientes de la reutilización de software
8.1.3. Principales técnicas de reutilización de software

8.2. Introducción a los patrones de diseño

8.2.1. ¿Qué es un patrón de diseño?
8.2.2. Catálogo de los principales patrones de diseño
8.2.3. Cómo usar patrones para resolver problemas de diseño
8.2.4. Cómo seleccionar el mejor patrón de diseño

8.3. Patrones de creación

8.3.1. Patrones de creación
8.3.2. Patrón Abstract Factory
8.3.3. Ejemplo de implementación del Patrón Abstract Factory
8.3.4. Patrón Builder
8.3.5. Ejemplo de implementación del Builder
8.3.6. Patrón Abstract Factory vs. Builder

8.4. Patrones de creación (II)

8.4.1. Patrón Factory Method
8.4.2. Factory Method vs Abstract Factory
8.4.3. Patrón Singleton

8.5. Patrones estructurales

8.5.1. Patrones estructurales
8.5.2. Patrón Adapter
8.5.3. Patrón Bridge

8.6. Patrones estructurales (II)

8.6.1. Patrón Composite
8.6.2. Patrón Decorador

8.7. Patrones estructurales (III)

8.7.1. Patrón Facade
8.7.2. Patrón Proxy

8.8. Patrones de comportamiento

8.8.1. Concepto de los patrones de comportamiento
8.8.2. Patrón de comportamiento: Cadena de responsabilidad
8.8.3. Patrón de comportamiento Orden

8.9. Patrones de comportamiento (II)

8.9.1. Patrón Intérprete o Interpreter
8.9.2. Patrón Iterador
8.9.3. Patrón Observador
8.9.4. Patrón Estrategia

8.10. Frameworks

8.10.1. Concepto de framework
8.10.2. Desarrollo mediante frameworks
8.10.3. Patrón Model View Controller
8.10.4. Framework para diseño de interfaces gráficas de usuario
8.10.5. Frameworks para el desarrollo de aplicaciones web
8.10.6. Frameworks para la gestión de la persistencia de objetos en bases de datos

Módulo 9. Inteligencia Artificial e Ingeniería del Conocimiento

9.1. Introducción a la Inteligencia Artificial y a la Ingeniería del Conocimiento

9.1.1. Breve historia de la Inteligencia Artificial
9.1.2. La Inteligencia Artificial hoy en día
9.1.3. Ingeniería del Conocimiento

9.2. Búsqueda

9.2.1. Conceptos comunes de búsqueda
9.2.2. Búsqueda no informada
9.2.3. Búsqueda informada

9.3. Satisfacibilidad booleana, Satisfacibilidad de restricciones y planificación automática

9.3.1. Satisfacibilidad booleana
9.3.2. Problemas de satisfacción de restricciones
9.3.3. Planificación Automática y PDDL
9.3.4. Planificación como Búsqueda Heurística
9.3.5. Planificación con SAT

9.4. La Inteligencia Artificial en Juegos

9.4.1. Teoría de Juegos
9.4.2. Minimax y poda Alfa-Beta
9.4.3. Simulación: Monte Carlo

9.5. Aprendizaje supervisado y no supervisado

9.5.1. Introducción al Aprendizaje Automático
9.5.2. Clasificación
9.5.3. Regresión
9.5.4. Validación de resultados
9.5.5. Agrupación (Clustering)

9.6. Redes de neuronas

9.6.1. Fundamentos Biológicos
9.6.2. Modelo Computacional
9.6.3. Redes de Neuronas Supervisadas y no Supervisadas
9.6.4. Perceptrón Simple
9.6.5. Perceptrón Multicapa

9.7. Algoritmos genéticos

9.7.1. Historia
9.7.2. Base biológica
9.7.3. Codificación de problemas
9.7.4. Generación de la población inicial
9.7.5. Algoritmo principal y operadores genéticos
9.7.6. Evaluación de individuos: fitness

9.8. Tesauros, vocabularios, taxonomías

9.8.1. Vocabularios
9.8.2. Taxonomías
9.8.3. Tesauros
9.8.4. Ontologías

9.9. Representación del conocimiento: Web Semántica

9.9.1. Web Semántica
9.9.2. Especificaciones: RDF, RDFS y OWL
9.9.3. Inferencia/razonamiento
9.9.4. Linked Data

9.10. Sistemas expertos y DSS

9.10.1. Sistemas expertos
9.10.2. Sistemas de soporte a la decisión

Módulo 10. Ingeniería del Software Avanzada

10.1. Introducción a las metodologías ágiles

10.1.1. Modelos de proceso y metodologías
10.1.2. Agilidad y procesos ágiles
10.1.3. Manifiesto ágil
10.1.4. Algunas metodologías ágiles
10.1.5. Ágil vs. tradicional

10.2. Scrum

10.2.1. Orígenes y filosofía de Scrum
10.2.2. Valores de Scrum
10.2.3. Flujo del proceso Scrum
10.2.4. Los roles de Scrum
10.2.5. Los artefactos de Scrum
10.2.6. Los eventos de Scrum
10.2.7. Las historias de usuario
10.2.8. Extensiones de Scrum
10.2.9. Estimaciones ágiles
10.2.10. Escalado de Scrum

10.3. Programación extrema

10.3.1. Justificación y visión general de XP
10.3.2. El ciclo de vida en XP
10.3.3. Los cinco valores básicos
10.3.4. Las doce prácticas básicas en XP
10.3.5. Roles de los participantes
10.3.6. XP Industrial
10.3.7. Valoración crítica de XP

10.4. Desarrollo de software basado en reutilización

10.4.1. La reutilización del software
10.4.2. Niveles de reutilización de código
10.4.3. Técnicas concretas de reutilización
10.4.4. Desarrollo basado en componentes
10.4.5. Beneficios y problemas de la reutilización
10.4.6. Planificación de la reutilización

10.5. Patrones de arquitectura de sistemas y de diseño de software

10.5.1. El diseño arquitectónico
10.5.2. Patrones arquitectónicos generales
10.5.3. Arquitecturas tolerantes a fallos
10.5.4. Arquitecturas de sistemas distribuidos
10.5.5. Los patrones de diseño
10.5.6. Patrones de Gamma
10.5.7. Patrones de diseño de interacción

10.6. Arquitectura de aplicaciones en la nube

10.6.1. Fundamentos de Cloud Computing
10.6.2. Calidad de las aplicaciones en la nube
10.6.3. Estilos de arquitectura
10.6.4. Patrones de diseño

10.7. Pruebas del software: TDD, ATDD y BDD

10.7.1. Verificación y validación del software
10.7.2. Las pruebas de software
10.7.3. Test Driven Development (TDD)
10.7.4. Acceptance Test Driven Development (ATDD)
10.7.5. Behavior Driven Development (BDD)
10.7.6. BDD y Cucumber

10.8. La mejora del proceso de software

10.8.1. La mejora del proceso de software
10.8.2. El proceso de mejora de procesos
10.8.3. Modelos de madurez
10.8.4. El modelo CMMI
10.8.5. CMMI V2.0
10.8.6. CMMI y Ágil

10.9. La calidad del producto software: SQuaRE

10.9.1. La calidad del software
10.9.2. Modelos de calidad del producto software
10.9.3. Familia ISO/IEC 25000
10.9.4. ISO/IEC 25010: modelo y características de calidad
10.9.5. ISO/IEC 25012: la calidad de los datos
10.9.6. ISO/IEC 25020: medición de la calidad del software
10.9.7. ISO/IEC 25022, 25023 y 25024: métricas de calidad del software y de los datos
10.9.8. ISO/IEC 25040: evaluación del software
10.9.9. El proceso de certificación

10.10. Introducción a DevOps

10.10.1. Concepto de DevOps
10.10.2. Prácticas principales

Una experiencia de formación única, clave y decisiva para impulsar tu desarrollo profesional”