Articulo de referencia

Software

Software escrito en el lenguaje JavaScript El software (SW) consiste en programas informáticos que instruyen la ejecución de una computadora . [ 1 ] El software también incluye ...

Página semiprotegida

Software escrito en el lenguaje JavaScript

El software (SW) consiste en programas informáticos que instruyen la ejecución de una computadora . [ 1 ] El software también incluye documentos de diseño y especificaciones.

La historia del software está estrechamente ligada al desarrollo de las computadoras digitales a mediados del siglo XX. Los primeros programas se escribían en el lenguaje máquina específico del hardware. La introducción de los lenguajes de programación de alto nivel en 1958 permitió instrucciones más legibles para los humanos, lo que facilitó el desarrollo de software y lo hizo más portable entre diferentes arquitecturas informáticas . El software escrito en un lenguaje de programación se ejecuta mediante un compilador o intérprete en el hardware de la arquitectura. Con el tiempo, el software se ha vuelto más complejo debido a los avances en redes , sistemas operativos y bases de datos .

El software generalmente se puede clasificar en dos tipos principales:

  1. sistemas operativos , que gestionan los recursos de hardware y proporcionan servicios para las aplicaciones
  2. software de aplicación , que realiza tareas específicas para los usuarios

El auge de la computación en la nube ha introducido el nuevo modelo de entrega de software : software como servicio (SaaS). En SaaS, las aplicaciones son alojadas por un proveedor y se accede a ellas a través de Internet .

El proceso de desarrollo de software consta de varias etapas: diseño , programación , pruebas , lanzamiento y mantenimiento . La garantía de calidad y la seguridad del software son aspectos cruciales del desarrollo, ya que los errores y las vulnerabilidades de seguridad pueden provocar fallos del sistema y brechas de seguridad. Además, cuestiones legales como las licencias de software y los derechos de propiedad intelectual desempeñan un papel fundamental en la distribución de productos de software.

Historia

El primer uso de la palabra software para describir programas informáticos se atribuye al matemático John Wilder Tukey en 1958. [ 2 ] [ 3 ] [ 4 ] Las primeras computadoras programables, que aparecieron a finales de la década de 1940, [ 5 ] se programaron en lenguaje máquina . El lenguaje máquina es difícil de depurar y no es portable entre diferentes computadoras. [ 6 ] Inicialmente, los recursos de hardware eran más caros que los recursos humanos . [ 7 ] A medida que los programas se volvieron complejos, la productividad del programador se convirtió en el cuello de botella. La introducción de lenguajes de programación de alto nivel en 1958 ocultó los detalles del hardware y expresó los algoritmos subyacentes en el código. [ 8 ] [ 9 ] Los primeros lenguajes incluyen Fortran , Lisp y COBOL . [ 9 ]

Tipos

Diagrama que muestra cómo interactúa el usuario con el software de una aplicación en un ordenador de sobremesa típico . La capa de software de la aplicación interactúa con el sistema operativo , que a su vez se comunica con el hardware . Las flechas indican el flujo de información.

Existen dos tipos principales de software:

  • Los sistemas operativos son "la capa de software que gestiona los recursos de una computadora para sus usuarios y sus aplicaciones ". [ 10 ] Hay tres propósitos principales que cumple un sistema operativo: [ 11 ]
    • Asignar recursos entre diferentes aplicaciones, decidiendo cuándo recibirán tiempo de la unidad central de procesamiento (CPU) o espacio en la memoria . [ 11 ]
    • Proporcionar una interfaz que abstraiga los detalles del acceso a los detalles del hardware (como la memoria física) para facilitar las cosas a los programadores. [ 11 ] [ 12 ]
    • Ofrece servicios comunes, como una interfaz para acceder a dispositivos de red y de disco. Esto permite que una aplicación se ejecute en hardware diferente sin necesidad de reescribirla. [ 13 ]
  • El software de aplicación se ejecuta sobre el sistema operativo y utiliza los recursos del ordenador para realizar una tarea. [ 14 ] Existen muchos tipos diferentes de software de aplicación debido a la gran variedad de tareas que se pueden realizar con los ordenadores modernos. [ 15 ] Las aplicaciones constituyen la mayor parte del software [ 16 ] y requieren el entorno proporcionado por un sistema operativo, y a menudo otras aplicaciones, para funcionar. [ 17 ]
Comparación de hardware y software locales, infraestructura como servicio (IaaS), plataforma como servicio (PaaS) y software como servicio (SaaS).

El software también se puede categorizar según su implementación . Las aplicaciones tradicionales se compran con una licencia perpetua para una versión específica del software, se descargan y se ejecutan en el hardware del comprador. [ 18 ] El auge de Internet y la computación en la nube permitieron un nuevo modelo, el software como servicio (SaaS), [ 19 ] en el que el proveedor aloja el software (generalmente construido sobre infraestructura o plataformas alquiladas ) [ 20 ] y proporciona el uso del software a los clientes, a menudo a cambio de una tarifa de suscripción . [ 18 ] Para 2023, los productos SaaS, que generalmente se entregan a través de una aplicación web , se habían convertido en el método principal que utilizan las empresas para entregar aplicaciones. [ 21 ]

Desarrollo y mantenimiento

Diagrama del ciclo de vida tradicional del desarrollo de software de 1988. Los números representan el coste típico de cada fase.

Las empresas de software buscan entregar un producto de alta calidad a tiempo y dentro del presupuesto. Un desafío es que la estimación del esfuerzo de desarrollo de software suele ser inexacta. [ 22 ] El desarrollo de software comienza con la concepción del proyecto, la evaluación de su viabilidad, el análisis de los requisitos comerciales y la creación de un diseño de software . [ 23 ] [ 24 ] La mayoría de los proyectos de software aceleran su desarrollo reutilizando o incorporando software existente, ya sea en forma de software comercial listo para usar (COTS) o software de código abierto . [ 25 ] [ 26 ] La garantía de calidad del software suele ser una combinación de revisión manual del código por otros ingenieros [ 27 ] y pruebas de software automatizadas . Debido a las limitaciones de tiempo, las pruebas no pueden cubrir todos los aspectos de la funcionalidad prevista del software, por lo que los desarrolladores suelen centrarse en la funcionalidad más crítica. [ 28 ] En algunos sistemas críticos para la seguridad se utilizan métodos formales para demostrar la corrección del código, [ 29 ] mientras que las pruebas de aceptación del usuario ayudan a garantizar que el producto cumpla con las expectativas del cliente. [ 30 ] Existen diversas metodologías de desarrollo de software , que varían desde completar todos los pasos en orden hasta modelos concurrentes e iterativos. [ 31 ] El desarrollo de software se basa en los requisitos de los usuarios potenciales, a diferencia del mantenimiento, que se basa en eventos como una solicitud de cambio. [ 32 ]

Con frecuencia, el software se lanza en un estado incompleto cuando el equipo de desarrollo se queda sin tiempo o financiación. [ 33 ] A pesar de las pruebas y el control de calidad , prácticamente todo el software contiene errores que impiden que el sistema funcione como se espera. El mantenimiento del software posterior al lanzamiento es necesario para corregir estos errores cuando se encuentran y mantener el software funcionando a medida que el entorno cambia con el tiempo. [ 34 ] A menudo se añaden nuevas funciones después del lanzamiento. Con el tiempo, el nivel de mantenimiento se restringe cada vez más hasta que se interrumpe por completo cuando el producto se retira del mercado. [ 35 ] A medida que el software envejece , se conoce como software heredado y puede permanecer en uso durante décadas, incluso si ya no hay nadie que sepa cómo repararlo. [ 36 ] Durante la vida útil del producto, se estima que el mantenimiento del software representa el 75 por ciento o más del coste total de desarrollo. [ 37 ] [ 38 ]

Completar un proyecto de software requiere diversas formas de experiencia, no solo de programadores , sino también de pruebas, redacción de documentación, gestión de proyectos , diseño gráfico , experiencia de usuario , soporte al usuario, marketing y recaudación de fondos. [ 39 ] [ 40 ] [ 24 ]

Calidad y seguridad

La calidad del software se define como el cumplimiento de los requisitos establecidos, así como de las expectativas del cliente. [ 41 ] La calidad es un término general que puede referirse al comportamiento correcto y eficiente de un código, su reutilización y portabilidad , o la facilidad de modificación. [ 42 ] Por lo general, es más rentable incorporar la calidad al producto desde el principio que intentar agregarla más adelante en el proceso de desarrollo. [ 43 ] Un código de mayor calidad reducirá el costo de por vida tanto para los proveedores como para los clientes, ya que es más confiable y fácil de mantener . [ 44 ] [ 45 ] Las fallas de software en sistemas críticos para la seguridad pueden resultar en daños graves, incluyendo lesiones o la muerte. [ 44 ] Según algunas estimaciones, el costo del software de mala calidad puede ser tan alto como del 20 al 40 por ciento de las ventas. [ 46 ] A pesar del objetivo de los desarrolladores de entregar un producto que funcione completamente como se espera, prácticamente todo el software contiene errores. [ 47 ]

El auge de Internet también aumentó enormemente la necesidad de seguridad informática , ya que permitió a los actores maliciosos realizar ciberataques de forma remota. [ 48 ] [ 49 ] Si un error crea un riesgo de seguridad, se denomina vulnerabilidad . [ 50 ] [ 51 ] A menudo se publican parches de software para corregir las vulnerabilidades identificadas, pero aquellas que permanecen desconocidas ( de día cero ), así como aquellas que no han sido parcheadas, siguen siendo susceptibles de explotación. [ 52 ] Las vulnerabilidades varían en su capacidad de ser explotadas por actores maliciosos, [ 50 ] y el riesgo real depende de la naturaleza de la vulnerabilidad, así como del valor del sistema circundante. [ 53 ] Si bien algunas vulnerabilidades solo pueden utilizarse para ataques de denegación de servicio que comprometen la disponibilidad de un sistema, otras permiten al atacante inyectar y ejecutar su propio código (denominado malware ), sin que el usuario lo sepa. [ 50 ] Para frustrar los ciberataques, todo el software del sistema debe estar diseñado para resistir y recuperarse de ataques externos. [ 49 ] A pesar de los esfuerzos por garantizar la seguridad, una fracción significativa de las computadoras están infectadas con malware. [ 54 ]

Codificación y ejecución

Lenguajes de programación

El código fuente de un programa informático en C. Las líneas grises son comentarios que explican el programa a los humanos. Al compilarlo y ejecutarlo , mostrará " ¡Hola, mundo! ".

Los lenguajes de programación son el formato en el que se escribe el software. Desde la década de 1950, se han inventado miles de lenguajes de programación diferentes; algunos se han utilizado durante décadas, mientras que otros han caído en desuso. [ 55 ] Algunas definiciones clasifican el código máquina —las instrucciones exactas implementadas directamente por el hardware— y el lenguaje ensamblador —una alternativa más legible para humanos al código máquina cuyas instrucciones se pueden traducir uno a uno a código máquina— como lenguajes de programación. [ 56 ] Los programas escritos en los lenguajes de programación de alto nivel utilizados para crear software comparten algunas características principales: no es necesario conocer el código máquina para escribirlos, se pueden portar a otros sistemas informáticos y son más concisos y legibles para humanos que el código máquina. [ 57 ] Deben ser legibles para humanos y capaces de traducirse en instrucciones inequívocas para el hardware de la computadora. [ 58 ]

Compilación, interpretación y ejecución

La invención de los lenguajes de programación de alto nivel fue simultánea con la de los compiladores necesarios para traducirlos automáticamente a código máquina. [ 59 ] La mayoría de los programas no contienen todos los recursos necesarios para ejecutarse y dependen de bibliotecas externas . Parte de la función del compilador es enlazar estos archivos de tal manera que el programa pueda ser ejecutado por el hardware. Una vez compilado, el programa puede guardarse como un archivo objeto y el cargador (parte del sistema operativo) puede tomar este archivo guardado y ejecutarlo como un proceso en el hardware de la computadora. [ 60 ] Algunos lenguajes de programación utilizan un intérprete en lugar de un compilador. Un intérprete convierte el programa a código máquina en tiempo de ejecución , lo que los hace de 10 a 100 veces más lentos que los lenguajes de programación compilados. [ 61 ] [ 62 ]

Responsabilidad

El software a menudo se lanza sabiendo que está incompleto o contiene errores. Los compradores lo adquieren a sabiendas en este estado, lo que ha dado lugar a un régimen legal donde la responsabilidad por los productos de software se ve significativamente reducida en comparación con otros productos. [ 63 ]

Licencias

Blender , un programa de software gratuito

Desde mediados de la década de 1970, el software y su código fuente han estado protegidos por la ley de derechos de autor , que otorga al propietario el derecho exclusivo de copiar el código. Las ideas o algoritmos subyacentes no están protegidos por la ley de derechos de autor, pero a veces se tratan como un secreto comercial y se ocultan mediante métodos como los acuerdos de confidencialidad . [ 64 ] Los derechos de autor de un software suelen pertenecer a la persona o empresa que financió o creó el software (dependiendo de sus contratos con los empleados o contratistas que ayudaron a escribirlo). [ 65 ] Algunos programas informáticos son de dominio público y no tienen restricciones sobre quién puede usarlos, copiarlos, compartirlos o modificarlos; un ejemplo notable es el software escrito por el Gobierno de los Estados Unidos . El software libre y de código abierto también permite el uso, la distribución y la modificación libres, quizás con algunas condiciones específicas. [ 65 ] El uso de algunos programas informáticos se rige por un acuerdo ( licencia de software ) redactado por el titular de los derechos de autor e impuesto al usuario. El software propietario generalmente se vende bajo una licencia restrictiva que limita su uso y distribución. [ 66 ] Algunas licencias de software libre requieren que las versiones modificadas se publiquen bajo la misma licencia, lo que impide que el software se venda o distribuya bajo restricciones de propiedad. [ 67 ]

Patentes

Las patentes otorgan a un inventor una licencia exclusiva y limitada en el tiempo para un producto o proceso novedoso. [ 68 ] Las ideas sobre lo que el software podría lograr no están protegidas por la ley y las implementaciones concretas están cubiertas por la ley de derechos de autor . En algunos países, el requisito de que la invención reivindicada tenga un efecto en el mundo físico también puede formar parte de los requisitos para que una patente de software se considere válida. [ 69 ] Las patentes de software han sido históricamente controvertidas . Antes del caso de 1998 State Street Bank & Trust Co. v. Signature Financial Group, Inc. , las patentes de software generalmente no se reconocían en los Estados Unidos. En ese caso, la Corte Suprema decidió que los procesos comerciales podían patentarse. [ 70 ] Las solicitudes de patentes son complejas y costosas, y los litigios relacionados con patentes pueden aumentar el costo de los productos. [ 71 ] A diferencia de los derechos de autor, las patentes generalmente solo se aplican en la jurisdicción donde se emitieron. [ 72 ]

Impacto

Las simulaciones generadas por computadora son uno de los avances posibilitados por el software. [ 73 ]

El ingeniero Capers Jones escribe que "las computadoras y el software están realizando cambios profundos en todos los aspectos de la vida humana: educación, trabajo, guerra, entretenimiento, medicina, derecho y todo lo demás". [ 74 ] Se ha vuelto omnipresente en la vida cotidiana en los países desarrollados . [ 75 ] En muchos casos, el software aumenta la funcionalidad de tecnologías existentes como electrodomésticos y ascensores . [ 76 ] El software también generó tecnologías completamente nuevas como Internet , videojuegos , teléfonos móviles y GPS . [ 76 ] [ 77 ] Nuevos métodos de comunicación, incluyendo correo electrónico , foros , blogs , microblogging , wikis y redes sociales , fueron habilitados por Internet. [ 78 ] Cantidades masivas de conocimiento que superan cualquier biblioteca basada en papel ahora están disponibles con una búsqueda rápida en la web . [ 77 ] La mayoría de los profesionales creativos han cambiado a herramientas basadas en software como diseño asistido por computadora , modelado 3D , edición de imágenes digitales y animación por computadora . [ 73 ] Casi todos los dispositivos complejos están controlados por software. [ 77 ]

Véase también

Referencias

  1. Stair, Ralph M. (2003). Principios de los sistemas de información, sexta edición . Thomson. pág.  16. ISBN 0-619-06489-7El software consiste en programas informáticos que rigen el funcionamiento del ordenador.
  2. Jones 2014 , págs. 19, 22.
  3. Tracy 2021 , pág. 2.
  4. "software (n.), sentido 2.a" . Oxford English Dictionary . Oxford University Press. 2024. doi : 10.1093/OED/3803978366 . Consultado el 15 de julio de 2025 .
  5. Gabbrielli y Martini 2023 , pág. 519.
  6. ^ Gabbrielli y Martini 2023 , págs .
  7. Gabbrielli y Martini 2023 , pág. 522.
  8. Gabbrielli y Martini 2023 , pág. 521.
  9. 1 2 Tracy 2021 , pág. 1.
  10. ^ Anderson y Dahlin 2014 , pág. 6.
  11. ^ Anderson y Dahlin 2014 , pág.7. 
  12. Tanenbaum y Bos 2023 , pág. 5.
  13. ^ Anderson y Dahlin 2014 , págs.7 , 9, 13.
  14. ^ Anderson y Dahlin 2014 , págs .
  15. Jones 2014 , pág. 121.
  16. Tracy 2021 , pág. 66.
  17. Tracy 2021 , pág. 72.
  18. 1 2 O'Regan 2022 , pág. 386.
  19. Campbell-Kelly y Garcia-Swartz 2015 , págs. 156–157.
  20. Rosati y Lynn 2020 , pág. 23.
  21. Watt 2023 , pág. 4.
  22. O'Regan 2022 , pág. 7.
  23. O'Regan 2022 , pág. 5.
  24. 1 2 Dooley 2017 , pág. 1.
  25. ^ O'Regan 2022 , págs. 18, 110-111.
  26. Tracy 2021 , págs. 43, 76.
  27. ^ O'Regan 2022 , págs .
  28. O'Regan 2022 , pág. 54.
  29. O'Regan 2022 , pág. 267.
  30. O'Regan 2022 , pág. 20.
  31. O'Regan 2022 , pág. 9.
  32. ^ Tripatía y Naik 2014 , p. 26.
  33. Reifer 2012 , pág. 22.
  34. ^ Tripatía y Naik 2014 , págs.4 , 27.
  35. ^ Tripatía y Naik 2014 , p. 89.
  36. Tracy 2021 , pág. 3.
  37. Varga 2018 , pág. 6.
  38. ^ Ulziit y col. 2015 , pág. 764.
  39. ^ Tucker, Morelli y de Silva 2011 , p. 7.
  40. Stull 2018 , págs. 24–25.
  41. Galin 2018 , pág. 3.
  42. Galin 2018 , pág. 26.
  43. O'Regan 2022 , págs.68 , 117.
  44. ^ O'Regan 2022 , págs.3 , 268.
  45. Varga 2018 , pág. 12.
  46. O'Regan 2022 , pág. 119.
  47. Ablon y Bogart 2017 , pág. 1.
  48. Campbell-Kelly y Garcia-Swartz 2015 , pág. 164.
  49. 1 2 O'Regan 2022 , pág. 266.
  50. 1 2 3 Ablon y Bogart 2017 , pág. 2.
  51. ^ Daswani y Elbayadi 2021 , pág. 25.
  52. ^ Daswani y Elbayadi 2021 , págs .
  53. Haber y Hibbert 2018 , págs. 5–6.
  54. Kitchin y Dodge 2011 , pág. 37.
  55. Tracy 2021 , pág. 117.
  56. Tracy 2021 , págs. 118–120.
  57. Tracy 2021 , págs. 118–119.
  58. Kitchin y Dodge 2011 , pág. 26.
  59. Tracy 2021 , pág. 121.
  60. Tracy 2021 , págs. 122–123.
  61. O'Regan 2022 , pág. 375.
  62. Sebesta 2012 , pág. 28.
  63. Kitchin y Dodge 2011 , págs. 36–37.
  64. ^ O'Regan 2022 , págs. 394–396.
  65. 1 2 O'Regan 2022 , pág. 403.
  66. O'Regan 2022 , págs.394 , 404.
  67. ^ Langer 2016 , págs .
  68. O'Regan 2022 , pág. 395.
  69. Gerardo Con Díaz, "El texto en la máquina: la ley de derechos de autor estadounidense y las múltiples naturalezas del software, 1974-1978", Technology and Culture 57 (octubre de 2016), 753-79.
  70. Jones 2014 , pág. 19.
  71. O'Regan 2022 , pág. 398.
  72. O'Regan 2022 , pág. 399.
  73. 1 2 Manovich 2013 , pág. 333.
  74. Jones 2014 , pág. 32.
  75. Kitchin y Dodge 2011 , pág. iv.
  76. 1 2 Kitchin y Dodge 2011 , pág. 5.
  77. 1 2 3 Jones 2014 , pág. xxviii.
  78. Manovich 2013 , pág. 329.

Fuentes

  • Ablon, Lillian; Bogart, Andy (2017). Días cero, miles de noches: La vida y la época de las vulnerabilidades de día cero y sus explotaciones (PDF) . Rand Corporation. ISBN 978-0-8330-9761-3.
  • Anderson, Thomas ; Dahlin, Michael (2014). Sistemas operativos: Principios y práctica (2.ª  ed.). Recursive Books. ISBN 978-0-9856735-2-9.
  • Campbell-Kelly, Martin; Garcia-Swartz, Daniel D. (2015). De los mainframes a los teléfonos inteligentes: una historia de la industria informática internacional . Harvard University Press. ISBN 978-0-674-28655-9.
  • Daswani, Neil ; Elbayadi, Moudy (2021). Grandes brechas: Lecciones de ciberseguridad para todos . Apress. ISBN 978-1-4842-6654-0.
  • Dooley, John F. (2017). Desarrollo, diseño y codificación de software: con patrones, depuración, pruebas unitarias y refactorización . Apress. ISBN 978-1-4842-3153-1.
  • Gabbrielli, Maurizio; Martini, Simone (2023). Lenguajes de programación: principios y paradigmas (2.ª  ed.). Springer. ISBN 978-3-031-34144-1.
  • Galin, Daniel (2018). Calidad del software: conceptos y práctica . John Wiley & Sons. ISBN 978-1-119-13449-7.
  • Haber, Morey J.; Hibbert, Brad (2018). Vectores de ataque a activos: Creación de estrategias eficaces de gestión de vulnerabilidades para proteger a las organizaciones . Apress. ISBN 978-1-4842-3627-7.
  • Jones, Capers (2014). La historia técnica y social de la ingeniería de software . Pearson Education. ISBN 978-0-321-90342-6.
  • Kitchin, Rob; Dodge, Martin (2011). Código/espacio: Software y vida cotidiana . MIT Press. ISBN 978-0-262-04248-2.
  • Langer, Arthur M. (2016). Guía para el desarrollo de software: diseño y gestión del ciclo de vida . Springer. ISBN 978-1-4471-6799-0.
  • Manovich, Lev (2013). El software toma el mando . Bloomsbury Academic. ISBN 978-1-62356-745-3.
  • O'Regan, Gerard (2022). Guía concisa de ingeniería de software: desde los fundamentos hasta los métodos de aplicación . Springer Nature. ISBN 978-3-031-07816-3.
  • Osterweil, Leon J. (2013). "¿Qué es el software? El papel de los métodos empíricos para responder a esta pregunta". Perspectivas sobre el futuro de la ingeniería de software: ensayos en honor a Dieter Rombach . Springer. pp. 237–254 . ISBN  978-3-642-37395-4.
  • Rahman, Hanif Ur; da Silva, Alberto Rodrigues; Alzayed, Asaad; Raza, Mushtaq (2024). "Una revisión sistemática de la literatura sobre decisiones de deslocalización del mantenimiento de software". Information and Software Technology . 172 107475. doi : 10.1016/j.infsof.2024.107475 .
  • Reifer, Donald J. (2012). Recetas para el éxito en el mantenimiento de software . CRC Press. ISBN 978-1-4398-5167-8.
  • Rosati, Pierangelo; Lynn, Theo (2020). «Medición del valor empresarial de la migración de infraestructura a la nube». Medición del valor empresarial de la computación en la nube . Springer International Publishing. pp. 19–37 . ISBN  978-3-030-43198-3.
  • Sebesta, Robert W. (2012). Conceptos de lenguajes de programación (10.ª  ed.). Addison-Wesley. ISBN 978-0-13-139531-2.
  • Stull, Edward (2018). Fundamentos de UX para profesionales no especializados en UX: Principios de experiencia de usuario para gerentes, redactores, diseñadores y desarrolladores . Apress. ISBN 978-1-4842-3811-0.
  • Tanenbaum, Andrew S.; Bos, Herbert (2023). Sistemas operativos modernos, edición global . Pearson Higher Ed. ISBN 978-1-292-72789-9.
  • Tracy, Kim W. (2021). Software: Una historia técnica . Morgan & Claypool Publishers. ISBN 978-1-4503-8724-8.
  • Tripatía, Priyadarshi; Naik, Kshirasagar (2014). Evolución y mantenimiento del software: un enfoque profesional . John Wiley e hijos. ISBN 978-0-470-60341-3.
  • Tucker, Allen; Morelli, Ralph; de Silva, Chamindra (2011). Desarrollo de software: Un enfoque de código abierto . CRC Press. ISBN 978-1-4398-8460-7.
  • Ulziit, Bayarbuyan; Warraich, Zeeshan Akhtar; Gencel, Cigdem; Petersen, Kai (2015). "Un marco conceptual de desafíos y soluciones para la gestión del mantenimiento global de software". Journal of Software: Evolution and Process . 27 (10): 763– 792. doi : 10.1002/smr.1720 .
  • Watt, Andy (2023). Creación de aplicaciones SaaS modernas con C# y .NET: Creación, implementación y mantenimiento de aplicaciones SaaS profesionales . Packt. ISBN 978-1-80461-087-9.
  • Varga, Ervin (2018). Desentrañando el mantenimiento y la evolución del software: Pensando de forma innovadora . Springer. ISBN 978-3-319-71303-8.