Parte de una serie sobre |
Desarrollo de software |
---|
La ingeniería de software es un enfoque de ingeniería para el desarrollo de software . [1] [2] [3] Un profesional, llamado ingeniero de software , aplica el proceso de diseño de ingeniería para desarrollar software .
Los términos programador y codificador se superponen con los de ingeniero de software , pero implican únicamente el aspecto de construcción de la carga de trabajo típica del ingeniero de software. [4]
Un ingeniero de software aplica un proceso de desarrollo de software , [1] [5] que implica definir, implementar , probar , administrar y mantener sistemas de software y crear y modificar el proceso de desarrollo.
A partir de la década de 1960, la ingeniería de software fue reconocida como un campo separado de la ingeniería .
El desarrollo de la ingeniería de software se consideraba una lucha. Entre los problemas se encontraban programas que superaban el presupuesto, excedían los plazos, requerían de una depuración y un mantenimiento exhaustivos y no satisfacían las necesidades de los consumidores o ni siquiera se terminaban de fabricar.
En 1968, la OTAN celebró la primera conferencia de ingeniería de software en la que se abordaron cuestiones relacionadas con el software y se establecieron directrices y mejores prácticas para el desarrollo de software. [6]
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 la edición de junio de 1965 de "Computers and Automation" [7] y se utilizó de forma más formal en la edición 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. [8] [9] También se asocia con el título de una conferencia de la OTAN en 1968 por el profesor Friedrich L. Bauer . [10] Margaret Hamilton describió la disciplina de la "ingeniería de software" durante las misiones Apolo para dar legitimidad a lo que estaban haciendo. [11] En ese momento se percibía que había una " crisis del software ". [12] [13] [14] La 40ª Conferencia Internacional sobre Ingeniería de Software (ICSE 2018) celebra 50 años de "Ingeniería de Software" con las conferencias magistrales de Frederick Brooks [15] y Margaret Hamilton . [16]
En 1984, se estableció el Instituto de Ingeniería de Software (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. [17] Watts Humphrey fundó el Programa de Proceso de Software SEI, destinado a comprender y gestionar el proceso de ingeniería de software. [17] Los niveles de madurez del proceso introducidos se convirtieron en el Modelo de Integración de Madurez de Capacidad para el Desarrollo (CMMI-DEV), que definió cómo el gobierno de los EE. UU. evalúa las habilidades de un equipo de desarrollo de software.
El subcomité JTC 1/SC 7 de ISO/IEC ha recopilado las mejores prácticas modernas y generalmente aceptadas para la ingeniería de software y las ha publicado como Software Engineering Body of Knowledge (SWEBOK). [5] La ingeniería de software se considera una de las principales disciplinas informáticas . [18]
Entre las definiciones notables de ingeniería de software se incluyen:
El término también se ha utilizado de forma menos formal:
Margaret Hamilton promovió el término "ingeniería de software" durante su trabajo en el programa Apollo . El término "ingeniería" se utilizó para reconocer que el trabajo debía tomarse tan en serio como otras contribuciones al avance de la tecnología. Hamilton detalla su uso del término:
Cuando se me ocurrió por primera vez el término, nadie lo había oído antes, al menos en nuestro mundo. Fue una broma constante durante mucho tiempo. Les gustaba bromear conmigo sobre mis ideas radicales. Fue un día memorable cuando uno de los gurús de hardware más respetados explicó a todos en una reunión que estaba de acuerdo conmigo en que el proceso de creación de software también debería considerarse una disciplina de ingeniería, al igual que el hardware. No por su aceptación del nuevo "término" en sí, sino porque nos habíamos ganado su aceptación y la de los demás en la sala como parte de un campo de ingeniería por derecho propio. [28]
Los comentaristas individuales han discrepado profundamente sobre cómo definir la ingeniería de software o su legitimidad como disciplina de ingeniería. David Parnas ha dicho que la ingeniería de software es, de hecho, una forma de ingeniería. [29] [30] Steve McConnell ha dicho que no lo es, pero que debería serlo. [31] Donald Knuth ha dicho que la programación es un arte y una ciencia. [32] Edsger W. Dijkstra afirmó que los términos ingeniería de software e ingeniero de software han sido mal utilizados en los Estados Unidos. [33]
La ingeniería de requisitos se ocupa de la obtención, el análisis, la especificación y la validación de los requisitos del software . Los requisitos del 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 cuestiones como portabilidad, seguridad, mantenibilidad, confiabilidad, escalabilidad, rendimiento, reutilización y 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. El conocimiento de cómo funciona el sistema o el software es necesario cuando se trata de especificar requisitos no funcionales. Los requisitos de dominio tienen que ver con las características de una determinada categoría o dominio de proyectos. [34]
El diseño de software es el proceso de elaboración de planes de alto nivel para el software. El diseño a veces se divide en niveles:
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. [1] [5] “Las pruebas de software están relacionadas con la depuración, pero son diferentes a ella”. [5] Las pruebas durante esta fase generalmente las realiza el programador y tienen el propósito de verificar que el código se comporte como se diseñó y saber cuándo el código está listo para el siguiente nivel de pruebas. [ cita requerida ]
Las pruebas de software son una investigación técnica y empírica que se lleva a cabo para proporcionar a las partes interesadas información sobre la calidad del software bajo prueba. [1] [5]
Cuando se describen por separado de la construcción, las pruebas suelen estar a cargo de ingenieros de pruebas o de control de calidad en lugar de los programadores que las escribieron. Se realizan a nivel de sistema y se consideran un aspecto de la calidad del software .
El análisis de programas es el proceso de analizar programas de computadora con respecto a un aspecto como el rendimiento , la solidez y la seguridad .
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 o descartadas y mejora de funciones existentes. [1] [5]
Por lo general, el mantenimiento representa entre el 40% y el 80% del costo del proyecto. [36]
The examples and perspective in this article may not represent a worldwide view of the subject. (November 2010) |
El conocimiento de la programación informática es un requisito previo para convertirse en ingeniero de software. En 2004, la IEEE Computer Society produjo el SWEBOK , que se ha publicado como Informe técnico ISO/IEC 1979:2005, que describe el conjunto de conocimientos que recomiendan dominar por un ingeniero de software graduado con cuatro años de experiencia. [37] Muchos ingenieros de software ingresan a la profesión obteniendo un título universitario o capacitación en una escuela vocacional. Un plan de estudios internacional estándar para los títulos de ingeniería de software de pregrado fue definido por el Grupo de trabajo conjunto sobre planes de estudio de informática de la IEEE Computer Society y la Association for Computing Machinery , y actualizado en 2014. [18] Varias universidades tienen programas de grado en ingeniería de software; a partir de 2010 [update], había 244 programas de licenciatura en ingeniería de software en campus , 70 programas en línea, 230 programas de nivel de maestría, 41 programas de nivel de doctorado y 69 programas de nivel de certificado en los Estados Unidos.
Además de la educación universitaria, muchas empresas patrocinan pasantías para estudiantes que desean seguir una carrera en tecnología de la información. Estas pasantías pueden introducir al estudiante en tareas del mundo real que los ingenieros de software típicos enfrentan todos los días. Se puede obtener una experiencia similar a través del servicio militar en ingeniería de software.
La mitad de todos los profesionales de la actualidad tienen títulos en informática , sistemas de información o tecnología de la información . [ cita requerida ] Un pequeño pero creciente número de profesionales tienen 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. [38] En 1996, el Instituto de Tecnología 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 . [39] En 1997, el PSG College of Technology en Coimbatore, India, fue el primero en iniciar una maestría integrada de cinco años en Ciencias en Ingeniería de Software. [ cita requerida ]
Desde entonces, se han establecido títulos de grado en ingeniería de software en muchas universidades. Un comité directivo definió un plan de estudios internacional estándar para títulos de grado en ingeniería de software, SE2004 , entre 2001 y 2004 con financiación de la Association for Computing Machinery y la IEEE Computer Society . A partir de 2004 [update], alrededor de 50 universidades en los EE. UU. ofrecen títulos de ingeniería de software, que enseñan principios y prácticas de ingeniería y ciencias de la computación. El primer título de maestría en ingeniería de software se estableció en la Universidad de Seattle en 1979. Desde entonces, se han ofrecido títulos de posgrado en ingeniería de software en muchas más universidades. Asimismo, en Canadá, la Junta Canadiense de Acreditación de Ingeniería (CEAB) del Consejo Canadiense de Ingenieros Profesionales ha reconocido varios programas de ingeniería de software.
En 1998, la Escuela de Postgrado Naval de los Estados Unidos (NPS) estableció el primer programa de doctorado en Ingeniería de Software del mundo. [ cita requerida ] Además, han aparecido muchos títulos avanzados en línea en Ingeniería de Software, como el título de Maestría en Ciencias en Ingeniería de Software (MSE) ofrecido a través del 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 una escasez de verdaderos ingenieros de software. [40] 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 cuerpo de conocimientos cubierto por un ingeniero de software. [5]
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 o de licencia para asumir o utilizar el título de trabajo de ingeniero de software. En algunas áreas de Canadá, como Alberta, Columbia Británica, Ontario [41] y Quebec, los ingenieros de software pueden tener la designación de ingeniero profesional (P.Eng) y/o la designación 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 los Estados Unidos, la NCEES comenzó a ofrecer un examen de Ingeniero Profesional para Ingeniería de Software en 2013, lo que permitió que los Ingenieros de Software obtuvieran licencia y fueran reconocidos. [42] La NCEES finalizó el examen después de abril de 2019 debido a la falta de participación. [43] Actualmente, la concesión obligatoria de licencias todavía es objeto de un gran debate y se percibe como controvertida. [44] [45]
La IEEE Computer Society y la ACM , las dos principales organizaciones profesionales de ingeniería de software con sede en Estados Unidos, publican guías para la profesión de ingeniería de software. La Guía del IEEE para el Cuerpo de Conocimientos de Ingeniería de Software – Versión 2004 , o SWEBOK , define el campo y describe el conocimiento que el IEEE espera que tenga un ingeniero de software en ejercicio. La versión más actual, SWEBOK v3, es una versión actualizada y se publicó en 2014. [5] El IEEE también promulga un "Código de Ética de Ingeniería de Software". [46]
The examples and perspective in this United States may not represent a worldwide view of the subject. (September 2021) |
Se estima que en 2022 hay 26,9 millones de ingenieros de software profesionales en el mundo, frente a los 21 millones de 2016. [47] [48]
Muchos ingenieros de software trabajan como empleados o contratistas. Los ingenieros de software trabajan con empresas, agencias gubernamentales (civiles o militares) y organizaciones sin fines de lucro. Algunos ingenieros de software trabajan por cuenta propia como autónomos . Algunas organizaciones tienen especialistas para realizar cada una de las tareas en el proceso de desarrollo de software . Otras organizaciones 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, las personas pueden desempeñar varios o todos los roles al mismo tiempo. Muchas empresas contratan pasantes , a menudo estudiantes universitarios o de colegios durante las vacaciones de verano o pasantías . Las especializaciones incluyen analistas , arquitectos , desarrolladores , probadores , soporte técnico , analistas de middleware , gerentes de proyectos , gerentes 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. [49] 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 en las manos y muñecas como el síndrome del túnel carpiano . [50]
La Oficina de Estadísticas Laborales de Estados Unidos (BLS) contabilizó 1.365.500 desarrolladores de software que tenían empleo en Estados Unidos en 2018. [51] Debido a su relativa novedad como campo de estudio, la educación formal en ingeniería de software a menudo se enseña como parte de un plan de estudios de informática, y muchos ingenieros de software tienen títulos en informática. [52] La BLS estima que de 2023 a 2033 la ingeniería de software aumentaría un 17%. [53] Esto es inferior a la estimación de la BLS de 2022 a 2032 del 25% para la ingeniería de software. [53] [54] Y es aún más inferior a su estimación del 30% de 2010 a 2020 de la BLS. [55] 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 parar a ingenieros de software en Estados Unidos se subcontratarían a ingenieros de software en países como India y otros países extranjeros. [56] [49] Además, las Perspectivas laborales de la BLS para programadores de computadoras y las Perspectivas ocupacionales de la Oficina de Estadísticas Laborales de EE. UU. (BLS) predicen 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. [56] y luego una disminución del -11 por ciento de 2022 a 2032. [56] 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. [56] [57] [58] Además, las mujeres en muchos campos de software también han estado disminuyendo a lo largo de los años en comparación con otros campos de ingeniería. [59] 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. [60] [61] [62] [63] [64] [65] [66] Sin embargo, esta tendencia puede cambiar o desacelerarse en el futuro a medida que muchos ingenieros de software actuales en el mercado estadounidense abandonen la profesión o envejezcan fuera del mercado en las próximas décadas. [56]
El Instituto de Ingeniería de Software ofrece certificaciones en temas específicos como seguridad , mejora de procesos y arquitectura de software . [67] 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 administrados por los proveedores de estas tecnologías. [68] Estos programas de certificación están diseñados para las instituciones que emplearían a personas que utilizan estas tecnologías.
La certificación más amplia de las habilidades generales de ingeniería de software está disponible a través de varias sociedades profesionales. En 2006 [update], el IEEE había certificado a más de 575 profesionales del software como Certified Software Development Professional (CSDP). [69] En 2008, añadieron una certificación de nivel de entrada conocida como Certified Software Development Associate (CSDA). [70] La ACM tenía un programa de certificación profesional a principios de los años 1980, [ cita requerida ] que se interrumpió debido a la falta de interés. La ACM y la IEEE Computer Society examinaron conjuntamente la posibilidad de otorgar licencias a los ingenieros de software como ingenieros profesionales en los años 1990, pero finalmente decidieron que dichas licencias eran inadecuadas para la práctica industrial profesional de la ingeniería de software. [44] John C. Knight y Nancy G. Leveson presentaron un análisis más equilibrado de la cuestión de las licencias en 2002. [45]
En el Reino Unido, la British Computer Society ha desarrollado una certificación profesional legalmente reconocida llamada Chartered IT Professional (CITP) , disponible para miembros completamente calificados ( MBCS ). Los ingenieros de software pueden ser elegibles para ser miembros de la British Computer Society o la Institution of Engineering and Technology y, por lo tanto, calificar para ser considerados para el estado de Chartered Engineer a través de cualquiera de esas instituciones. En Canadá, la Canadian Information Processing Society ha desarrollado una certificación profesional legalmente reconocida llamada Information Systems Professional (ISP) . [71] En Ontario, Canadá, los ingenieros de software que se gradúan de un programa acreditado por la Canadian Engineering Accreditation Board (CEAB) , completan exitosamente 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 una licencia a través de Professional Engineers Ontario y pueden convertirse en ingenieros profesionales P.Eng. [72] Sin embargo, la 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 tremenda superposición entre los dos. Esto ha provocado controversia y una guerra de certificación. También ha mantenido excepcionalmente bajo el número de titulares de títulos de P.Eng en la profesión. La gran mayoría de los profesionales que trabajan en el campo tienen un título en informática, no en ingeniería eléctrica. Dada la difícil vía de certificación para los titulares de títulos no relacionados con la ingeniería eléctrica, la mayoría nunca se molesta en obtener la licencia.
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 las actividades de desarrollo de software de las corporaciones en América del Norte y Europa a la India y más tarde a China, Rusia y otros países en desarrollo. Este enfoque tenía algunas fallas, principalmente la diferencia de distancia / zona horaria que impedía la interacción humana entre clientes y desarrolladores y la transferencia masiva de trabajos. 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 debido al miedo 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 . [73] Aunque las estadísticas actualmente no muestran una amenaza para la ingeniería de software en sí, una carrera relacionada, la programación de computadoras , parece haberse visto afectada. [74] Sin embargo, la capacidad de aprovechar inteligentemente los recursos offshore y nearshore a través del flujo de trabajo follow the sun ha mejorado la capacidad operativa general de muchas organizaciones. [75] Cuando los norteamericanos dejan el trabajo, los asiáticos están llegando para trabajar. Cuando los asiáticos están dejando el trabajo, los europeos llegan para trabajar. Esto proporciona una capacidad continua de tener supervisión humana sobre procesos críticos para el negocio las 24 horas del día, sin pagar compensación por horas extras ni interrumpir los patrones de sueño de un recurso humano clave.
Si bien la subcontratación global tiene varias ventajas, el desarrollo global (y generalmente distribuido) puede enfrentar serias dificultades como resultado de la distancia entre los desarrolladores. Esto se debe a los elementos clave de este tipo de distancia que se han identificado como geográficos, temporales, culturales y de comunicación (que incluyen el uso de diferentes idiomas y dialectos del inglés en diferentes lugares). [76] Se han realizado investigaciones en el área del desarrollo de software global durante los últimos 15 años y se ha publicado una amplia cantidad de trabajos relevantes que destacan los beneficios y los problemas asociados con la compleja actividad. Al igual que con otros aspectos de la ingeniería de software, se están realizando investigaciones en esta y otras áreas relacionadas.
Existen varios premios en el campo de la ingeniería de software:
Algunos piden licencias, certificación y cuerpos codificados de conocimiento como mecanismos para difundir el conocimiento de ingeniería y hacer madurar el campo. [80]
Algunos afirman que el concepto de ingeniería de software es tan nuevo que rara vez se entiende y se malinterpreta ampliamente, incluso en libros de texto y artículos de ingeniería de software, y entre las comunidades de programadores y artesanos. [81]
Algunos afirman que un problema central con la ingeniería de software es que sus enfoques no son lo suficientemente empíricos porque la validación de los enfoques en el mundo real generalmente no existe o es muy limitada y, por lo tanto, la ingeniería de software a menudo se malinterpreta como factible solo en un "entorno teórico". [81]
Edsger Dijkstra , fundador de muchos de los conceptos de desarrollo de software actuales, rechazó la idea de "ingeniería de software" hasta su muerte en 2002, argumentando que esos términos eran analogías pobres para lo que él llamaba la "novedad radical" de la informática :
Muchos de estos fenómenos han sido agrupados 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 su objetivo es contradictorio en sí mismo. La ingeniería de software, por supuesto, se presenta como otra causa digna, pero eso es una farsa: si lees atentamente su literatura y analizas lo que sus devotos realmente hacen, descubrirás que la ingeniería de software ha aceptado como su carta fundacional "Cómo programar si no puedes". [82]
Creo que 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 provocativo), surgió originalmente del profesor
Fritz Bauer
.
{{cite web}}
: CS1 maint: numeric names: authors list (link){{cite web}}
: CS1 maint: numeric names: authors list (link)) El instituto fue otorgado competitivamente a Carnegie Mellon en diciembre de 1984 por el Departamento de Defensa de los EE. UU. (DoD) para mejorar el estado de la práctica de la ingeniería de software. ... (2) el SEI lleva soluciones maduras de valor comprobado a un uso generalizado; algunos ejemplos incluyen el Modelo de Madurez de Capacidades (CMM) ...
{{cite book}}
: CS1 maint: multiple names: authors list (link)La ingeniería de software es una disciplina de ingeniería que se ocupa de todos los aspectos de la producción de software desde las primeras etapas de la especificación del sistema hasta el mantenimiento del sistema después de que ha entrado en uso. En esta definición, hay dos frases clave:
1. Disciplina de ingeniería Los ingenieros hacen que las cosas funcionen. Aplican teorías, métodos y herramientas cuando son apropiados [. . .] Los ingenieros también reconocen que deben trabajar con restricciones organizacionales y financieras. [. . .]
2. Todos los aspectos de la producción de software La ingeniería de software no solo se ocupa de los procesos técnicos del desarrollo de software, sino también de actividades como la gestión de proyectos de software y el desarrollo de herramientas, métodos y teorías para respaldar la producción de software.
Proponemos que la "ingeniería de software" abarque no sólo el acto de escribir código, sino todas las herramientas y procesos que utiliza una organización para crear y mantener ese código a lo largo del tiempo. ¿Qué prácticas puede introducir una organización de software para mantener el valor de su código a largo plazo? ¿Cómo pueden los ingenieros hacer que una base de código sea más sostenible y que la propia disciplina de ingeniería de software sea más rigurosa?
Creemos que la ingeniería de software solo puede avanzar como disciplina de ingeniería si se aleja de su dependencia actual de la defensa y el análisis, ...
{{cite book}}
: CS1 maint: location missing publisher (link)Cuando FL Bauer de la Universidad Tecnológica de Munich acuñó el término en 1968, lo acogí con agrado. [. . .] 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 quitó 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 promovió a todos sus programadores al exaltado rango de "ingeniero de software".
El volumen total de la literatura citada está pensado para que sea adecuado para dominarla mediante la finalización de una educación universitaria más cuatro años de experiencia.
Después de que se enviaron 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 e impediría que muchos de los ingenieros de software más calificados obtengan la licencia.
{{cite web}}
: CS1 maint: multiple names: authors list (link)