Articulo de referencia

Ingeniería de software

La ingeniería de software es una rama de la informática y la ingeniería centrada en el diseño , desarrollo , prueba y mantenimiento de aplicaciones de software . [ 1 ] Implica l...

La ingeniería de software es una rama de la informática y la ingeniería centrada en el diseño , desarrollo , prueba y mantenimiento de aplicaciones de software . [ 1 ] Implica la aplicación de principios de ingeniería y conocimientos de programación informática para desarrollar sistemas de software que satisfagan las necesidades de los usuarios. [ 2 ] [ 3 ] [ 4 ] [ 5 ]

Un ingeniero de software aplica un proceso de desarrollo de software [ 2 ] [ 6 ] para definir, implementar, probar , gestionar y mantener sistemas de software.

Historia

A partir de la década de 1960, la ingeniería de software fue reconocida como un campo de ingeniería independiente . [ 7 ]

El desarrollo de la ingeniería de software se percibía como una lucha constante. Entre los problemas se incluían programas que superaban el presupuesto, excedían los plazos de entrega, requerían una depuración y un mantenimiento exhaustivos, y no lograban satisfacer las necesidades de los consumidores o ni siquiera llegaban a completarse.

En 1968, la OTAN organizó la primera conferencia sobre ingeniería de software, que abordó los desafíos emergentes en el desarrollo de software y desempeñó un papel clave en la formalización de directrices y mejores prácticas para crear software fiable y mantenible. [ 8 ]

Los orígenes del término ingeniería de software se han atribuido a varias fuentes. El término apareció en una lista de servicios ofrecidos por empresas en el número de junio de 1965 de "Computers and Automation" [ 9 ] y se utilizó más formalmente en el número de agosto de 1966 de Communications of the ACM (Volumen 9, número 8) en "President's Letter to the ACM Membership" de Anthony A. Oettinger. [ 10 ] [ 11 ] [ 12 ] También está asociado con el título de una conferencia de la OTAN en 1968 por el profesor Friedrich L. Bauer . [ 13 ] Margaret Hamilton describió la disciplina de "ingeniería de software" durante las misiones Apolo para dar legitimidad a lo que estaban haciendo. [ 14 ] En ese momento, se percibía que había una " crisis de software ". [ 15 ] [ 16 ] [ 17 ] La 40.ª Conferencia Internacional sobre Ingeniería de Software (ICSE 2018) celebró 50 años de "Ingeniería de Software" con las ponencias magistrales de las Sesiones Plenarias de Frederick Brooks [ 18 ] y Margaret Hamilton . [ 19 ]

En 1984, se estableció el Software Engineering Institute (SEI) como un centro de investigación y desarrollo financiado por el gobierno federal, con sede en el campus de la Universidad Carnegie Mellon en Pittsburgh, Pensilvania , Estados Unidos. [ 20 ] Watts Humphrey fundó el Programa de Procesos de Software del SEI, cuyo objetivo era comprender y gestionar el proceso de ingeniería de software. [ 20 ] Los Niveles de Madurez de Proceso introducidos se convirtieron en el Modelo de Integración de Madurez de Capacidades para el Desarrollo (CMMI-DEV), que definió cómo el Gobierno de los Estados Unidos evalúa las capacidades de un equipo de desarrollo de software.

Las mejores prácticas modernas y generalmente aceptadas para la ingeniería de software han sido recopiladas por el subcomité ISO/IEC JTC 1/SC 7 y publicadas como el Cuerpo de Conocimientos de Ingeniería de Software (SWEBOK). [ 6 ] La ingeniería de software se considera una de las principales disciplinas de la informática . [ 21 ]

En los sistemas modernos, donde prevalecen conceptos como Edge Computing , Internet de las Cosas y Sistemas Ciberfísicos , el software es un factor crítico. Por lo tanto, la ingeniería de software está estrechamente relacionada con la disciplina de ingeniería de sistemas . El Cuerpo de Conocimientos de Ingeniería de Sistemas afirma:

El software ocupa un lugar destacado en la mayoría de las arquitecturas de sistemas modernas y suele ser el principal medio para integrar componentes complejos. La ingeniería de software y la ingeniería de sistemas no son meramente disciplinas relacionadas; están íntimamente ligadas. Una buena ingeniería de sistemas es un factor clave para una buena ingeniería de software.

Terminología

Definición

Algunas definiciones destacadas de ingeniería de software son:

  • "La aplicación sistemática de conocimientos, métodos y experiencia científicos y tecnológicos al diseño, implementación, prueba y documentación de software."—Oficina de Estadísticas Laborales— Ingeniería de sistemas y software IEEE – Vocabulario [ 22 ]
  • "La aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y mantenimiento del software."— Glosario estándar de terminología de ingeniería de software del IEEE [ 23 ]
  • "Una disciplina de ingeniería que se ocupa de todos los aspectos de la producción de software." — Ian Sommerville [ 24 ]
  • "El establecimiento y uso de principios de ingeniería sólidos para obtener económicamente software que sea fiable y funcione eficientemente en máquinas reales."— Fritz Bauer [ 25 ]
  • "Una rama de la informática que se ocupa del diseño, la implementación y el mantenimiento de programas informáticos complejos ."— Merriam-Webster [ 26 ]
  • « La ingeniería de software abarca no solo el acto de escribir código, sino también todas las herramientas y procesos que una organización utiliza para construir y mantener ese código a lo largo del tiempo. [...] La ingeniería de software puede considerarse como "programación integrada a lo largo del tiempo " . » —Ingeniería de Software en Google [ 27 ]

El término también se ha utilizado de forma menos formal:

  • Como término informal contemporáneo para la amplia gama de actividades que antes se denominaban programación informática y análisis de sistemas [ 28 ]
  • Como término amplio para todos los aspectos de la práctica de la programación informática, en contraposición a la teoría de la programación informática, que se estudia formalmente como una subdisciplina de la ciencia informática [ 29 ].
  • Como término que encarna la defensa de un enfoque específico de la programación informática, uno que insta a que se la trate como una disciplina de ingeniería en lugar de un arte o un oficio, y aboga por la codificación de prácticas recomendadas [ 30 ]

Idoneidad

Los distintos comentaristas han discrepado profundamente sobre cómo definir la ingeniería de software o su legitimidad como disciplina de ingeniería. David Parnas ha afirmado que la ingeniería de software es, de hecho, una forma de ingeniería. [ 31 ] [ 32 ] Steve McConnell ha afirmado que no lo es, pero que debería serlo. [ 33 ] Donald Knuth ha afirmado que la programación es un arte y una ciencia. [ 34 ] Edsger W. Dijkstra afirmó que los términos ingeniería de software e ingeniero de software se han utilizado incorrectamente en Estados Unidos. [ 35 ]

Carga de trabajo

Análisis de requisitos

La ingeniería de requisitos se centra en la obtención, el análisis, la especificación y la validación de los requisitos de software . Los requisitos de software pueden ser funcionales , no funcionales o de dominio.

Los requisitos funcionales describen los comportamientos esperados (es decir, los resultados). Los requisitos no funcionales especifican aspectos como la portabilidad, la seguridad, la mantenibilidad, la fiabilidad, la escalabilidad, el rendimiento, la reutilización y la flexibilidad. Se clasifican en los siguientes tipos: restricciones de interfaz, restricciones de rendimiento (como tiempo de respuesta, seguridad, espacio de almacenamiento, etc.), restricciones operativas, restricciones del ciclo de vida (mantenibilidad, portabilidad, etc.) y restricciones económicas. Es necesario conocer el funcionamiento del sistema o software para especificar los requisitos no funcionales. Los requisitos de dominio se refieren a las características de una determinada categoría o dominio de proyectos. [ 36 ]

Diseño

El diseño de software es el proceso de elaborar planes de alto nivel para el software. El diseño a veces se divide en niveles:

Construcción

La construcción de software generalmente implica programación (también conocida como codificación), pruebas unitarias , pruebas de integración y depuración para implementar el diseño. [ 2 ] [ 6 ] "Las pruebas de software están relacionadas con la depuración, pero son diferentes de ella". [ 6 ]

Pruebas

Las pruebas de software son una investigación técnica y empírica realizada para proporcionar a las partes interesadas información sobre la calidad del software que se está probando. [ 2 ] [ 6 ] Las pruebas de software pueden considerarse una actividad basada en el riesgo.

Cuando se describe por separado de la construcción, las pruebas suelen ser realizadas por ingenieros de pruebas o personal de control de calidad, en lugar de los programadores que escribieron el software. Se realizan a nivel de sistema y se consideran un aspecto de la calidad del software . Los objetivos de los evaluadores durante el proceso de pruebas son minimizar el número total de pruebas a un conjunto manejable y tomar decisiones bien fundamentadas sobre qué riesgos deben priorizarse para las pruebas y cuáles pueden esperar. [ 38 ]

Análisis del programa

El análisis de programas es el proceso de analizar programas informáticos con respecto a aspectos como el rendimiento , la robustez y la seguridad .

Mantenimiento

El mantenimiento de software se refiere al soporte del software después de su lanzamiento. Puede incluir, entre otras cosas: corrección de errores , optimización, eliminación de funciones no utilizadas y descartadas, y mejora de las funciones existentes. [ 2 ] [ 6 ]

Por lo general, el mantenimiento representa entre el 40% y el 80% del costo del proyecto. [ 39 ]

Educación

Las mejores universidades de informática de Norteamérica

El conocimiento de la programación informática es un requisito previo para convertirse en ingeniero de software. En 2004, la IEEE Computer Society elaboró ​​el SWEBOK , que se publicó como Informe Técnico ISO/IEC 1979:2005, que describe el conjunto de conocimientos que recomiendan que domine un ingeniero de software graduado con cuatro años de experiencia. [ 40 ] Muchos ingenieros de software ingresan a la profesión obteniendo un título universitario o capacitándose en una escuela vocacional. Un plan de estudios internacional estándar para títulos de ingeniería de software de pregrado fue definido por el Grupo de Trabajo Conjunto sobre Planes de Estudio de Computación de la IEEE Computer Society y la Association for Computing Machinery , y actualizado en 2014. [ 21 ] Varias universidades tienen programas de grado en Ingeniería de Software; a partir de 2010En Estados Unidos existían 244 programas presenciales de Licenciatura en Ingeniería de Software , 70 programas en línea, 230 programas de maestría, 41 programas de doctorado y 69 programas de certificación.

Además de la formación universitaria, muchas empresas ofrecen prácticas profesionales a estudiantes que desean desarrollar una carrera en tecnología de la información. Estas prácticas permiten al estudiante familiarizarse con las tareas reales a las que se enfrentan a diario los ingenieros de software. Una experiencia similar puede adquirirse a través del servicio militar en ingeniería de software.

programas de grado en ingeniería de software

Un número pequeño pero creciente de profesionales posee títulos en ingeniería de software. En 1987, el Departamento de Informática del Imperial College de Londres introdujo la primera licenciatura en ingeniería de software de tres años del mundo; al año siguiente, la Universidad de Sheffield estableció un programa similar. [ 41 ] En 1996, el Instituto Tecnológico de Rochester estableció el primer programa de licenciatura en ingeniería de software en los Estados Unidos; sin embargo, no obtuvo la acreditación ABET hasta 2003, el mismo año que la Universidad Rice , la Universidad Clarkson , la Escuela de Ingeniería de Milwaukee y la Universidad Estatal de Mississippi . [ 42 ]

Desde entonces, se han establecido títulos de pregrado en ingeniería de software en muchas universidades. Un plan de estudios internacional estándar para los títulos de pregrado en ingeniería de software, SE2004 , fue definido por un comité directivo entre 2001 y 2004 con financiación de la Association for Computing Machinery y la IEEE Computer Society . A partir de 2004En Estados Unidos, alrededor de 50 universidades ofrecen títulos en ingeniería de software, que abarcan tanto los principios como las prácticas de la informática y la ingeniería. La primera maestría en ingeniería de software se estableció en la Universidad de Seattle en 1979. Desde entonces, muchas más universidades ofrecen programas de posgrado en ingeniería de software. De igual manera, en Canadá, la Junta Canadiense de Acreditación de Ingeniería (CEAB, por sus siglas en inglés) del Consejo Canadiense de Ingenieros Profesionales ha reconocido varios programas de ingeniería de software.

Además, han aparecido muchos títulos avanzados en línea en Ingeniería de Software, como la Maestría en Ciencias en Ingeniería de Software (MSE) que ofrece el Departamento de Ciencias de la Computación e Ingeniería de la Universidad Estatal de California, Fullerton . Steve McConnell opina que, debido a que la mayoría de las universidades enseñan ciencias de la computación en lugar de ingeniería de software, hay escasez de verdaderos ingenieros de software. [ 43 ] La Universidad ETS (École de technologie supérieure) y la UQAM (Université du Québec à Montréal) recibieron el mandato del IEEE de desarrollar el Cuerpo de Conocimientos de Ingeniería de Software ( SWEBOK ), que se ha convertido en un estándar ISO que describe el conjunto de conocimientos que abarca un ingeniero de software. [ 6 ]

Profesión

Los requisitos legales para la obtención de licencias o certificaciones de ingenieros de software profesionales varían en todo el mundo. En el Reino Unido, no existe ningún requisito legal ni de licencia para asumir o utilizar el título de Ingeniero de Software. En algunas zonas de Canadá, como Alberta, Columbia Británica, Ontario [ 44 ] y Quebec, los ingenieros de software pueden obtener la designación de Ingeniero Profesional (P.Eng) y/o la de Profesional de Sistemas de Información (ISP). En Europa, los ingenieros de software pueden obtener el título profesional de Ingeniero Europeo (EUR ING). Los ingenieros de software también pueden obtener la cualificación profesional de Ingeniero Colegiado a través de la British Computer Society .

En Estados Unidos, el NCEES comenzó a ofrecer un examen de Ingeniero Profesional para Ingeniería de Software en 2013, lo que permitió a los Ingenieros de Software obtener licencias y reconocimiento. [ 45 ] El NCEES suspendió el examen después de abril de 2019 debido a la falta de participación. [ 46 ] La concesión de licencias obligatorias sigue siendo objeto de amplio debate y se percibe como controvertida. [ 47 ] [ 48 ]

La IEEE Computer Society y la ACM , las dos principales organizaciones profesionales de ingeniería de software con sede en EE. UU., publican guías sobre la profesión. La Guía del Cuerpo de Conocimientos de Ingeniería de Software de la IEEE – Versión 2004 , o SWEBOK , define el campo y describe los conocimientos que la IEEE espera que tenga un ingeniero de software en ejercicio. La versión más reciente es SWEBOK v4. [ 6 ] La IEEE también promulga un "Código de Ética de la Ingeniería de Software". [ 49 ]

Empleo

Se estima que en 2022 había 26,9 millones de ingenieros de software profesionales en el mundo, frente a los 21 millones de 2016. [ 50 ] [ 51 ]

Muchos ingenieros de software trabajan como empleados o contratistas. Colaboran con empresas, agencias gubernamentales (civiles o militares) y organizaciones sin ánimo de lucro. Algunos trabajan por cuenta propia como autónomos . Algunas organizaciones cuentan con especialistas para realizar cada una de las tareas del proceso de desarrollo de software . Otras requieren que los ingenieros de software realicen muchas o todas ellas. En proyectos grandes, las personas pueden especializarse en un solo rol. En proyectos pequeños, pueden desempeñar varios o todos los roles simultáneamente. Muchas empresas contratan becarios , a menudo estudiantes universitarios durante las vacaciones de verano, o pasantías . Las especializaciones incluyen analistas , arquitectos , desarrolladores , evaluadores , soporte técnico , analistas de middleware, gestores de proyectos , gestores de productos de software , educadores e investigadores .

La mayoría de los ingenieros de software y programadores trabajan 40 horas a la semana, pero alrededor del 15 por ciento de los ingenieros de software y el 11 por ciento de los programadores trabajaron más de 50 horas a la semana en 2008. [ 52 ] Las lesiones potenciales en estas ocupaciones son posibles porque, al igual que otros trabajadores que pasan largos períodos sentados frente a una terminal de computadora escribiendo en un teclado, los ingenieros y programadores son susceptibles a la fatiga visual, molestias en la espalda, trombosis , obesidad y problemas de manos y muñecas como el síndrome del túnel carpiano . [ 53 ]

Estados Unidos

La Oficina de Estadísticas Laborales de EE. UU. (BLS) contabilizó 1.365.500 desarrolladores de software trabajando en EE. UU. en 2018. [ 54 ] Debido a su relativa novedad como campo de estudio, la educación formal en ingeniería de software a menudo se imparte como parte de un plan de estudios de ciencias de la computación, y muchos ingenieros de software tienen títulos en ciencias de la computación. [ 55 ] La BLS estima que el crecimiento para los ingenieros de software entre 2024 y 2034 es del 15%, lo que es menor que su predicción para el período 2023-2033 de que la ingeniería de software de computadoras aumentaría en un 17%. [ 56 ] Esto es menor que la estimación de la BLS para el período 2022-2032 del 25% para la ingeniería de software. [ 56 ] [ 57 ] Y, es aún menor que su estimación de la BLS del 30% para el período 2010-2020. [ 58 ] Debido a esta tendencia, el crecimiento del empleo puede no ser tan rápido como durante la última década, ya que los trabajos que habrían ido a los ingenieros de software informático en los Estados Unidos en cambio se subcontratarían a ingenieros de software informático en países como India y otros países extranjeros. [ 59 ] [ 52 ] Además, la Perspectiva de Empleo para Programadores Informáticos de la Oficina de Estadísticas Laborales de EE. UU. (BLS), la Perspectiva Ocupacional de la Oficina de Estadísticas Laborales (BLS) predice una disminución del -7 por ciento de 2016 a 2026, una disminución adicional del -9 por ciento de 2019 a 2029, una disminución del -10 por ciento de 2021 a 2031. [ 59 ] y luego una disminución del -11 por ciento de 2022 a 2032. [ 59 ] Actualmente su predicción para 2024 a 2034 es una disminución del -6 por ciento. Dado que la programación informática se puede realizar desde cualquier parte del mundo, las empresas a veces contratan programadores en países donde los salarios son más bajos. [ 59 ] [ 60 ] [ 61 ] Además, la proporción de mujeres en muchos campos del software también ha disminuido a lo largo de los años en comparación con otros campos de la ingeniería. [ 62 ] [ 63 ] Luego está la preocupación adicional de que los avances recientes en Inteligencia Artificial podrían afectar la demanda de futuras generaciones de ingenieros de software. [ 64 ] [ 65 ] [ 66 ] [ 67 ] [ 68 ] [ 69 ] [ 70 ]Sin embargo, esta tendencia podría cambiar o ralentizarse en el futuro, ya que muchos ingenieros de software actuales en el mercado estadounidense abandonarán la profesión o se retirarán del mercado laboral en las próximas décadas. [ 59 ] [ 71 ]

Proceso de dar un título

El Software Engineering Institute ofrece certificaciones en temas específicos como seguridad , mejora de procesos y arquitectura de software . [ 72 ] IBM , Microsoft y otras empresas también patrocinan sus propios exámenes de certificación. Muchos programas de certificación de TI están orientados a tecnologías específicas y son gestionados por los proveedores de dichas tecnologías. [ 73 ] Estos programas de certificación están diseñados para las instituciones que emplearían a personas que utilizan estas tecnologías.

Varias asociaciones profesionales ofrecen una certificación más amplia de habilidades generales de ingeniería de software. A partir de 2006El IEEE había certificado a más de 575 profesionales del software como Profesionales Certificados en Desarrollo de Software (CSDP). [ 74 ] En 2008 añadieron una certificación de nivel básico conocida como Asociado Certificado en Desarrollo de Software (CSDA). [ 75 ] La ACM y la IEEE Computer Society examinaron conjuntamente la posibilidad de licenciar a los ingenieros de software como Ingenieros Profesionales en la década de 1990, pero finalmente decidieron que dicha licencia era inapropiada para la práctica industrial profesional de la ingeniería de software. [ 47 ] John C. Knight y Nancy G. Leveson presentaron un análisis más equilibrado del tema de la licencia en 2002. [ 48 ]

En el Reino Unido, la British Computer Society ha desarrollado una certificación profesional reconocida legalmente llamada Chartered IT Professional (CITP) , disponible para miembros plenamente cualificados ( MBCS ). Los ingenieros de software pueden ser elegibles para ser miembros de la British Computer Society o de la Institution of Engineering and Technology y, por lo tanto, calificar para ser considerados para el estatus de Ingeniero Colegiado a través de cualquiera de esas instituciones. En Canadá, la Canadian Information Processing Society ha desarrollado una certificación profesional reconocida legalmente llamada Information Systems Professional (ISP) . [ 76 ] En Ontario, Canadá, los ingenieros de software que se gradúan de un programa acreditado por la Canadian Engineering Accreditation Board (CEAB) , completan con éxito el Examen de Práctica Profesional (PPE) de PEO ( Professional Engineers Ontario ) y tienen al menos 48 meses de experiencia aceptable en ingeniería son elegibles para obtener la licencia a través de Professional Engineers Ontario y pueden convertirse en Ingenieros Profesionales P.Eng. [ 77 ] Sin embargo, PEO no reconoce ninguna educación en línea o a distancia; y no considera que los programas de Ciencias de la Computación sean equivalentes a los programas de ingeniería de software a pesar de la enorme superposición entre ambos. Esto ha generado controversia y una guerra de certificaciones. Además, esto ha mantenido el número de ingenieros profesionales certificados (P.Eng) en un nivel excepcionalmente bajo. La gran mayoría de los profesionales en activo en este campo poseen un título en Ciencias de la Computación (CS), no en Ingeniería de Software (SE). Dado el difícil proceso de certificación para quienes no poseen títulos en Ingeniería de Software, la mayoría ni siquiera se molesta en obtener la licencia.

Impacto de la globalización

El impacto inicial de la subcontratación y el costo relativamente menor de los recursos humanos internacionales en los países en desarrollo del tercer mundo llevaron a una migración masiva de actividades de desarrollo de software de corporaciones en América del Norte y Europa a India y, posteriormente, a China, Rusia y otros países en desarrollo. Este enfoque tuvo algunos defectos, principalmente la distancia/diferencia horaria que impidió la interacción humana entre clientes y desarrolladores y la transferencia masiva de empleos. Esto tuvo un impacto negativo en muchos aspectos de la profesión de ingeniería de software. Por ejemplo, algunos estudiantes en el mundo desarrollado evitan la educación relacionada con la ingeniería de software por temor a la subcontratación en el extranjero (importación de productos o servicios de software de otros países) y a ser desplazados por trabajadores extranjeros con visa . [ 78 ] Además, el exceso de trabajadores de alta tecnología ha llevado a una mayor adopción del sistema de horas de trabajo 996 y horarios '007' como carga de trabajo esperada. [ 79 ] Si bien las estadísticas actualmente no muestran una amenaza para la ingeniería de software en sí, una carrera relacionada, la programación de computadoras, sí parece haberse visto afectada. [ 80 ] Sin embargo, la capacidad de aprovechar de manera inteligente los recursos en alta mar y en ubicaciones cercanas mediante el flujo de trabajo continuo ha mejorado la capacidad operativa general de muchas organizaciones. [ 81 ] Cuando los norteamericanos salen del trabajo, los asiáticos están llegando al trabajo. Cuando los asiáticos salen del trabajo, los europeos llegan al trabajo. Esto proporciona una capacidad continua de tener supervisión humana sobre los procesos críticos del negocio las 24 horas del día, sin pagar compensación por horas extras ni interrumpir un recurso humano clave: los patrones de sueño.

Si bien la subcontratación global presenta varias ventajas, el desarrollo global —y generalmente distribuido— puede encontrar serias dificultades derivadas de la distancia entre los desarrolladores. Esto se debe a los elementos clave de este tipo de distancia, identificados como geográficos, temporales, culturales y de comunicación (que incluyen el uso de diferentes idiomas y dialectos del inglés en distintas ubicaciones). [ 82 ] Durante los últimos 15 años se ha llevado a cabo investigación en el área del desarrollo global de software, y se ha publicado un amplio conjunto de trabajos relevantes que destacan los beneficios y problemas asociados con esta compleja actividad. Al igual que en otros aspectos de la ingeniería de software, la investigación continúa en este y otros ámbitos relacionados.

Premios

Existen diversos premios en el campo de la ingeniería de software:

Crítica

Algunos abogan por la concesión de licencias, la certificación y los cuerpos de conocimiento codificados como mecanismos para difundir el conocimiento de ingeniería y madurar el campo. [ 86 ]

Algunos afirman que el concepto de ingeniería de software es tan nuevo que rara vez se comprende y se malinterpreta ampliamente, incluso en libros de texto, artículos y entre las comunidades de programadores y desarrolladores de software. [ 87 ]

Algunos afirman que un problema fundamental de la ingeniería de software es que sus enfoques no son suficientemente empíricos porque la validación de los enfoques en el mundo real suele estar ausente o ser muy limitada, y por lo tanto, la ingeniería de software a menudo se malinterpreta como factible solo en un "entorno teórico". [ 87 ]

Edsger Dijkstra , fundador de muchos de los conceptos actuales en el desarrollo de software, rechazó la idea de "ingeniería de software" hasta su muerte en 2002, argumentando que esos términos eran analogías deficientes para lo que él llamaba la "novedad radical" de la informática :

Varios de estos fenómenos se han agrupado bajo el nombre de "Ingeniería de Software". Así como la economía es conocida como "La Ciencia Miserable", la ingeniería de software debería ser conocida como "La Disciplina Condenada", condenada porque ni siquiera puede acercarse a su objetivo, ya que este es contradictorio en sí mismo. La ingeniería de software, por supuesto, se presenta como otra causa loable, pero eso es una farsa: si se lee atentamente su literatura y se analiza lo que hacen realmente sus seguidores, se descubrirá que la ingeniería de software ha adoptado como su lema "Cómo programar si no se sabe". [ 88 ]

Véase también

Estudia y practica

Roles

Aspectos profesionales

Referencias

Citas

  1. "¿Qué es la ingeniería de software?" . Universidad Tecnológica de Michigan . Consultado el 29 de junio de 2025 .
  2. 1 2 3 4 5 Abran et al. Error de harvnb de 2004 : sin destino: CITEREFAbranMooreBourqueDupuis2004 ( ayuda )
  3. ACM (2007). "Grados y carreras en informática" . ACM. Archivado del original el 17 de junio de 2011. Consultado el 23 de noviembre de 2010 .
  4. Laplante, Phillip (2007). Lo que todo ingeniero debería saber sobre ingeniería de software . Boca Raton: CRC. ISBN 978-0-8493-7228-5. Consultado el 21 de enero de 2011 .
  5. "¿Qué hace un ingeniero de software?" . coursera . 31 de octubre de 2022.
  6. 1 2 3 4 5 6 7 8 Bourque, Pierre; Fairley, Richard E. (Dick), eds. (2014). Guía del Cuerpo de Conocimientos de Ingeniería de Software Versión 3.0 (SWEBOK) . IEEE Computer Society .
  7. Farone, Alison (2020-08-04). "La historia de la codificación y la ingeniería de software" . Hack Reactor . Recuperado el 29 de junio de 2025 .
  8. "La historia de la codificación y la ingeniería de software" . Hack Reactor . Archivado del original el 24 de marzo de 2022. Consultado el 6 de mayo de 2021 .
  9. "Computadoras y automatización: Directorio de computadoras y guía del comprador, 1965" (PDF) . bitsavers.org . Consultado el 15 de julio de 2023 .
  10. "Carta del Presidente a los Miembros de la ACM" (PDF) . Consultado el 27 de febrero de 2025. Debemos reconocernos —no necesariamente todos nosotros, ni necesariamente ninguno de nosotros todo el tiempo— como miembros de una profesión de ingeniería, ya sea ingeniería de hardware o ingeniería de software, una profesión sin fronteras artificiales e irrelevantes como las que existen entre las aplicaciones "científicas" y "comerciales".
  11. Oettinger, AG (1966). "Carta del Presidente a los Miembros de la ACM" . Commun. ACM . 9 (8). Association for Computing Machinery: 545– 546. doi : 10.1145/365758.3291288 . ISSN 0001-0782 . S2CID 53432801 .  
  12. "El origen de la "ingeniería de software"" . 4 de abril de 2013 . Consultado el 17 de noviembre de 2017 .
  13. Randall, Brian. "Los informes de ingeniería de software de la OTAN de 1968/69" . Consultado el 17 de noviembre de 2017 .
  14. Lori Cameron (5 de octubre de 2008). "Margaret Hamilton: la primera ingeniera de software" . Noticias tecnológicas . IEEE Computer Society .
  15. Ian Sommerville (24 de marzo de 2015). Ingeniería de software (10.ª ed.). Pearson Education Limited. ISBN  978-0-13-394303-0.
  16. Peter, Naur; Randell, Brian (7–11 de octubre de 1968). Ingeniería de software: Informe de una conferencia patrocinada por el Comité Científico de la OTAN (PDF) . Garmisch, Alemania: División de Asuntos Científicos, OTAN . Consultado el 26 de diciembre de 2008 .
  17. Randell, Brian (10 de agosto de 2001). "Los informes de ingeniería de software de la OTAN de 1968/69" . Página web universitaria de Brian Randell . Facultad de Ciencias de la Computación, Universidad de Newcastle . Consultado el 11 de octubre de 2008. La idea de la primera Conferencia de Ingeniería de Software de la OTAN, y en particular la de adoptar el término entonces prácticamente desconocido "ingeniería de software" como su título (deliberadamente provocador), creo que provino originalmente del profesor Fritz Bauer .
  18. Conferencia Internacional de Ingeniería de Software de 2018, que celebra su 40.º aniversario y los 50 años de la ingeniería de software (31 de mayo de 2018). "ICSE 2018 – Sesiones plenarias – Fred Brooks" . YouTube . Consultado el 9 de agosto de 2018 .{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  19. Conferencia Internacional de Ingeniería de Software de 2018, que celebra su 40.º aniversario y los 50 años de la ingeniería de software (31 de mayo de 2018). "ICSE 2018 – Sesiones plenarias – Margaret Hamilton" . YouTube . Consultado el 9 de agosto de 2018 .{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace )
  20. 1 2 Linda Hutz Pesante (1 de enero de 2003). Anthony Ralston; Edwin D. Reilly (eds.). «Software engineering institute (SEI)» . Encyclopedia of Computer Science . Chichester , West Sussex, Reino Unido: John Wiley and Sons Ltd .: 1611–1613 . ISBN 978-0-470-86412-8( 1) El instituto fue adjudicado mediante concurso a Carnegie Mellon en diciembre de 1984 por el Departamento de Defensa de los Estados Unidos (DoD) para mejorar el estado de la práctica de la ingeniería de software. ... (2) El SEI impulsa soluciones maduras de valor probado hacia un uso generalizado; ejemplos de ello son el Modelo de Madurez de Capacidades (CMM) ...Icono de acceso gratuito
  21. 1 2 Grupo de trabajo conjunto sobre planes de estudio de informática, IEEE Computer Society , Association for Computing Machinery (23 de febrero de 2015). Ingeniería de software 2014: Directrices curriculares para programas de grado de pregrado en ingeniería de software (PDF) . Un volumen de la serie de planes de estudio de informática. IEEE Computer Society y Association for Computing Machinery .{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  22. Ingeniería de sistemas y software – Vocabulario , ISO / IEC / IEEE std 24765:2010(E), 2010.
  23. Glosario estándar de terminología de ingeniería de software de IEEE , IEEE std 610.12-1990, 1990.
  24. Sommerville, Ian (2007) [1982]. "1.1.2 ¿Qué es la ingeniería de software?" . Ingeniería de software (8.ª ed.). Harlow, Inglaterra: Pearson Education. pág. 7. ISBN   978-0-321-31379-9La ingeniería de software es una disciplina de ingeniería que abarca todos los aspectos de la producción de software, desde las primeras etapas de especificación del sistema hasta su mantenimiento una vez puesto en funcionamiento. La definición destaca dos ideas clave: (1) disciplina de ingeniería : la aplicación de teorías, métodos y herramientas dentro de las limitaciones organizativas y financieras; y (2) todos los aspectos de la producción de software : incluyendo los procesos de desarrollo técnico, la gestión de proyectos y la creación de herramientas, métodos y teorías de apoyo.
  25. "Ingeniería de software". Procesamiento de la información . 71 : 530–538 .
  26. "Definición de INGENIERÍA DE SOFTWARE" . www.merriam-webster.com . Consultado el 25 de noviembre de 2019 .
  27. Winters, Titus; Manshrec, Tom; Wright, Hyrum (2020). «Prefacio, Programación a lo largo del tiempo». Ingeniería de software en Google . O'Reilly Media, Inc. págs. xix– xx, 6–7 . ISBN  978-1-492-08279-8Proponemos que la ingeniería de software no solo abarca la escritura de código, sino también todas las herramientas y procesos que una organización utiliza para desarrollar y mantener dicho código a lo largo del tiempo. ¿ Qué prácticas puede implementar una organización de software para preservar el valor de su código a largo plazo? ¿Cómo pueden los ingenieros lograr una base de código más sostenible y una disciplina de ingeniería de software más rigurosa?
  28. Akram I. Salah (5 de abril de 2002). "Diseño de un programa académico en ingeniería de software" (PDF) . 35.º Simposio Anual de Instrucción e Informática del Medio Oeste . Consultado el 13 de septiembre de 2006 .Para algunos, la ingeniería de software es solo un nombre más elegante para la programación. Si eres programador, podrías poner "ingeniero de software" en tu tarjeta de presentación, pero nunca "programador".
  29. Mills, Harlan D., JR Newman y CB Engle, Jr., «Un plan de estudios de pregrado en ingeniería de software», en Deimel, Lionel E. (1990). Educación en ingeniería de software: Conferencia SEI 1990, Pittsburgh, Pensilvania, EE. UU., 2-3 de abril,... Springer. ISBN 978-0-387-97274-9.pág . 26 : "En la práctica, consideramos la ingeniería de software como la preparación necesaria para el profesional en ejercicio, dedicado al desarrollo y mantenimiento de software. El informático se está preparando para estudios teóricos más avanzados..."
  30. Barbara Kitchevnham; David Budgen; Pearl Brereton; Stephen Linkman (2005). «Realizando la ingeniería de software basada en la evidencia». ACM SIGSOFT Software Engineering Notes . 30 (4): 1– 3. doi : 10.1145/1082983.1083175 . Creemos que la ingeniería de software solo puede avanzar como disciplina de ingeniería alejándose de su dependencia actual de la defensa y el análisis...
  31. Parnas, David L. (1998). "Los programas de ingeniería de software no son programas de ciencias de la computación" . Annals of Software Engineering . 6 ( 1–4 ): 19–37 . doi : 10.1023/A:1018949113292 . S2CID 35786237 . , pág. 19: "En lugar de tratar la ingeniería de software como un subcampo de la informática, la trato como un elemento del conjunto {Ingeniería Civil, Ingeniería Mecánica, Ingeniería Química, Ingeniería Eléctrica,...}."
  32. Parnas, David L. (1998). "Los programas de ingeniería de software no son programas de ciencias de la computación" . Annals of Software Engineering . 6 ( 1–4 ): 19–37 . doi : 10.1023/A:1018949113292 . S2CID 35786237 . , pág. 20: "Este artículo sostiene que la introducción de programas profesionales acreditados en ingeniería de software, programas que se basan en programas de disciplinas de ingeniería tradicionales, ayudará a aumentar tanto la calidad como la cantidad de graduados que estén bien preparados, gracias a su formación, para desarrollar productos de software fiables."
  33. McConnell, Steve (agosto de 2003). Desarrollo de software profesional: plazos más cortos, mejores proyectos, productos superiores, carreras profesionales mejoradas . Boston, MA: Addison-Wesley. ISBN 0-321-19367-9.pág. 39: "En mi opinión, la respuesta a esa pregunta es clara: el desarrollo de software profesional debería ser ingeniería. ¿Lo es? No. ¿Pero debería serlo? Sin duda, sí."
  34. Knuth, Donald (1974). "La programación informática como arte" (PDF) . Communications of the ACM . 17 (12): 667– 673. doi : 10.1145/361604.361612 . S2CID 207685720 . Transcripción de la conferencia de entrega del Premio Turing de 1974 .
  35. Dijkstra, Edsger W ; transcrito por Mario Béland (23 de noviembre de 2004) [Publicado por primera vez el 3 de diciembre de 1993]. "Todavía hay una guerra en marcha (manuscrito Austin, 3 de diciembre de 1993)" . Archivo EW Dijkstra . Universidad de Texas en Austin, Departamento de Ciencias de la Computación . Recuperado el 17 de febrero de 2007. Cuando el término fue acuñado en 1968 por FL Bauer de la Universidad Técnica de Múnich, lo acogí con beneplácito. [...] Interpreté la introducción del término "ingeniería de software" como un reflejo adecuado del hecho de que el diseño de sistemas de software era una actividad por excelencia para el ingeniero matemático. [...] Tan pronto como el término llegó a los EE. UU., se le despojó de todo su contenido técnico. Tenía que ser así porque en su significado original era totalmente inaceptable [...]. Mientras tanto, la ingeniería de software se ha convertido en un término casi vacío, como lo demostró claramente Data General, que de la noche a la mañana ascendió a todos sus programadores al elevado rango de "ingeniero de software".
  36. "Ingeniería de software | Clasificación de los requisitos de software" . GeeksforGeeks . 19 de junio de 2018. Consultado el 6 de mayo de 2021 .
  37. "Ingeniería de software | Proceso de diseño de software" . GeeksforGeeks . 24 de mayo de 2019. Consultado el 6 de mayo de 2021 .
  38. Jamil, Muhammad Abid; Arif, Muhammad; Abubakar, Normi ​​Sham Awang; Ahmad, Akhlaq (noviembre de 2016). «Técnicas de prueba de software: una revisión de la literatura». 6.ª Conferencia Internacional sobre Tecnologías de la Información y la Comunicación para el Mundo Musulmán (ICT4M) de 2016. págs. 177-182 . doi : 10.1109/ICT4M.2016.045 . ISBN  978-1-5090-4521-1.
  39. "¿Qué es el mantenimiento de software? Definición de mantenimiento de software, significado del mantenimiento de software" . The Economic Times . Consultado el 6 de mayo de 2021 .
  40. Alain Abran; James W. Moore; Pierre Bourque; Robert Dupuis; Leonard L. Tripp, eds. (2005) [2004]. "Capítulo 1: Introducción a la guía" . Guía del Cuerpo de Conocimientos de Ingeniería de Software . IEEE Computer Society . Archivado del original el 9 de mayo de 2016. Recuperado el 13 de septiembre de 2010. El volumen total de literatura citada está pensado para ser adecuado para su dominio mediante la finalización de una formación universitaria más cuatro años de experiencia.
  41. Cowling, AJ 1999. La primera década de un programa de licenciatura en ingeniería de software. Ann. Softw. Eng. 6, 1–4 (abril de 1999), 61–90.
  42. "Programas de ingeniería acreditados por ABET" . 3 de abril de 2007. Archivado del original el 19 de junio de 2010. Consultado el 3 de abril de 2007 .
  43. McConnell, Steve (10 de julio de 2003). Desarrollo de software profesional: plazos más cortos, productos de mayor calidad, proyectos más exitosos, carreras profesionales mejoradas . ISBN 978-0-321-19367-4.
  44. Williams, NSW (19–21 de febrero de 2001). «Enfoque de Professional Engineers Ontario para la concesión de licencias a profesionales de la ingeniería de software». Actas de la 14.ª Conferencia sobre Educación y Capacitación en Ingeniería de Software de 2001. Charlotte, NC: IEEE . págs. 77–78 . 
  45. "Especificaciones del examen de ingeniería de software de NCEES" (PDF) . Archivado del original (PDF) el 27 de agosto de 2013. Consultado el 1 de abril de 2012 .
  46. "NCEES suspende el examen de Ingeniería de Software PE" . Consejo Nacional de Examinadores de Ingeniería y Topografía. 13 de marzo de 2018. Consultado el 6 de agosto de 2018 .
  47. 1 2 Barbara Simons. "Expresidentes de la ACM reflexionan sobre su servicio a la ACM" . Celebrando 75 años de avance de la informática como ciencia y profesión. Association for Computing Machinery . Recuperado el 18 de mayo de 2024. Después de que se presentaron las recomendaciones de los paneles, el Consejo de la ACM concluyó que el marco de un ingeniero profesional con licencia, desarrollado originalmente para ingenieros civiles, no coincide con la práctica industrial profesional de la ingeniería de software y excluiría a muchos de los ingenieros de software más calificados de obtener la licencia.
  48. 1 2 John C. Knight; Nancy G. Leveson (1 de noviembre de 2002). "¿Deberían los ingenieros de software tener licencia?". Communications of the ACM . 45 (11): 87– 90. doi : 10.1145/581571.581601 .
  49. " Código de ética de la ingeniería de software " (PDF) . Archivado del original (PDF) el 23 de enero de 2015. Consultado el 25 de marzo de 2012 .
  50. Qubit Labs (29 de noviembre de 2022). "¿Cuántos programadores hay en el mundo y en los EE. UU.? [ 2023 ] " . Qubit Labs . Consultado el 7 de febrero de 2023 .
  51. "Estudio global demográfico y de población de desarrolladores 2016 V2" . Evans Data Corporation . Consultado el 19 de enero de 2017 .
  52. 1 2 Rosenthal, Rachel (4 de agosto de 2020). "Las empresas tecnológicas quieren que creas que Estados Unidos tiene una brecha de habilidades" . Bloomberg . Recuperado el 8 de octubre de 2021 .
  53. "Ingenieros de software y programadores informáticos" . Consultado el 17 de diciembre de 2009 .
  54. "Desarrolladores de software" . Manual de perspectivas ocupacionales . Oficina de Estadísticas Laborales de EE. UU. 4 de septiembre de 2019. Consultado el 11 de diciembre de 2019 .
  55. "Disciplinas y especializaciones en informática" (PDF) . Asociación para la Maquinaria Informática . Consultado el 6 de septiembre de 2019 .
  56. 1 2 "Desarrolladores de software: Manual de perspectivas ocupacionales" . Oficina de Estadísticas Laborales de EE. UU.
  57. "Ingeniero de software informático" . Oficina de Estadísticas Laborales. 19 de marzo de 2010. Archivado del original el 26 de julio de 2013. Consultado el 20 de julio de 2012 .
  58. "Desarrolladores de software" . Oficina de Estadísticas Laborales. 8 de enero de 2014. Consultado el 21 de julio de 2012 .
  59. 1 2 3 4 5 "Programadores informáticos : Manual de perspectivas ocupacionales: Oficina de Estadísticas Laborales de EE. UU." . Archivado del original el 3 de mayo de 2019. Recuperado el 17 de enero de 2017 .  
  60. "Archivo por publicación : Más allá de las cifras: Oficina de Estadísticas Laborales de EE. UU." . www.bls.gov . 
  61. "El ingeniero de software embebido que pronto se extinguirá" . designnews.com . 10 de mayo de 2018.
  62. "Portal para desarrolladores de HP | Semana Internacional de la Mujer de HP: la presencia de mujeres en la informática ha disminuido desde la década de 1980" . developers.hp.com .
  63. "Inteligencia artificial generativa y empleo: un índice global refinado de exposición ocupacional" . Organización Internacional del Trabajo . Archivado del original el 22 de abril de 2026. Consultado el 31 de mayo de 2026 .
  64. "¿Están en peligro los empleos de los ingenieros de software debido a herramientas como ChatGPT? Esto es lo que dice el CEO de Google, Sundar Pichai" . Business Today . 6 de abril de 2023. Consultado el 12 de mayo de 2023 .
  65. "ChatGPT podría hacer que estos trabajos queden obsoletos" . 25/01/2023 . Consultado el 12/05/2023 .
  66. Kay, Grace. "Los ingenieros de software están entrando en pánico ante la posibilidad de ser reemplazados por la IA" . Business Insider . Consultado el 12 de mayo de 2023 .
  67. Fowler, Gary. "Publicación del consejo: ¿Cómo afectará ChatGPT al empleo?" . Forbes . Consultado el 12 de mayo de 2023 .
  68. Ito, Aki. "ChatGPT supone el fin de la programación tal como la conocemos" . Business Insider . Consultado el 12 de mayo de 2023 .
  69. Zinkula, Aaron Mok, Jacob. "ChatGPT podría quitarnos el trabajo. Estos son los 10 puestos que la IA tiene más probabilidades de reemplazar" . Business Insider . Consultado el 12 de mayo de 2023 .{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
  70. Cohen, Mikaela (15 de abril de 2023). "Estos son los empleos tecnológicos más amenazados por ChatGPT y la IA" CNBC . Recuperado el 12 de mayo de 2023 .
  71. "El programa "Aprende a programar" fracasa estrepitosamente, ya que los estudiantes de informática se enfrentan repentinamente a un desempleo altísimo . 31 de mayo de 2025.
  72. "Página de certificación SEI" . Sei.cmu.edu . Consultado el 25 de marzo de 2012 .
  73. Wyrostek, Warren (14 de marzo de 2008). "Los 10 principales problemas con la certificación de TI en 2008" . InformIT . Recuperado el 3 de marzo de 2009 .
  74. IEEE Computer Society . "Informe de la IEEE Computer Society de 2006 a la Asamblea General de la IFIP" (PDF) . Consultado el 10 de abril de 2007 .
  75. IEEE (12 de noviembre de 2008). "CSDA" . Recuperado el 20 de abril de 2010 .
  76. Sociedad Canadiense de Procesamiento de la Información. "Designación de ISP" . Consultado el 15 de marzo de 2007 .
  77. "Ingenieros Profesionales de Ontario: Bienvenidos al sitio web de PEO" . Peo.on.ca. Consultado el 25 de marzo de 2012 .
  78. Thibodaux, Patrick (5 de mayo de 2006). "A medida que la subcontratación cobra impulso, disminuye el interés por la informática" . Computerworld.com . Consultado el 6 de diciembre de 2016 .
  79. "Las semanas laborales son cada vez más intensas para las startups de IA" .
  80. Robert Mullins (13 de marzo de 2007). "El crecimiento del desarrollo de software se ralentiza en Norteamérica: un estudio muestra que Asia liderará los puestos de trabajo de desarrollador de software para 2010" . InfoWorld . Desarrollo de software.
  81. "Cuadrante Mágico de Gartner" (PDF) . Cognizant.com. Archivado del original (PDF) el 20 de septiembre de 2008. Consultado el 25 de marzo de 2012 .
  82. Casey, Valentine (2010-08-20). "Gestión de proyectos de equipos de software virtuales" . Revista de la Sociedad Brasileña de Computación . 16 (2): 83– 96. doi : 10.1007/s13173-010-0013-3 . S2CID 14383734 . 
  83. "Premio a la Investigación Destacada" . SIGSOFT . Consultado el 1 de abril de 2024 .
  84. David Lo ( Presidente de los Premios SIGSOFT ); Thomas Zimmermann ( Presidente de SIGSOFT ) (17 de enero de 2024). "Premios SIGSOFT 2024" . Blog de ACM SIGSOFT . Consultado el 1 de abril de 2024 .
  85. "Premio ICSE al artículo más influyente" . ACM SIGSOFT .
  86. Donald J. Bagert (abril de 1999). "Punto de vista: liderando la concesión de licencias a ingenieros de software". Communications of the ACM . 42 (4): 27– 29. doi : 10.1145/299157.299163 .Icono de acceso abierto
  87. 1 2 Barry Boehm (septiembre-octubre de 2002). "La ingeniería de software es un deporte de contacto basado en valores". IEEE Software . 19 (5): 95– 96. doi : 10.1109/MS.2002.1032863 .
  88. Dijkstra, EW (1988). "Sobre la crueldad de enseñar realmente ciencias de la computación" . Recuperado el 10 de enero de 2014 .

Fuentes

  • Pierre Bourque; Richard E. (Dick) Fairley, eds. (2014). Guía del Cuerpo de Conocimientos de Ingeniería de Software Versión 3.0 (SWEBOK) . IEEE Computer Society .
  • Alain Abran; James W. Moore; Pierre Bourque; Robert Dupuis; Leonard L. Tripp, eds. (2004). Guía del Cuerpo de Conocimientos de Ingeniería de Software . IEEE Computer Society . Archivado del original el 9 de mayo de 2016. Recuperado el 13 de septiembre de 2010 .
  • Ian Sommerville (24 de marzo de 2015). Ingeniería de software (10.ª  ed.). Pearson Education Limited. ISBN 978-0-13-394303-0.

Lecturas adicionales

  • Pierre Bourque; Richard E. (Dick) Fairley, eds. (2014). Guía del Cuerpo de Conocimientos de Ingeniería de Software Versión 3.0 (SWEBOK) . IEEE Computer Society .
  • Roger S. Pressman; Bruce Maxim (23 de enero de 2014). Ingeniería de software: Un enfoque práctico (8.ª  ed.). McGraw-Hill. ISBN 978-0-07-802212-8.
  • Ian Sommerville (24 de marzo de 2015). Ingeniería de software (10.ª  ed.). Pearson Education Limited. ISBN 978-0-13-394303-0.
  • Jalote, Pankaj (2005) [1991]. Un enfoque integrado para la ingeniería de software (3.ª  ed.). Springer. ISBN 978-0-387-20881-7.
  • Bruegge, Bernd ; Dutoit, Allen (2009). Ingeniería de software orientada a objetos  : uso de UML, patrones y Java (3.ª  ed.). Prentice Hall. ISBN 978-0-13-606125-0.
  • Oshana, Robert (21 de junio de 2019). Ingeniería de software para sistemas embebidos  : métodos, técnicas prácticas y aplicaciones (Segunda  edición). Kidlington, Oxford, Reino Unido. ISBN 978-0-12-809433-4.
  • Pierre Bourque; Richard E. Fairley, eds. (2004). Guía del Cuerpo de Conocimientos de Ingeniería de Software Versión 3.0 (SWEBOK) , https://www.computer.org/web/swebok/v3 . IEEE Computer Society .
  • El marco del ciclo de vida de ingeniería de sistemas abiertos y desarrollo de software se archivó el 18 de julio de 2010 en Wayback Machine OpenSDLC.org, el SDLC integrado de Creative Commons.
  • Instituto de Ingeniería de Software de Carnegie Mellon