La Ingeniería de Software es la rama de la ingeniería que estudia todo lo relacionado con la informática o sistemas de computación, con una orientación metódica, ordenada y cuantificable al incremento, ejecución y conservación del software.
Ingeniería de software: ¿Qué es?
La ingeniería de software es una especialidad que consiste en sistemas, instrumentos y técnicas que se emplean en el desarrollo de los programas informáticos.
La ingeniería de software, también, incorpora el análisis precedente de la situación, el bosquejo del proyecto, el desarrollo del software, el ensayo necesario para comprobar su funcionamiento correcto y poner en funcionamiento el sistema.
Se debe señalar, que el desarrollo del software va unido a lo que se conoce en el campo del software “ciclo de vida del software” que consiste en cuatro etapas que se conocen como: concepción, elaboración, construcción y transición.
La concepción determina la repercusión del proyecto y diseña el modelo de negocio; la elaboración precisa la planificación del proyecto, especificando las características y apoya la arquitectura; la construcción es la elaboración del producto; y la transición es la entrega del producto terminado a los usuarios.
Al culminar este ciclo, comienza el mantenimiento del software, el cual consiste en una etapa en la que el software ofrece soluciones a errores que son denunciados por los usuarios, principalmente y se incorporan actualizaciones para hacer frente a los nuevos requisitos.
Este procedimiento de mantenimiento, integra también novedosos adelantos, para contribuir al cumplimiento de tareas por parte del software. (Ver Ingeniería electromecánica)
Historia de la ingeniería de software
Al inicio de la informática, el software era un componente más. El programa se consideraba un «arte», para el que no existían métodos, era un procedimiento que se realizaba sin planificación alguna.
Para entonces, todo el programa se desarrollaba con las dimensiones propias para cada necesidad concreta, y por consiguiente, normalmente tenía muy poca difusión, por lo que, solo quien lo necesita, escribía sobre el asunto y este mismo se encargaba de mantenerlo.
Para mediado de los años sesenta se constituye el software como producto y es cuando aparecen las empresas que se dedican al desarrollo y distribución masiva del mismo.

El término Ingeniería del Software, surge cuando se llevaba a cabo dos conferencias estructuradas por la OTAN en los años en 1967 y 1968.
Es para mediados de la década los 70, cuando los sistemas informáticos incrementaron la dificultad y dan pie a la creación de las redes de computadoras.
Este hecho presionó a quienes desarrollaban las computadoras personalizadas, aunque no se sabía mucho sobre ellas; al final de esta etapa, surgieron los microprocesadores.
La cuarta época del progreso de los sistemas informáticos, comienza en los 90 y se orienta hacia el impacto general de las computadoras y el software, en todos los entornos.
La industria del software es de gran importancia en la economía mundial. Se ponen de manifiesto las técnicas de redes neuronales, al igual que la lógica difusa, de interés en el campo de la Inteligencia Artificial. (Ver Ingeniería Biomédica)
Ingeniería de software en la actualidad
En la actualidad el software tiene un doble papel. Es el producto, pero al mismo tiempo, actúa como el conductor que entrega el producto. Como conductor utilizado para entregar el producto, actúa como base de control, por ejemplo un sistema operativo, o un sistema gestor de redes.
El software actúa como distribuidor y hace llegar a los usuarios, el producto más importante del este siglo: la información.
El software modifica la información personal para hacerlos más útiles en un entorno local, administra información comercial para mejorar la competitividad, facilita el acceso a redes a nivel mundial, y propone la forma de obtener información de cualquier manera.
En la actualidad la ingeniería del Software es considerada una nueva especialidad de la ingeniería y junto con la especialidad de Ingeniería Informática, es una de las profesiones con más demanda, aunque hay lugares en el mundo, en los que no es muy bien remunerada, como sucede en España.
La palabra ingeniería está estrechamente ligada a la de prestigio de lo que se deriva, que muchas ramas del conocimiento tiendan a autodenominarse así.
En la actualidad, hay muchas demandas de ingenieros que estén altamente preparados, como son los requerimientos de las grandes compañías como Google, Facebook, Twitter entre otras, que además compiten entre sí, para obtener a los egresados de las universidades que presenten las mejores posibilidades.
Esta circunstancia hace más que obvia la palpable realidad del cambio de sistema y las inclinaciones laborales del nuevo ciclo, muy especialmente, en el mercado norteamericano, por ser, el que mayor manifestación y origen de empresas actores tecnológicos posee, aunque son datos fácilmente extrapolables a otras zonas con nivel de desarrollo análogo.
La ingeniería del software trata campos muy variados de la informática y de las Ciencias de la Computación, que además se aplican a un amplio espectro de campos, tales como negocios, investigación científica, medicina, producción, logística, banca, meteorología, derecho, redes, entre otras muchas.
No obstante, es común que en el ejercicio diario profesional no se introduzca casi ninguna de las sugerencias más elementales de la ingeniería del software.
Las apreciaciones de los procedimientos productivos de software realizados a raíz de los modelos de procesos de software confirman que el desarrollo de software suele estar básicamente en estado caótico. Y esto no ocurre sólo en pequeñas empresas de países como España, sino en grandes proyectos en naciones como EE.UU. y Japón.
La revista sarcástica inglesa Private Eye, hizo planteamientos importantes sobre los proyectos de software que fracasaron en alguna medida, pero lo que se quería resaltar era lo imprescindible que es la ingeniería de software. (Ver Ingeniería aeronáutica)
Diferencias entre ingeniería de software y sistemas
Antes de hablar de diferencias, veamos la definición de ingeniería de Sistemas para luego compararlas.
Ingeniería de Sistemas: se especializa en el incremento y ejecución de las técnicas de la información. Abarca un amplio sector de trabajo, ya que toda actividad humana en la actualidad está relacionada con el manejo de información.
Los ingenieros de sistema están capacitados para ejercer cargos directivos, especialmente en el sector administrativo y también son capaces de ser líderes de una diversidad de proyectos; estudiar y desarrollar programas, asesoría e informática funcional de la organización y así servir de apoyo en las decisiones y realización de procedimientos en la operatividad.
Mientras que la Ingeniería de Software, como ya hemos dicho, es una especialidad que consiste en sistemas, instrumentos y técnicas que se emplean en el desarrollo de los programas informáticos.
La ingeniería de software, también, incorpora el análisis precedente de la situación, el bosquejo del proyecto, el desarrollo del software, el ensayo necesario para comprobar su funcionamiento correcto y poner en funcionamiento el sistema.
Es decir, que la Ingeniería de Software es la especialidad de la ingeniería que concibe y mantiene las aplicaciones de software aplicando técnicas y pruebas de las ciencias computacionales, conducción de proyectos y otros campos.
Es decir, que la Ingeniería de Software es la especialidad de la ingeniería que concibe y mantiene las aplicaciones de software aplicando técnicas y pruebas de las ciencias computacionales, conducción de proyectos y otros campos.
Mientras que la Ingeniería de Sistemas es la especialidad de la ingeniería que se basa en la aplicación de los principios de las ciencias relacionadas con la computación, la electrónica y los estudios de software, para el desempeño de soluciones globales de computación y correspondencia, capaces de tratar información de manera automática.
Con lo anteriormente expuesto, llegamos a la conclusión, que ambas carreras tienen puntos en común y hasta podría decirse que se complementan y es posible recurrir a ambas al momento que se elabora un proyecto.
Ingeniería de software: conceptos básicos
La ingeniería de software es una especialidad que consiste en sistemas, instrumentos y técnicas que se emplean en el desarrollo de los programas informáticos.

Esta especialidad manifiesta la actividad del programa, que es la labor fundamental para el momento de la creación de un software.
El ingeniero de software se ocupa de toda la gestión del proyecto para que éste pueda evolucionar en un lapso de tiempo determinado y con los recursos previsto para el proyecto.
La ingeniería de software, también, incorpora el análisis precedente de la situación, el bosquejo del proyecto, el desarrollo del software, el ensayo necesario para comprobar su funcionamiento correcto y poner en funcionamiento el sistema.
Los Ingenieros de Software deben:
Adoptar un enfoque sistemático para la realización de su trabajo.
Emplear los instrumentos y tecnología adecuados, para dar con la solución del problema planteado, según las limitaciones de desarrollo y a los recursos disponibles.
Características de la ingeniería de software
Es una especialidad de la ingeniería que tiene como objetivo principal, el desarrollo costeable de sistemas de software confiables que funcionen de modo eficiente y comprende todos los aspectos de la producción del software.
El software presenta 3 elementos que lo caracterizan:
- Los programas y/o algoritmos.
- Las estructuras de datos.
- Los documentos.
Hay 2 tipos de derivados de software cuando se desarrolla: 1. Productos genéricos. 2. Productos personalizados.
Objetivos de la ingeniería de software
Los principales objetivos de la ingeniería de software son:
- Diseñar programas informáticos que se adecúen a las exigencias de la sociedad.
Objetivos de la Ingeniería en Software - Liderar y acoplar el desarrollo de programaciones complicadas.
- Actuar en todas las fases del ciclo de vida de un producto.
- Computar los costos de un proyecto y evaluar los tiempos de desarrollo.
- Realizar el seguimiento de costes y plazos.
- Liderar equipos de trabajo de desarrollo software.
- Estructurar la elaboración de evidencias que comprueben el perfecto funcionamiento de los programas y que se adaptan a los requerimientos de análisis y diseño.
- Diseñar, construir y administrar bases de datos.
- Liderar y orientar a los programadores durante el desarrollo de aplicaciones.
- Incluir procesos de calidad en los sistemas, calculando métricas e indicadores y chequeando la calidad del software producido.
- Liderar y orientar a los programadores durante el desarrollo de aplicaciones.
- Incluir procesos de calidad en los sistemas, calculando métricas e indicadores y chequeando la calidad del software producido.
- Estructurar e inspeccionar el trabajo de su equipo de los técnicos de mantenimiento y los ingenieros de sistemas y redes.
Etapas de la ingeniería de software
La ingeniería de Software consta de siete etapas. A continuación cada una de ellas brevemente definidas:
- Etapa de análisis:
Es el procedimiento de investigación de un problema al que se desea encontrar la solución. Se define con claridad el Problema que hay que resolver o el programa que se desea inventar, identificando los elementos principales que conformarán el producto.
- Etapa de Diseño:
Es el procedimiento que emplea la información acumulada en la etapa de análisis al diseño del producto. La labor principal de la etapa de diseño es crear un modelo o las características precisas para el producto o Componentes del Sistema.
- Etapa de Desarrollo:
Consiste en el empleo de los diseños creados durante la etapa de diseño para elaborar los elementos a utilizarse en el sistema.
Consiste en garantizar que los elementos individuales que componen el sistema o producto, presentan las características requeridas en la especificación creada durante la etapa de diseño.
- Etapa de Implementación o Entrega Implantación:
Consiste en la distribución del producto y hacerlo llegar a manos del cliente.
- Etapa de Mantenimiento:
Consiste en aplicar las soluciones apropiadas a cualquier problema del producto y re- liberar el producto mejorado, dándole una nueva versión.
- Etapa final EOL (End-of-Life)
Consiste en ejecutar todas las labores que garanticen que tanto los clientes como los empleados tiene la certeza de que el producto ya no estará más a la disposición, por lo que no se venderá más. (Ver Ingeniería electrónica)

Ingeniería de software: herramientas
Cada día que pasa, el uso del software es la mejor alternativa para aligerar y sistematizar labores que están en el desempeño de los procesos
En la evolución del software no es la excepción; en este caso los instrumentos se han llamado CASE (Ingeniería De Software Asistida Por Computador).
CASE (Ingeniería De Software Asistida Por Computador)
incorporan un conjunto de programas que permiten mejorar la calidad de un producto, ofreciendo apoyo constantemente a los analistas, ingenieros de software y desarrolladores.
CASE es la adaptación de procesos y tecnología que dan rendimiento a los programas, a través de otros, procesos y su correspondiente documentación.
Aquí hacemos referencia a tres herramientas que contribuyen en la administración de los requerimientos, es decir, a los procedimientos de identidad, remuneración y seguimiento, incluyendo interfaz, comprobación, rectificación y control de cada requisito, durante el ciclo de vida del proyecto.
Los cambios/actualizaciones de requisitos deben ser administrados para garantizar que la calidad del producto no se altere.
Recientemente las herramientas para la administración de requisitos de software se condicionaban solo los editores de texto, quienes la realizaban haciendo de ella una labor aburrida y hasta confusa. En la actualidad, contamos con muchísimas opciones, como las que se mencionan a continuación:
-
IRQA
Herramienta CASE de Ingeniería de Requisitos, cuyo diseño sirve para sustentar las labores realizadas en el procedimiento de especificación de programas.
IRQA es la que posibilita y determina la relación entre el cliente, el distribuidor y los diferentes miembros del equipo que está desarrollando el proyecto.
Facilita la adquisición, constitución y estudio de las condiciones, así como la determinación de la solución mediante el apoyo metodológico adaptable a cada cliente.
-
CONTROLA
Herramienta de soporte de proceso de ingeniería de software en pequeñas empresas. Fue creada debido al desarrollo del mercado y a la creación grandes y pequeñas empresas, que requerían una herramienta para la evolución de sus proyectos.

Ofrece procedimientos importantes como lo son: Administración de requisitos, gestión de casos de uso, dirección de casos de prueba y error, planificación de liberaciones, administración de implementaciones, control de dependencia entre Implementaciones, matriz de rastreabilidad y rastreabilidad de los requisitos.
-
OSRMT (Open Source Requirements Management Tool)
Herramienta libre para la administración de requisitos, que tiene unas características propias y las principales son: trabaja en arquitectura cliente/servidor, evolucionada bajo Java; la versión 1.3 trae un módulo para manejar la trazabilidad y lo introduce para el control de cambios; de igual manera, produce la documentación de los requisitos tratados. (ver Ingeniería agroambiental)
Principios de la ingeniería de software
Una serie de principios, dirige la práctica de la ingeniería de software, que son fundamentales y además contribuyen a la aplicación de los procedimientos del software.
En la práctica, los principios determinan los valores y reglamento que servirán para el momento de investigar o estudiar un problema; luego se buscará y diseñará la solución, se reparará, se probará y al estar listo, se distribuirá entre la comunidad de usuarios.
Existen una serie de principios fundamentales que facilitan los procedimientos y la práctica del software, como por ejemplo:
- Agregar valor para los usuarios finales
- Mantenerlo sencillo
- Fijar la visión (producto-proyecto)
- Reconocer que los consumidores deben comprender lo que usted ofrece
- Abrirse al futuro
- Planear la reutilización
- ¡pensar!
Sin tomar en cuenta que el modelo sea lineal o iterativo, prescriptivo o ágil, el uso de la estructura general, puede ser aplicada a todos los diseños de proceso.
- Principio 1. Ser dinámico.
Las características más importantes del trabajo, debe ser enfático en la economía de acción que consiste en enfocarse en que lo técnico sea lo más sencillo posible, que los productos a elaborar sean precisos y que las decisiones puedan ser tomadas localmente.
- Principio 2. Concentrarse en la calidad de cada etapa.
La calidad del producto debe ser el centro focal de la condición de salida para toda la actividad del procedimiento del trabajo que se ha creado.
- Principio 3. Estar listo para adaptar.
Ajustar el enfoque a las limitaciones que imponen los problemas, los usuarios y el proyecto en sí.
- Principio 4. Conformar un equipo eficaz.
El procedimiento y usos de la ingeniería de software son importantes, pero el objetivo principal son los usuarios. Se debe formar un equipo en donde impere la confianza.
- Principio 5. Constituir los mecanismos necesarios para la comunicación y coordinación.
Principios que dirigen el proceso.
- Principio 6. Administrar el cambio
El planteamiento puede variar entre formal o informal, pero deben determinarse los mecanismos para aplicar la forma en la que los cambios se solicitan, evalúan, aprueban e implementan.
- Principio 7. Calcular el riesgo.
Son muchos los detalles que pueden fallar en el desarrollo de software por lo que se hace imprescindible tener planes de emergencia.
- Principio 8. Elaborar productos del trabajo que sumen valor para otros
Todo producto del trabajo que dé como resultado, de parte de la práctica de ingeniería de software pasará a alguien más. La lista de las funciones y características exigidas se dará a la persona que desarrollará un diseño, el diseño pasará a quienes creen un código y así sucesivamente. Asegúrese de que el producto del trabajo imparte la información necesaria y precisa. (ver Ingeniería aeronáutica)
Ingeniería de software y sus fases
La ingeniería de software requiere de un ciclo de vida que consiste en la realización de muchas tareas que van en grupos o etapas. Las etapas más comunes para casi todos los modelos de ciclo de vida son las siguientes:
Separar los requerimientos de un producto de software es la primera etapa para poder crearlo. Mientras que los usuarios creen que ellos saben lo que el software tiene que hacer, se necesita de capacidad y pericia en la ingeniería de software para considerar requerimientos no finalizados, confusos o incoherentes.
La conclusión del análisis de requisitos con el usuario se expresa en el documento ERS, Especificación de Requerimientos del Sistema, cuya configuración puede estar determinada por varios patrones, tales como CMM-I. De igual manera, se determina un gráfico de Entidad/Relación, en el que se expresan las principales entidades que formarán parte en el desarrollo del software.
La captura, estudio y diferenciación de requisitos, incluyendo pruebas de ellos, es una parte muy importante; de esta etapa depende en gran medida el alcance total de los objetivos finales. Se han creado diseños y distintos procedimientos de trabajo para estos fines. Aunque aún no está formalizada, ya se habla de la Ingeniería de Requisitos. La IEEE Std. 830-1998 normaliza la creación de las Especificaciones de Requisitos Software (Software Requirements Specification).
- Diseño y arquitectura

Consiste en acordar cómo funcionará de manera general sin especificar los detalles. Se basa en la inclusión de fundamentos de la implementación tecnológica, como el hardware, la red, etc.
Se determinan los Casos de Uso para abarcar las funciones que efectuará el sistema, y se convierten las entidades definidas en el análisis de requisitos en clases de diseño, dando como resultado un modelo cercano a la programación orientada a objetos.
- Programación
La reducción de un diseño a código puede ser la parte más evidente del trabajo de ingeniería de software, pero no siempre resulta ser la parte más larga. La dificultad y la permanencia de esta etapa está estrechamente ligada al o a los lenguajes de programación utilizados.
- Pruebas
Consiste en verificar que el software ejecute apropiadamente las labores indicadas en la especificación. La tecnología de prueba es aplicada de manera independiente, en cada módulo del software y luego hacer la prueba de integralmente, para así llegar al objetivo.
Es usual, además de recomendado, que las pruebas sean realizadas por alguien distinto al que desarrolló el programa; sin perjuicio de lo anterior el programador debe hacer sus propias pruebas.
- Documentación
Todo lo que se relaciona a la documentación del desarrollo del software y de la administración del proyecto, pasando por modelaciones (UML), diagramas, pruebas, manuales de usuario, manuales técnicos, etc; todo con el propósito de realizar correcciones con regularidad, utilidad, mantenimiento futuro y ampliaciones al sistema.
- Mantenimiento
Conservar y realizar mejoras en el software para afrontar fallas encontradas y nuevos requisitos. Esto puede llevar más tiempo incluso que el desarrollo inicial del software. Alrededor de 2/3 de toda la ingeniería de software tiene que ver con dar mantenimiento.
Ingeniería de software: especialización
El programa de especialización en Ingeniería de Software es un plan universitario orientado específicamente a profesionales en Informática que deseen profundizar y actualizar en metodologías y tecnologías modernas de la construcción de software y la inclusión de este como eje de desarrollo social, empresarial y tecnológico del país.

La industria del software y la capacitación del recurso humano que se necesita para ella son una condición palpable en las expectativas de crecimiento estratégico de la sociedad.
La Especialización en Ingeniería de Software fomenta la capacitación en aptitud, pericia y competencias en lo que se refiere al campo de la programación y desarrollo de software especializado.
Emplea el estudio minucioso de los lenguajes propios de la construcción en dicha área, así como también, de la caracterización de los diseños necesarios para la utilización de herramientas a profundidad; se adiestran técnicos que puedan proponer soluciones tecnológicamente viables, a los cambios difíciles propuestos por el mercado y que se basan específicamente, en su formación fundamental con relación a los lenguajes básicos y avanzados de programación, modelado y desarrollo de software. (ver Ingeniería civil metalúrgica)
Ingeniería de software: maestría
Una Maestría en Ingeniería de Software capacita a los estudiantes con la instrucción necesaria, tal como la aplicación de nuevas técnicas para competir en el entorno global.
Los que se deciden por esta especialidad, adquieren el conocimiento de los fundamentos básicos de la ingeniería software de construcción, esto puede agregar temas universales que tienen que ver con muchos asuntos referentes a la sociedad y que fomentan los cambios e innovaciones en la medicina, defensa y aeroespacial.
Las opciones que presenta el magister de ingeniería de software, son muy variadas e incluye el análisis de software, verificación del sistema, el diseño y la arquitectura, y el almacenamiento y recuperación de datos.
Cohesión y acoplamiento ingeniería de software
Un buen diseño debe fundamentarse en una alta cohesión y un bajo acoplamiento. Este ha sido, desde 1980, uno de los primeros principios declarados, del diseño estructurado para pasar luego a la orientación a objetos.
Cohesión y acoplamiento tiene que ver con modularidad. La contribución más relevante que ha hecho el diseño estructurado fue la concepción de que, para encontrar la solución de un problema complicado de desarrollo de software, es más conveniente, clasificarlo por separado, en partes más pequeñas, que se puedan diseñar, desarrollar, probar y hacer cambios, de manera simple y lo más independientemente posible del resto de la aplicación.
El diseño estructurado, al proponer la clasificación por separado del sistema, es decir en módulos, se apoyó, en las mismas funciones del sistema.
La cohesión consiste en que cada módulo del sistema se identifique a un único procedimiento de entidad. Mientras más grande sea la cohesión, mejor: el módulo será más sencillo de diseñar, programar, probar y mantener.
En el diseño estructurado, se alcanza una elevada cohesión, cuando cada módulo, es decir, función o procedimiento, ejecuta una única función, ocupándose de una sola configuración de datos. Una prueba que es común realizar a los módulos funcionales, para comprobar si son o no cohesivos, consiste en un análisis de las partes y cuyo resultado debe poder expresar la descripción del proceso, en una sola palabra o una oración simple, de lo contrario, debería plantearse la necesidad de dividir dicho módulo, en más partes y volverlo a probar.

El acoplamiento consiste en la medición del grado de relación de un módulo con los demás. Mientras menor sea el acoplamiento, mejor: el módulo en cuestión será más fácil de diseñar, programar, probar y mantener.
El acoplamiento en un diseño, ya constituido, se logra, minimizando las interacciones entre procesos y funciones, reduciendo la cantidad y dificultad de los parámetros y reduciendo al mínimo los parámetros por referencia y los efectos colaterales.
Ingeniería de software: universidades
A continuación, algunas de las Universidades en las que se pueden realizar los estudios de ingeniería de software.

- Universidad Tecnológica del Centro, Valencia – Venezuela
- Universidad Dr. José Gregorio Hernández, Maracaibo, Lagunillas – Venezuela
- Universidad Valle del Momboy, Valera, Trujillo – Venezuela
- Instituto Tecnológico de Massachusetts (MIT) – Estados Unidos
- Universidad de Stanford – Estados Unidos
- Universidad de Harvard – Estados Unidos
- Universidad de Washington – Estados Unidos
- Universidad de California-Berkeley – Estados Unidos
- Universidad Latinoamericana de Ciencia y Tecnología- Costa Rica

- Universidad Manuela Beltrán, Bogotá – Colombia
- Universidad Antonio Nariño Bogotá – Colombia
- Instituto Superior Tecnológico IDAT – Perú
- Universidad Nacional Mayor de San Marcos – UNMSM – Perú
- Universidad Peruana de Ciencias Aplicadas – UPC Campus San Isidro- Perú
- Universidad Peruana de Ciencias Aplicadas – UPC Campus Villa- Perú
- Universidad de Chile, Santiago – Chile
- Universidad de Palermo, Argentina
Ingeniería de software: pensum
La carrera tiene una duración de doce semestres, aproximadamente, seis años, a continuación el pensum completo:
Semestre 1
Matemática Universitaria, Física General, Letras I, Orientación Universitaria, Metodología De Investigación, Introducción a la Ingeniería
Semestre 2
Calculo Diferencial y Geometría Analítica, Física I, Letras II, Ética Profesional, Estadísticas I, Electiva Básica I
Cálculo Integral y Geometría, Analítica, Física II, Química General, Ingles Técnico I, Electiva Básica II
Semestre 4
Calculo Vectorial, Lógica de Programación, Fundamentos de la Ingeniería de Software, Inglés Técnico II, Geometría Descriptiva y Dibujo, Introducción a la administración, Legislación de la Informática
Semestre 5
Ecuaciones diferenciales, Programación Básica, Ingeniería de Requisitos, Auditoría de Sistemas de Información, Sistema Operativo, Ingeniería Económica
Semestre 6
Matemática Discreta, Programación Media, Diseño de Software, Base de Datos I, Ergonomía y Factores Humanos, Telecomunicaciones, Electiva Formativa II
Semestre 7
Fundamentos de Electrónica, Proyecto Integrado I, Programación Avanzada, Base de Datos II, Arquitectura de Software, Fundamentos de Gestión de Proyectos, Arquitectura y Mantenimiento del Computador
Semestre 8
Circuito Lógico, Algoritmos y Estructuras de Datos, Ingeniería del Conocimiento, Inteligencia de Negocios, Tecnologías de Internet I, Computación Gráfica I, Redes de Comunicación I
Semestre 9
Análisis y Optimización de Algoritmos, Electiva Profesional, Gestión de Configuración de Software, Desarrollo de Aplicaciones Móviles I, Tecnologías de Internet II, Computación Gráfica II, Realidad Aumentada
Semestre 10
Diseño de Experimentos Electiva Profesional II, Aseguramiento de Calidad de Software, Desarrollo de Aplicaciones Móviles II, Computación en Nube, Proyecto Integrador II Programación de Videojuegos
Semestre 11
Anteproyecto de Grado, Estimación de Software, Seguridad de la Información
Semestre 12
Proyecto de Grado
Ingeniería de software nota de corte
La nota de corte más alta para Ingeniería del Software en el curso 2016-2017 fue de un 6,682 en España.
La última medición en Venezuela fue de 7, 10. (ver Ingeniero Ambiental)
Ingeniería de software: campo laboral
El ingeniero de software, podrá desempeñarse en cargos donde podrá liderar procesos de concepción, diseño, construcción e implementación de programas y soluciones de software según modelos internacionales, lo que le capacita además, desarrollarse en los siguientes rubros:

- Administrar empresas de desarrollo de software.
- Proyectar y diseñar arquitecturas virtuales, soluciones inteligentes y software interactivo haciendo uso de técnicas emergentes tales como world wide web (WWW), cloud computing y redes sociales, entre otras.
- Ejecutar proyectos que garanticen el desarrollo y mantenimiento de la calidad del software.
- Impulsar soluciones móviles para las principales plataformas del mercado (Android, iOS, Windows Phone 7, etcétera) y de integración de software de sistemas heterogéneos a nivel empresarial.
- Tendrá la capacidad diseñar, proponer y poner en funcionamiento cualquier proyecto digital. (Ver Ingeniería Civil Industrial)
Ingeniería de software: sueldo
Hoy al 2018, el salario es aproximadamente de 1100 dólares para un ingeniero recién graduado, contratado por una compañía de software 8 o 9 horas diarias.
En Argentina, el salario será más o menos de $24.000 pesos por mes.
En México, serían aproximadamente $26.000 pesos.
En Colombia, son $2.800.000 mensuales.
En Chile, $850.000 para los que empiezan a trabajar en una empresa.
En Perú, $2.500 soles peruanos.
En Ecuador, un Ingeniero de Sistemas devenga un salario aproximado de 1100 dólares.
En Venezuela, serían 3.200.000 bolívares mensuales, tomando en cuenta el promedio de lo que cobran también por los trabajos independientes; esta investigación fue actualizada el 07/01/2018
En Uruguay, tienen un salario de 26.000 pesos para empezar.

En Costa Rica, comienza ganando en promedio 1000 dólares.
En Estados Unidos, un Ingeniero en Sistemas gana entre 4.000 y 6.000 dólares por mes en sus primeros años.
Cabe destacar, que los salarios aquí expresados, son para ingenieros de software recién graduados que comienzan a prestar servicio en una empresa. A medida que pasa el tiempo, las oportunidades de ascender en la misma empresa, más la experiencia adquirida, el salario irá incrementándose.
Ingeniería de software: salidas
El título de Ingeniería de Software se dedica a la formación y capacitación de ingenieros expertos en sistemas de información en un ámbito empresarial, con un mayor enfoque en el desarrollo de sistemas de información, bases de datos, modelos de gestión y gestión de la empresa, y con capacidad para liderar el desarrollo de proyectos y adaptarse de manera eficiente.

La carrera presenta salidas profesionales y salidas académicas. Las salidas profesionales más sobresalientes son:
- Programador de sistemas software
- Diseñador/integrados de sistemas
- Consultor de sistemas
- Especialista en soluciones TIC
- Diseñador de web – Programador de aplicaciones
- Especialista en mantenimiento software
- Administrador de Sistemas Informáticos
- Especialista en integración y pruebas
- Analista de servicios telemáticos
- Especialista en seguridad telemática
En cuanto a las salidas académicas el egresado en Ingeniería de Software obtiene un perfil, que lo capacita para desarrollar cualquier tarea que se relacione con el desarrollo de software y sus aplicaciones, así como tareas relacionadas con la Gestión de Proyectos Software.
Los graduados en ingeniería de software, pueden alcanzar un adiestramiento más especializado, por lo que podrían optar por los estudios en el Máster Universitario de Ingeniería del Software e Inteligencia Artificial, así como en el Máster Universitario de Sistemas de Información Audiovisual, Máster Universitario en Informática Aplicada a las Telecomunicaciones Móviles y el Máster Universitario en Ingeniería Web y Tecnologías RIA (RIAtec). (Ver
Paradigmas de la ingeniería de software

Un paradigma de programación es un prototipo de un diseño simple y desarrollo de programas, que posibilita la producción de programas con una orientación determinada tales como: configuración modular, fuerte adhesión, alto rendimiento, etc.
Hay tres tipos de paradigmas de programación:
- Los que sustentan la tecnología de programación de bajo nivel.
- Los que sustentan la metodología del diseño de algoritmos.
- Los que sustentan las soluciones de programación de alto nivel.
Modelos de la ingeniería de software
La ingeniería de software presenta diferentes tipos o paradigmas de desarrollo, que son los que le sirven de apoyo para la ejecución del

software, algunos de los más destacados, por ser los más usados:
- Modelo en cascada o Clásico (modelo tradicional)
- Modelo en espiral (modelo evolutivo)
- Modelo de prototipos
- Desarrollo por etapas
- Desarrollo iterativo y creciente o Interactivo Incremental
- RAD (Rapid Application Development)
Ingeniería de software metodologías
Una metodología es un grupo integrado de tecnologías y procedimientos que permite iniciar de manera analógica y amplia todas y cada una de las actividades del ciclo de vida de un proyecto de desarrollo. Es un proceso de software detallado y completo.
Una metodología para el desarrollo de software abarca los procedimientos a seguir sistemáticamente para inventar, poner en funcionamiento y conservar un producto software desde que se pone de manifiesto la exigencia del producto hasta que llevamos a cabo el objetivo por el cual fue creado.
El método RAD tiene infinidad de tareas y una estructura de análisis de trabajo diseñada para la rapidez.
El método abarca el desempeño repetitivo, la elaboración de prototipos y la utilización del rendimiento CASE (Computer Aided Software Engineering). Usualmente, el desempeño rápido de programas, se orienta a incluir también la usabilidad, utilidad y rapidez de ejecución.
Desde el punto de vista de administración el método RAD:

- Posibilitar labores de planificación
- Permitir la tarea del control y seguimiento de un proyecto
- Renovar la correlación costo/beneficio
- Mejorar la utilización de recursos disponibles
- Posibilitar la estimación de resultados y finiquito de los objetivos
- Determinar el ciclo de vida que sea más apropiado a las condiciones y características del desarrollo
- Permitir la comunicación efectiva entre usuarios y desarrolladores
Capas de la ingeniería de software
Proceso: El cimiento de la ingeniería del software es la capa de proceso. El proceso de la ingeniería del software consiste en la cohesión que conserva las capas de tecnología unidas y que da pie a un incremento lógico y conveniente de la ingeniería del software. El proceso determina un entorno de trabajo para un cúmulo de Áreas clave de proceso (ACPs) que se deben constituir para la adjudicación efectiva de la tecnología de la ingeniería del software.
Las áreas claves del proceso configuran la base del control de administración de procedimientos del software y disponen el entorno en el que se aplican los métodos técnicos, se logran productos del trabajo (modelos, documentos, datos, informes, formularios, etc.), se establecen señales, se asegura la calidad y el cambio se gestiona adecuadamente.

Métodos: Los métodos de la ingeniería del software orientan «cómo» elaborar técnicamente el software. Los métodos comprenden una diversidad de tareas tales como el análisis de requisitos, diseño, elaboración de programas, verificación y mantenimiento. Los métodos de la ingeniería del software obedecen a un grupo de principios básicos que rigen cada área de la tecnología e incorpora funciones de modelado y otras técnicas descriptivas.
Herramientas: Las herramientas de la Ingeniería del software aportan un punto de vista automático o semi-automático para el proceso y para los métodos. Un sistema de sustentación para el buen desempeño del software, se forma por la integración de herramientas para que la información elaborada por una herramienta la pueda utilizar otra, a esto es lo que llamamos ingeniería del software asistida por computadora (CASE).
Ingeniería de software: diseño
El diseño del software se encuentra en el centro de la tecnología, de la correspondiente ingeniería y se adapta de forma independiente, al modelo de software que se esté empleando. Enseguida que se han analizado y determinado los requerimientos, el diseño del software es la última operación, de la ingeniería correspondiente, dentro de la actividad del modelado, lo que origina una plataforma para la construcción (generación de código y prueba).
Ingeniería del software basada en componentes
Ingeniería del software basada en componentes consiste en un procedimiento que se enfoca en el diseño y construcción de programas basados en computadora que emplean «componentes» de software reutilizables.

Un componente de software individual es un bloque de software, un servicio web, o un módulo que oculta un conjunto de datos.
Todos los procedimientos del sistema son ubicados en componentes independientes de tal modo, que todos los datos y funciones dentro de cada componente están significativamente relacionados. En consecuencia a este principio, usualmente se dice que los componentes son modulares y cohesivos.
Otra característica relevante de los componentes es que se pueden sustituir, así que un componente puede sustituir a otro (en tiempo de diseño o tiempo de ejecución), si el componente sustituto llena los requerimientos del componente inicial el cual ha sido expresado a través de las interfaces. Es decir, los componentes pueden ser cambiados por una versión más moderna o una opción sin fracturar el sistema en el cual actúan.
Tendencias de la ingeniería de software
Las Tecnologías de la Información y la Comunicación son, en la actualidad, la manera más utilizada para llevar información relevante a la sociedad, para ofrecer servicios públicos de gran calidad y promover la calidad de vida según los servicios de información, motivo por el cual, en muchos países se ha incrementado el interés en esta área como motor del desarrollo.
Innovadas técnicas y paradigmas han surgido del gran auge económico que el software ha tenido en la vida económica del hombre.
En la actualidad es difícil pensar en alguna empresa sin el uso de las TIC, pues éstas le aportan un incremento económico en el desarrollo a las empresas, además de la reducción de los costos de comunicación y operación y aumentando el rendimiento y la productividad que las impulsa a introducirse en mercados internacionales.

El empleo de las TIC dentro de las organizaciones ha originado nuevos planteamientos de interés, haciendo aparecer nuevos
requerimientos de conocimiento como pueden ser: el aumento de plataformas para la extracción de conocimiento organizacional para mejorar procedimientos en un contexto multimodelo; la creación apropiada de requisitos.
Aplicación de principios y técnicas de gamiÀcación para la formación de personal; el diseño de plataformas de software con tendencia hacia la educación y la construcción; la garantía de datos informáticos; la adecuada gestión del conocimiento organizacional; uso de plataformas digitales; el uso de web semántica para la integración de recursos digitales; empleo de análisis en redes sociales; programas para el aprendizaje basado en juegos; el empleo de robots para apoyar el incremento de distintas actividades y de la administración de recursos en entornos mineros.
En conclusión, para el uso adecuado de las TIC, siendo la ingeniería de software quien posibilita la creación y empleo de principios de ingeniería robustos, enfocados a conseguir software de alta calidad, económico, Àable, eÀciente y que cubra todas las exigencias del usuario, con la llegada de estos nuevos enfoques se constituye un gran reto para la Ingeniería del Software. (ver Ingeniería Alimentaria)
Mitos de la ingeniería de software
La mayoría de los motivos de la dificultad del software se pueden encontrar en una mitología que surge en los años en que se origina el software. En la antigüedad, los mitos llevaban en sí, una lección de vida, que los seres humanos apreciaban, sin embargo, los mitos de software, más allá de una enseñanza, lo que han proporcionado, son errores y confusión a través de la información.
Los mitos del software se caracterizan por ser engañosos; por ejemplo, se tomaron como explicaciones racionales, hechos, que si bien es cierto, en algunas oportunidades tenían elementos que eran ciertos, tuvieron un sentido intuitivo y frecuentemente fueron promulgados por expertos que «estaban al día».
En efecto existen tres tipos de mitos: de administración o gestión, mitos del usuario o cliente y mitos del programador o desarrollador.
Mitos de administración o gestión: Los administradores con compromiso sobre el software, como los administradores en la mayoría de las especialidades, son sometidos a la presión de cumplir lo pautado en cuanto a los presupuestos, no permitir que se retrase el proyecto y mejorar la calidad. De la misma manera que se aferra al vacío una persona que se ahoga, un administrador de

software se agarra frecuentemente a un mito del software, aunque tal creencia sólo disminuya la presión temporalmente.
Ejemplo de mito: existe un texto que está pleno de modelos y procesos para construir software.
La realidad: es una muy buena noticia que dicho texto exista, pero se utiliza? ¿Saben los trabajadores su existencia?, ¿evidencia los ensayos modernos acerca del desarrollo de software?, ¿es completo?, ¿está elaborado para mejorar el tiempo de entrega mientras mantiene un enfoque de calidad? En muchos casos, la respuesta a todas estas preguntas es «no».
Otro mito: Mi equipo cuenta con las herramientas de desarrollo de software más modernas, pues, les hemos dotado con las computadoras más modernas.
Realidad: Se requiere algo más que el modelo de computadora moderna o de PC para desarrollar un software de excelente calidad. Las herramientas de ingeniería del software apoyada por ordenador (CASE) son más significativas que el hardware para obtener buena calidad y productividad, aunque la mayoría de los programadores del software todavía no las usen eficazmente.
Mito: Si se fracasa en el proyecto, se pueden agregar más desarrolladores y recuperar el tiempo perdido (el llamado algunas veces«concepto de la horda Mongoliana»)
Realidad: Si observamos esta afirmación con atención, nos damos cuenta que es contradictorio; no obstante, cuando se agregan nuevas usuarios, la exigencia de aprender y comunicarse con el equipo puede y hace que se reduzca la cantidad de tiempo usado en el desarrollo productivo. Está permitido agregar gente, pero sólo de una manera planificada y bien coordinada.
Mitos del usuario o cliente: Un cliente requiere una aplicación de software, dicha persona, podría ser un compañero de trabajo, o bien un grupo técnico de la sala de abajo, el departamento de ventas o una compañía exterior que solicita un software bajo contrato. En la mayoría de los casos, el cliente piensa que los mitos que existen sobre el software, son una consecuencia de que los administradores y programadores del software hacen muy poco o nada, para corregir la mala información. Los mitos orientan a que el usuario espere más de lo que va a recibir y, finalmente, no quede satisfecho con el que programa el software.
Mito: Una exposición genérica de los objetivos es conveniente para comenzar a escribir los programas.
Realidad: Una mala descripción básica es el motivo primordial del trabajo innecesario en software. Es fundamental una descripción explícita y con todos los detalles del entorno de la información, funciones, comportamiento, rendimiento, interfaces, ligaduras del diseño y criterios de validación. Estas características pueden acordarse sólo después de una exhaustiva comunicación entre el cliente y el analista.
Mitos del programador o desarrollador: Los mitos en los que aún creen muchos programadores fueron esparcidos durante 50 años de cultura informática. En los inicios del incremento del software, la programación se veía como una aptitud. Las viejas formas y actitudes tardan en morir.
Mito: En cuanto se crea el programa y se pone a funcionar se piense que ha finalizado el trabajo.
Realidad: las referencias industriales demuestran que la mayor parte del trabajo y el afán dedicado a un programa se llevarán a cabo después de que se le haya entregado al cliente por primera vez.
Mito: mientras no tenga el programa «ejecutándose», entonces no hay manera de estar seguro de la calidad del mismo.
Realidad: La revisión técnica visual, es un instrumento que puede ser aplicado al principio del proyecto y el que puede dar las garantías necesarias sobre la calidad del software.
Si has soñado con dedicarte a una profesión vanguardista, que se mantiene actualizándose, lo que te permite avanzar en tu preparación y que cada día se considera una de las profesiones más buscadas y mejor remuneradas, por lo novedoso de sus diseños y sus modernos aportes tecnológicos, Ingeniería de software es la carrera que te interesa.