La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento de software; esto es, la aplicación de ingeniería al software (IEEE, 2004). 

En la ingeniería de software se integra el conocimiento teórico y práctico que se requiere para realizar de forma exitosa cualquier proyecto de producción de software. El proyecto de producción de software se realiza con la guía del proceso que se fundamenta en métodos y modelos de ingeniería de software. 

En el programa académico Maestría en Ingeniería de Sistemas y Computación y específicamente en el módulo Procesos y Metodologías de Ingeniería de Software, se profundiza en el estudio de los mecanismos para definir, aplicar y mejorar el proceso software de una organización. Se espera que a partir de este estudio se identifiquen oportunidades de investigación cuyos resultados permitan formular soluciones a problemas en contextos académicos e industriales.

Para ello, en este módulo, inicialmente se estudia el cuerpo del conocimiento de la ingeniería de software como fundamento teórico que rige la disciplina. Más adelante, se abordan el proceso, los modelos y los métodos de ingeniería de software que guían la producción de software de alta calidad. Finalmente, se trata la esencia de la ingeniería de software como mecanismo para la definición, aplicación y mejora del proceso software en contextos industriales. 

Al terminar este módulo, el estudiante adquiere el conocimiento teórico y práctico para definir, aplicar y mejorar el proceso software de una organización. Además, al finalizar el módulo, el estudiante puede identificar oportunidades para desarrollar trabajos de investigación que permitan mejorar procesos software en las organizaciones.

Con el paso del tiempo, el uso de tecnologías emergentes para el almacenamiento de grandes volúmenes de datos (estructurados, semiestructurados, no estructurados, estáticos y dinámicos), diferentes al modelo relacional, se ha incrementado en gran medida debido a que ofrecen mejor desempeño y flexibilidad en aplicaciones de alcance global. De ahí que, es importante conocer cómo estas tecnologías de bases de datos implementan conceptos fundamentales como modelo de datos, consistencia, seguridad y privacidad de los datos, así como también si cumplen con las propiedades ACID (Atomicity, Consistency, Isolation and Durability) o con el teorema CAP (Consistency, Availability and Partition).


Con el paso del tiempo, el uso de tecnologías emergentes para el almacenamiento de grandes volúmenes de datos (estructurados, semiestructurados, no estructurados y heterogéneos), diferentes al modelo relacional, se ha incrementado en gran medida debido a que ofrecen mejor desempeño y flexibilidad en aplicaciones de alcance global. De ahí que, es importante conocer cómo estas tecnologías de bases de datos implementan conceptos fundamentales como modelo de datos, consistencia, seguridad y privacidad de los datos, así como también si cumplen con las propiedades ACID (Atomicity, Consistency, Isolation and Durability) y con el teorema CAP (Consistency, Availability and Partition).