Descripción

Adquiere los conocimientos más amplios en ingeniería del software, en la formación más actualizada del mercado docente online y comienza a trabajar en desarrollos en este dinámico campo profesional"

master desarrollo de software

Con el avance de las nuevas tecnologías, el software se ha convertido en un elemento sumamente importante en la actualidad. En los últimos años se ha puesto de manifiesto la necesidad de ser capaces de desarrollar productos software con la funcionalidad y calidad adecuadas, respetando el tiempo y presupuesto establecido.

Este programa está dirigido a aquellas personas interesadas en alcanzar un nivel de conocimiento superior sobre el Desarrollo de Software. El principal objetivo es formar al alumno para que aplique en el mundo real los conocimientos adquiridos en esta Maestría, en un entorno de trabajo que reproduzca las condiciones que se puede encontrar en su futuro, de manera rigurosa y realista.

Aprovecha la oportunidad y cursa esta actulización en un formato 100% online, sin tener que renunciar a tus obligaciones, y haciendo fácil tu regreso a la universidad. Actualiza tus conocimientos y consigue tu título de máster para seguir creciendo personal y profesionalmente.

Este programa te permitirá conocer la estructura básica de un ordenador y de su software, como base para incrementar tus competencias ”

 

Esta Maestría en Desarrollo de Software contiene el programa académico más completo y actualizado del panorama universitario. Las características más destacadas del curso son:

  • Desarrollo de 100 escenarios simulados presentados por expertos en Desarrollo de Software.
  • Sus contenidos gráficos, esquemáticos y eminentemente prácticos con los que están concebidos, recogen una información científica y práctica sobre el Desarrollo de Software.
  • Novedades sobre los últimos avances en el Desarrollo de Software.
  • Contiene ejercicios prácticos donde realizar el proceso de autoevaluación para mejorar el aprendizaje.
  • Sistema interactivo de aprendizaje basado en el método del caso y su aplicación a la práctica real.
  • Todo esto se complementará con lecciones teóricas, preguntas al experto, foros de discusión de temas controvertidos y trabajos de reflexión individual.
  • Disponibilidad de los contenidos desde cualquier dispositivo fijo o portátil con conexión a internet.

Un programa intensivo y completo que te permitirá incluir nuevas capacidades y conocimientos aprendiendo de manera flexible, desde la comodidad de tu casa"

Incluye en su cuadro docente profesionales pertenecientes al ámbito del mundo del Desarrollo de Software, que vierten en esta actulización la experiencia de su trabajo, además de reconocidos especialistas pertenecientes a sociedades de referencia y universidades de prestigio.

Gracias a su contenido multimedia elaborado con la última tecnología educativa, permitirán al profesional un aprendizaje situado y contextual, es decir, un entorno simulado que proporcionará un aprendizaje inmersivo programado para entrenarse ante situaciones reales.

El diseño de este programa está basado en el Aprendizaje Basado en Problemas, mediante el cual el docente deberá tratar de resolver las distintas situaciones de práctica profesional que se le planteen a lo largo del curso. Para ello, el profesional contará con la ayuda de un novedoso sistema de vídeo interactivo realizado por reconocidos expertos en Desarrollo de Software con gran experiencia docente.

Conoce los sistemas de datos más novedosos del mercado, aprende a diseñar algoritmos avanzados y todos los aspectos que el profesional de alta competencia debe dominar”

maestria desarrollo de software

Una actulización que te permitirá entender el funcionamiento y cómo intervenir sobre todos los elementos esenciales de un programa informático"

Temario

La estructura de los contenidos ha sido diseñada por un equipo de profesionales de Ingeniería Informática con el objetivo de conseguir que los alumnos del máster puedan aprender de manera eficaz y rápida. Para ello se han organizado los contenidos de manera que el aprendizaje sea intensivo y constante, tratando de mantener la motivación en base a la sensación de progreso del alumno.

Este Maestría en Desarrollo de Software contiene el programa de aprendizaje más completo y actualizado del mercado” 

Módulo 1. Fundamentos de programación

1.1. Introducción a la programación.

1.1.1. Estructura básica de un ordenador.
1.1.2. Software.
1.1.3. Lenguajes de programación.
1.1.4. Ciclo de vida de una aplicación informática.

1.2. Diseño de algoritmos.

1.2.1. La resolución de problemas.
1.2.2. Técnicas descriptivas.
1.2.3. Elementos y estructura de un algoritmo.

1.3. Elementos de un programa.

1.3.1. Origen y características del lenguaje C++.
1.3.2. El entorno de desarrollo.
1.3.3. Concepto de programa.
1.3.4. Tipos de datos fundamentales.
1.3.5. Operadores.
1.3.6. Expresiones.
1.3.7. Sentencias.
1.3.8. Entrada y salida de datos.

1.4. Sentencias de control.

1.4.1. Sentencias.
1.4.2. Bifurcaciones.
1.4.3. Bucles.

1.5. Abstracción y modularidad: funciones.

1.5.1. Diseño modular.
1.5.2. Concepto de función y utilidad.
1.5.3. Definición de una función.
1.5.4. Flujo de ejecución en la llamada de una función.
1.5.5. Prototipo de una función.
1.5.6. Devolución de resultados.
1.5.7. Llamada a una función: parámetros.
1.5.8. Paso de parámetros por referencia y por valor.
1.5.9. Ámbito identificador.

1.6. Estructuras de datos estáticas.

1.6.1. Arrays.
1.6.2. Matrices. Poliedros.
1.6.3. Búsqueda y ordenación
1.6.4. Cadenas. Funciones de E/S para cadenas.
1.6.5. Estructuras. Uniones.
1.6.6. Nuevos tipos de datos.

1.7. Estructuras de datos dinámicas: punteros.

1.7.1. Concepto. Definición de puntero
1.7.2. Operadores y operaciones con punteros.
1.7.3. Arrays de punteros.
1.7.4. Punteros y arrays.
1.7.5. Punteros a cadenas.
1.7.6. Punteros a estructuras.
1.7.7. Indirección múltiple.
1.7.8. Punteros a funciones.
1.7.9. Paso de funciones, estructuras y arrays como parámetros de funciones.

1.8. Ficheros.

1.8.1. Conceptos básicos.
1.8.2. Operaciones con ficheros.
1.8.3. Tipos de ficheros.
1.8.4. Organización de los ficheros.
1.8.5. Introducción a los ficheros C++.
1.8.6. Manejo de ficheros.

1.9. Recursividad.

1.9.1. Definición de recursividad.
1.9.2. Tipos de recursión.
1.9.3. Ventajas e inconvenientes.
1.9.4. Consideraciones.
1.9.5. Conversión recursivo-iterativa.
1.9.6. La pila de recursión.

10.10. Prueba y documentación

10.1 Pruebas de programas
10.2 Prueba de la caja blanca
10.3 Prueba de la caja negra
10.4 Herramientas para realizar las pruebas
10.5 Documentación de programas

Módulo 2. Estructura de datos

2.1. Introducción a la programación en C++.

2.1.1. Clases, constructores, métodos y atributos.
2.1.2. Variables.
2.1.3. Expresiones condicionales y bucles.
2.1.4. Objetos.

2.2. Tipos abstractos de datos (TAD).

2.2.1. Tipos de datos.
2.2.2. Estructuras básicas y TAD.
2.2.3. Vectores y arrays.

2.3. Estructuras de datos lineales.

2.3.1. TAD Lista. Definición.
2.3.2. Listas enlazadas y doblemente enlazadas.
2.3.3. Listas ordenadas.
2.3.4. Listas en C++.
2.3.5. TAD Pila.
2.3.6. TAD Cola.
2.3.7. Pila y Cola en C++.

2.4. Estructuras de datos jerárquicas.

2.4.1. TAD Árbol.
2.4.2. Recorridos.
2.4.3. Árboles n-arios.
2.4.4. Árboles binarios.
2.4.5. Árboles binarios de búsqueda.

2.5. Estructuras de datos jerárquicas: árboles complejos.

2.5.1. Árboles perfectamente equilibrados o de altura mínima.
2.5.2. Árboles multicamino.
2.5.3. Referencias bibliográficas.

2.6. Montículos y cola de prioridad.

2.6.1. TAD Montículos.
2.6.2. TAD Cola de prioridad.

2.7. Tablas hash.

2.7.1. TAD Tabla hash.
2.7.2. Funciones hash.
2.7.3. Función hash en tablas hash.
2.7.4. Redispersión.
2.7.5. Tablas hash abiertas.

2.8. Grafos.

2.8.1. TAD Grafo.
2.8.2. Tipos de grafo.
2.8.3. Representación gráfica y operaciones básicas.
2.8.4. Diseño de grafos.

2.9. Algoritmos y conceptos avanzados sobre grafos.

2.9.1. Problemas sobre grafos.
2.9.2. Algoritmos sobre caminos.
2.9.3. Algoritmos de búsqueda o recorridos.
2.9.4. Otros algoritmos.

2.10. Otras estructuras de datos.

2.10.1. Conjuntos.
2.10.2. Arrays paralelos.
2.10.3. Tablas de símbolos.
2.10.4. Tries.

Módulo 3. Algoritmia y complejidad

3.1. Introducción a las estrategias de diseño de algoritmos.

3.1.1. Recursividad.
3.1.2. Divide y conquista.
3.1.3. Otras estrategias.

3.2. Eficiencia y análisis de los algoritmos.

3.2.1. Medidas de eficiencia.
3.2.2. Medir el tamaño de la entrada.
3.2.3. Medir el tiempo de ejecución.
3.2.4. Caso peor, mejor y medio.
3.2.5. Notación asintónica.
3.2.6. Criterios de Análisis matemático de algoritmos no recursivos.
3.2.7. Análisis matemático de algoritmos recursivos.
3.2.8. Análisis empírico de algoritmos.

3.3. Algoritmos de ordenación.

3.3.1. Concepto de ordenación.
3.3.2. Ordenación de la burbuja.
3.3.3. Ordenación por selección.
3.3.4. Ordenación por inserción.
3.3.5. Ordenación por mezcla (merge_sort).
3.3.6. Ordenación rápida (quick_sort).

3.4. Algoritmos con árboles.

3.4.1. Concepto de árbol.
3.4.2. Árboles binarios.
3.4.3. Recorridos de árbol.
3.4.4. Representar expresiones.
3.4.5. Árboles binarios ordenados.
3.4.6. Árboles binarios balanceados.

3.5. Algoritmos con heaps.

3.5.1. Los heaps.
3.5.2. El algoritmo heapsort.
3.5.3. Las colas de prioridad.

3.6. Algoritmos con grafos.

3.6.1. Representación.
3.6.2. Recorrido en anchura.
3.6.3. Recorrido en profundidad.
3.6.4. Ordenación topológica.

3.7. Algoritmos greedy.

3.7.1. La estrategia greedy.
3.7.2. Elementos de la estrategia greedy.
3.7.3. Cambio de monedas.
3.7.4. Problema del viajante.
3.7.5. Problema de la mochila.

3.8. Búsqueda de caminos mínimos.

3.8.1. El problema del camino mínimo.
3.8.2. Arcos negativos y ciclos.
3.8.3. Algoritmo de Dijkstra.

3.9. Algoritmos greedy sobre grafos.

3.9.1. El árbol de recubrimiento mínimo.
3.9.2. El algoritmo de Prim.
3.9.3. El algoritmo de Kruskal.
3.9.4. Análisis de complejidad.

3.10. Backtracking.

3.10.1. El backtracking.
3.10.2. Técnicas alternativas.

Módulo 4. Bases de datos

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

4.1.1. Aplicaciones de los diferentes sistemas de base de datos.
4.1.2. Propósito en los diferentes sistemas de base de datos.
4.1.3. Visión de los datos.

4.2. Base de datos y arquitectura.

4.2.1. Base de datos relacionales.
4.2.2. El diseño de base de datos.
4.2.3. Bases de datos basadas en objetos y semiestructuradas.
4.2.4. Almacenamiento de datos y consultas.
4.2.5. Gestión de transacciones.
4.2.6. Minería y análisis de datos.
4.2.7. Arquitectura de las bases de datos.

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

4.3.1. La estructura de las BD relacionales.
4.3.2. Operaciones fundamentales en el álgebra relacional.
4.3.3. Otras operaciones del álgebra relacional.
4.3.4. Operaciones del álgebra relacional extendida.
4.3.5. Valores nulos.
4.3.6. Modificación de la base de datos.

4.4. SQL (I).

4.4.1. ¿Qué es SQL?
4.4.2. La definición de datos.
4.4.3. Estructura básica de las consultas SQL.
4.4.4. Operaciones sobre conjuntos.
4.4.5. Funciones de agregación.
4.4.6. Valores nulos.

4.5. SQL (II).

4.5.1. Subconsultas anidadas.
4.5.2. Consultas complejas.
4.5.3. Vistas.
4.5.4. Cursores.
4.5.5. Consultas complejas.
4.5.6. Disparadores.

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

4.6.1. Visión general del proceso de diseño.
4.6.2. El modelo entidad-relación.
4.6.3. Restricciones.

4.7. Diagramas entidad-relación.

4.7.1. Diagramas entidad-relación.
4.7.2. Aspectos del diseño entidad-relación.
4.7.3. Conjuntos de entidades débiles.

4.8. El modelo entidad-relación extendido.

4.8.1. Características del modelo E-R extendido.
4.8.2. Diseño de una base de datos.
4.8.3. Reducción a esquemas relacionales.

4.9. Diseño de bases de datos relacionales.

4.9.1. Características de los buenos diseños relacionales.
4.9.2. Dominios atómicos y la primera forma normal (1FN).
4.9.3. Descomposición mediante dependencias funcionales.
4.9.4. Teoría de las dependencias funcionales.
4.9.5. Algoritmos de descomposición.
4.9.6. Descomposición mediante dependencias multivaloradas.
4.9.7. Más formas normales.
4.9.8. Proceso de diseño de las base de datos.

4.10. Bases de datos NoSQL.

4.10.1. ¿Qué son las bases de datos NoSQL?
4.10.2. Análisis de las diferentes opciones de NoSQL y sus características.
4.10.3. Mongo DB.

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.4. Paralelismo en consultas.
5.3.5. Paralelismo entre consultas.
5.3.6. Diseño de sistemas paralelos.
5.3.7. 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. Diseño avanzado de algoritmos

6.1. Análisis de algoritmos recursivos y tipo divide y conquista.

6.1.1. Planteamiento y resolución de ecuaciones de recurrencia homogéneas y no homogéneas.
6.1.2. Descripción general de la estrategia divide y conquista.

6.2. Análisis amortizado.

6.2.1. El análisis agregado.
6.2.2. El método de contabilidad.
6.2.3. El método del potencial.

6.3. Programación dinámica y algoritmos para problemas NP.

6.3.1. Características de la programación dinámica.
6.3.2. Vuelta atrás: backtracking.
6.3.3. Ramificación y poda.

6.4. Optimización combinatoria.

6.4.1. Representación de problemas.
6.4.2. Optimización en 1D.

6.5. Algoritmos de aleatorización.

6.5.1. Ejemplos de algoritmos de aleatorización.
6.5.2. El teorema Buffon.
6.5.3. Algoritmo de Monte Carlo.
6.5.4. Algoritmo Las Vegas.

6.6. Búsqueda local y con candidatos

6.6.1. Garcient ascent
6.6.2. Hill climbing
6.6.3. Simulated annealing
6.6.4. Tabu search
6.6.5. Búsqeuda con candidatos

6.7. Verificación formal de programas

6.7.1. Especificación de abstracciones funcionales
6.7.2. El lenguaje de la lógica de primer orden
6.7.3. El sistema formal de Hoare

6.8. Verificación de programas iterativos

6.8.1. Reglas del sistema formal de Hoare
6.8.2. Concepto de invariante de iteraciones

6.9. Métodos numéricos

6.9.1. El método de la bisección
6.9.2. El método de Newton Raphson
6.9.3. El método de la secante

6.10. Algoritmos paralelos

6.10.1. Operaciones binarias paralelas
6.10.2. Operaciones paralelas con grafos
6.10.3. Paralelismo en divide y vencerás
6.10.4. Paralelismo en programación dinámica

Módulo 7. Interacción Persona-Ordenador

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

7.1.1. Qué es la interacción persona-ordenador
7.1.2. Relación de la interacción persona-ordenador con otras disciplinas
7.1.3. La interfaz de usuario
7.1.4. Usabilidad y accesibilidad
7.1.5. Experiencia de usuario y diseño centrado en el usuario

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

7.2.1. La interacción
7.2.2. Paradigmas y estilos de interacción
7.2.3. Evolución de las interfaces de usuario
7.2.4. Interfaces de usuario clásicas: WIMP/GUI, comandos, voz, realidad virtual
7.2.5. Interfaces de usuario innovadoras: móviles, portátiles, colaborativas, BCI

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

7.3.1. La importancia del factor humano en la interacción
7.3.2. El procesamiento humano de información
7.3.3. La entrada y salida de la información: visual, auditiva y táctil
7.3.4. Percepción y atención
7.3.5. Conocimiento y modelos mentales: representación, organización y adquisición

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

7.4.1. Diversidad funcional, discapacidad y deficiencia
7.4.2. Diversidad visual
7.4.3. Diversidad auditiva
7.4.4. Diversidad cognitiva
7.4.5. Diversidad motórica
7.4.6. El caso de los inmigrantes digitales

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

7.5.1. Diseño centrado en el usuario
7.5.2. Qué es el análisis de requisitos
7.5.3. La recogida de información
7.5.4. Análisis e interpretación de la información
7.5.5. Análisis de la usabilidad y la accesibilidad

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

7.6.1. Diseño conceptual
7.6.2. Prototipado
7.6.3. Análisis jerárquico de tareas

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

7.7.1. Evaluación en el proceso de diseño: objetivos y métodos
7.7.2. Métodos de evaluación sin usuarios
7.7.3. Métodos de evaluación con usuarios
7.7.4. Estándares y normas de evaluación

7.8. Accesibilidad: definición y pautas

7.8.1. Accesibilidad y diseño universal
7.8.2. La iniciativa WAI y las pautas WCAG
7.8.3. Pautas WCAG 2.0 y 2.1

7.9. Accesibilidad: evaluación y diversidad funcional

7.9.1. Herramientas de evaluación de la accesibilidad en la web
7.9.2. Accesibilidad y diversidad funcional

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

7.10.1. Dispositivos y periféricos tradicionales
7.10.2. Dispositivos y periféricos alternativos
7.10.3. Móviles y tabletas
7.10.4. Diversidad funcional, interacción y periféricos

Módulo 8. Programación avanzada

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

8.1.1. Introducción a la programación orientada a objetos
8.1.2. Diseño de clases
8.1.3. Introducción a UML para el modelado de los problemas

8.2. Relaciones entre clases

8.2.1. Abstracción y herencia
8.2.2. Conceptos avanzados de herencia
8.2.3. Polimorfismo
8.2.4. Composición y agregación

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

8.3.1. Qué son los patrones de diseño
8.3.2. Patrón Factory
8.3.4. Patrón Singleton
8.3.5. Patrón Observer
8.3.6. Patrón Composite

8.4. Excepciones

8.4.1. ¿Qué son las excepciones?
8.4.2. Captura y gestión de excepciones
8.4.3. Lanzamiento de excepciones
8.4.4. Creación de excepciones

8.5. Interfaces de usuarios

8.5.1. Introducción a Qt
8.5.2. Posicionamiento
8.5.3. ¿Qué son los eventos?
8.5.4. Eventos: definición y captura
8.5.5. Desarrollo de interfaces de usuario

8.6. Introducción a la programación concurrente

8.6.1. Introducción a la programación concurrente
8.6.2. El concepto de proceso e hilo
8.6.3. Interacción entre procesos o hilos
8.6.4. Los hilos en C++
8.6.6. Ventajas e inconvenientes de la programación concurrente

8.7. Gestión de hilos y sincronización

8.7.1. Ciclo de vida de un hilo
8.7.2. La clase Thread
8.7.3. Planificación de hilos
8.7.4. Grupos hilos
8.7.5. Hilos de tipo demonio
8.7.6. Sincronización
8.7.7. Mecanismos de bloqueo
8.7.8. Mecanismos de comunicación
8.7.9. Monitores

8.8. Problemas comunes dentro de la programación concurrente

8.8.1. El problema de los productores consumidores
8.8.2. El problema de los lectores y escritores
8.8.3. El problema de la cena de los filósofos

8.9. Documentación y pruebas de software

8.9.1. ¿Por qué es importante documentar el software?
8.9.2. Documentación de diseño
8.9.3. Uso de herramientas para la documentación

8.10. Pruebas de software

8.10.1. Introducción a las pruebas del software
8.10.2. Tipos de pruebas
8.10.3. Prueba de unidad
8.10.4. Prueba de integración
8.10.5. Prueba de validación
8.10.6. Prueba del sistema

Módulo 9. Desarrollo de aplicaciones en red

9.1. Lenguajes de marcado HTML5

9.1.1. Conceptos básicos de HTML
9.1.2. Nuevos elementos HTML 5
9.1.3. Formularios: nuevos controles

9.2. Introducción a hojas de estilo CSS

9.2.1. Primeros pasos con CSS
9.2.2. Introducción a CSS3

9.3. Lenguaje script de navegador: JavaScript

9.3.1. Conceptos básicos de JavaScript
9.3.2. DOM
9.3.3. Eventos
9.3.4. JQuery
9.3.5. Ajax

9.4. Concepto de la programación orientada a componentes

9.4.1. Contexto
9.4.2. Componentes e interfaces
9.4.3. Estados de un componente

9.5. Arquitectura de componentes

9.5.1. Arquitecturas actuales
9.5.2. Integración y despliegue de componentes

9.6. Framework Front-End: Bootstrap

9.6.1. Diseño con rejilla
9.6.2. Formularios
9.6.3. Componentes

9.7. Modelo vista controlador

9.7.1. Métodos de desarrollo Web
9.7.2. Patrón de diseño: MVC

9.8. Tecnologías Grid de la información

9.8.1. Incremento de recursos en computación
9.8.2. Concepto de tecnología Grid

9.9. Arquitectura orientada a servicios

9.9.1. SOA y servicios Web
9.9.2. Topología de un servicio Web
9.9.3. Plataformas para los servicios Web

9.10. Protocolo HTTP

9.10.1. Mensajes
9.10.2. Sesiones persistentes
9.10.3. Sistema criptográfico
9.10.4. Funcionamiento del protocolo HTTPS

Módulo 10. Ingeniería del software

10.1. Introducción a la ingeniería del software y al modelado

10.1.1. La naturaleza del software
10.1.2. La naturaleza única de las webapps
10.1.3. Ingeniería del software
10.1.4. El proceso del software
10.1.5. La práctica de la ingeniería del software
10.1.6. Mitos del software
10.1.7. Cómo comienza todo
10.1.8. Conceptos orientados a objetos
10.1.9. Introducción a UML

10.2. El proceso del software

10.2.1. Un modelo general de proceso
10.2.2. Modelos de proceso prescriptivos
10.2.3. Modelos de proceso especializado
10.2.4. El proceso unificado
10.2.5. Modelos del proceso personal y del equipo
10.2.6. ¿Qué es la agilidad?
10.2.7. ¿Qué es un proceso ágil?
10.2.8. Scrum
10.2.9. Conjunto de herramientas para el proceso ágil

10.3. Principios que guían la práctica de la ingeniería del software

10.3.1. Principios que guían el proceso
10.3.2. Principios que guían la práctica
10.3.3. Principios de comunicación
10.3.4. Principios de planificación
10.3.5. Principios de modelado
10.3.6. Principios de construcción
10.3.7. Principios de despliegue

10.4. Comprensión de los requisitos

10.4.1. Ingeniería de requisitos
10.4.2. Establecer las bases
10.4.3. Indagación de los requisitos
10.4.4. Desarrollo de casos de uso
10.4.5. Elaboración del modelo de los requisitos
10.4.6. Negociación de los requisitos
10.4.7. Validación de los requisitos

10.5. Modelado de los requisitos: escenarios, información y clases de análisis

10.5.1. Análisis de los requisitos
10.5.2. Modelado basado en escenarios
10.5.3. Modelos UML que proporcionan el caso de uso
10.5.4. Conceptos de modelado de datos
10.5.5. Modelado basado en clases
10.5.6. Diagramas de clases

10.6. Modelado de los requisitos: flujo, comportamiento y patrones

10.6.1. Requisitos que modelan las estrategias
10.6.2. Modelado orientado al flujo
10.6.3. Diagramas de estado
10.6.4. Creación de un modelo de comportamiento
10.6.5. Diagramas de secuencia
10.6.6. Diagramas de comunicación
10.6.7. Patrones para el modelado de requisitos

10.7. Conceptos de diseño

10.7.1. Diseño en el contexto de la ingeniería del software
10.7.2. El proceso de diseño
10.7.3. Conceptos de diseño
10.7.4. Conceptos de diseño orientado a objetos
10.7.5. El modelo del diseño

10.8. Diseño de la arquitectura

10.8.1. Arquitectura del software
10.8.2. Géneros arquitectónicos
10.8.3. Estilos arquitectónicos
10.8.4. Diseño arquitectónico
10.8.5. Evolución de los diseños alternativos para la arquitectura
10.8.6. Mapeo de la arquitectura con el uso del flujo de datos

10.9. Diseño en el nivel de componentes y basado en patrones

10.9.1. ¿Qué es un componente?
10.9.2. Diseño de componentes basados en clase
10.9.3. Realización del diseño en el nivel de componentes
10.9.4. Diseño de componentes tradicionales
10.9.5. Desarrollo basado en componentes
10.9.6. Patrones de diseño
10.9.7. Diseño de software basado en patrones
10.9.8. Patrones arquitectónicos
10.9.9. Patrones de diseño en el nivel de componentes
10.9.10. Patrones de diseño de la interfaz de usuario

10.10. Calidad del software y administración de proyectos

10.10.1. Calidad
10.10.1. Calidad del software
10.10.2. El dilema de la calidad del software
10.10.3. Lograr la calidad del software
10.10.4. Aseguramiento de la calidad del software
10.10.5. El espectro administrativo
10.10.6. El personal
10.10.7. El producto
10.10.8. El proceso
10.10.9. El proyecto
10.10.10. Principios y prácticas

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