Presentación

Gracias a este Máster Semipresencial, aplicarás patrones de diseños para resolver una amplia gama de problemas informáticos y construir soluciones escalables” 

##IMAGE##

El Desarrollo de Software se ha convertido en factor esencial en la economía digital actual, con una demanda creciente de profesionales capacitados en todo el mundo. Según la Organización para la Cooperación y el Desarrollo Económicos, se espera que este sector profesional experimente un crecimiento del 30% de cara al próximo año. Esto subraya la importancia de que los profesionales de la Informática permanezcan al corriente de las últimas tendencias en este campo. De lo contrario, los desarrolladores podrían enfrentarse a problemáticas como el uso de metodologías desactualizadas que conduzcan a procesos menos eficientes.  

En este marco, TECH lanza un revolucionario Máster Semipresencial en Desarrollo de Software. Se trata de un programa universitario que aúna el mejor contenido teórico con 3 semanas de estancia práctica en una entidad de referencia en este ámbito. El itinerario académico profundizará en aspectos como la Programación en C++, la creación de bases de datos avanzadas o el diseño arquitectónico de las aplicaciones. Todo ello mediante materiales didácticos confeccionados por un experimentado claustro docente, que incluyen un amplio abanico de recursos multimedia (como resúmenes interactivos, casos de estudio o vídeos explicativos) para garantizar una puesta al día amena. De este modo, los informáticos disfrutarán de un aprendizaje totalmente progresivo y natural, sin tener que recurrir a técnicas tradicionales como la memorización.  

Por otro lado, la titulación universitaria prevé que los egresados lleven a cabo una capacitación práctica en una prestigiosa entidad. Allí los informáticos participarán activamente en los proyectos que se estén desarrollando en ese momento. Cabe destacar que un tutor especializado guiará a los alumnos durante esta estancia presencial, asegurándole la realización de un plan de actividades que le permitirán optimizar sus competencias en base a las exigencias del mercado laboral actual.

Implementarás a tu práctica los procesos de aseguramiento de la calidad para garantizar la fiabilidad y el rendimiento del Software”

Este Máster Semipresencial en Desarrollo de Software contiene el programa más completo y actualizado del mercado. Sus características más destacadas son: 

  • Desarrollo de más de 100 casos prácticos presentados por profesionales en Desarrollo del Software 
  • Sus contenidos gráficos, esquemáticos y eminentemente prácticos con los que están concebidos, recogen una información imprescindible sobre el Desarrollo del Software
  • Novedades sobre los últimos avances en el Desarrollo del Software 
  • Contiene ejercicios prácticos donde realizar el proceso de autoevaluación para mejorar el aprendizaje. 
  • 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 
  • Además, podrás realizar una estancia de prácticas en una de las mejores empresas

Cursa una estancia intensiva de 3 semanas en una empresa de prestigio y adquiere todo el conocimiento para experimentar un considerable salto de calidad profesional”  

En esta propuesta de Máster, de carácter profesionalizante y modalidad semipresencial, el programa está dirigido a la actualización de profesionales de la Informática que quieren incorporar a su praxis las técnicas más avanzadas para el Desarrollo de Software. Los contenidos están basados en la última evidencia científica, y orientados de manera didáctica para integrar el saber teórico en la práctica informática, y los elementos teórico-prácticos facilitarán la actualización del conocimiento.

Gracias a su contenido multimedia elaborado con la última tecnología educativa, permitirán al profesional de la Informática 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 deberá tratar de resolver las distintas situaciones de práctica profesional que se le planteen a lo largo del mismo. Para ello, contará con la ayuda de un novedoso sistema de vídeo interactivo realizado por reconocidos expertos.

Esta titulación universitaria incluirá casos reales para acercar al máximo el desarrollo del programa a la realidad de la praxis informática" 

##IMAGE##

Contarás con el apoyo de la mayor institución académica online del mundo, TECH con la última tecnología educativa a tu disposición"

Plan de estudios

Los materiales didácticos que conforman este Máster Semipresencial han sido elaborados por auténticos expertos en el campo del Desarrollo de Software. Compuesto por 10 módulos especializados, el programa equipará a los informáticos una amplia gama de habilidades técnicas. El temario profundizará en aspectos como el Diseño de Algoritmos, creación de Bases de Datos o Ingeniería del Software. Además, el temario brindará a los desarrolladores las técnicas más innovadoras para la optimización de recursos, entre los que destaca el Backtracking. De este modo, los egresados adquirirán competencias avanzadas para diseñar arquitecturas de Software que soporten el crecimiento y la evolución de los sistemas.  

maestria desarrollo software TECH Global University

Dominarás metodologías ágiles como el Scrum para mejorar la eficiencia en el Desarrollo de Software” 

 

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 

1.10. Prueba y documentación  

1.10.1. Pruebas de programas  
1.10.2. Prueba de la caja blanca  
1.10.3. Prueba de la caja negra  
1.10.4. Herramientas para realizar las pruebas  
1.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 Grafo  

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 (QuickSort) 

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 bases 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. MongoDB  

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. Gradient Ascent 
6.6.2. Hill Climbing  
6.6.3. Simulated Annealing  
6.6.4. Tabu Search  
6.6.5. Búsqueda 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 Frontend: 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 sSftware y administración de proyectos  

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 

estudiar desarrollo software TECH Global University

Incorporarás a tus procedimientos las estrategias de programación más avanzadas para garantizar que los códigos sean legibles, escalables y fáciles de mantener” 

Máster Semipresencial en Desarrollo de Software

En el mundo actual, la demanda de profesionales en el área informática está en constante crecimiento. Las empresas buscan expertos capaces de diseñar y crear soluciones innovadoras que impulsen su competitividad en el mercado. Para aquellos que desean destacarse en esta industria en constante evolución, TECH Global University ofrece el Máster Semipresencial en Desarrollo de Software. Este programa, diseñado por expertos de la industria en colaboración con académicos líderes, combina la flexibilidad del aprendizaje online con la experiencia práctica de las clases presenciales en un centro especializado. Las clases semipresenciales permiten a los estudiantes acceder a la teoría desde la comodidad de su hogar, mientras que las prácticas presenciales les brindan la oportunidad de aplicar lo aprendido en un entorno real, bajo la guía de profesionales experimentados. Este posgrado abarca una amplia gama de temas, desde los fundamentos de la programación hasta las tecnologías más avanzadas en desarrollo de aplicaciones y sistemas. Los estudiantes aprenderán a desarrollar software de calidad, siguiendo las mejores prácticas de la industria y utilizando las herramientas más modernas disponibles.

Estudia un posgrado en Desarrollo de Software

Nuestro claustro de profesores está compuesto por expertos en desarrollo de software con una sólida experiencia práctica y conocimientos actualizados sobre las últimas tendencias del mercado. Su experiencia en la industria garantiza que los estudiantes adquieran habilidades relevantes y estén preparados para enfrentar los desafíos del mundo real. Además del aprendizaje en el aula, TECH Global University ofrece a los estudiantes acceso a recursos adicionales, como bibliotecas virtuales y comunidades de desarrollo, que enriquecen su experiencia educativa y les permiten mantenerse al día con las últimas innovaciones en el campo. Con el Máster Semipresencial en Desarrollo de Software, los estudiantes estarán preparados para destacarse en un campo en constante evolución y contribuir al desarrollo de soluciones tecnológicas que impulsen el progreso en diversas industrias. No pierdas la oportunidad de avanzar en tu carrera profesional y ser parte de la próxima generación de expertos en desarrollo de software.