Skip to main content

¿Qué es la evolución del software?

La evolución del software es un proceso mediante el cual un programa de computadora comercial requiere actualización continua, mantenimiento y mejora a lo largo del tiempo para que siga siendo un producto viable. A este respecto, la evolución del software está impulsada por las necesidades externas de negocios y consumidores que cambian a medida que otros softwares y tecnologías avanzan a su alrededor. Sin embargo, el factor que impulsa la evolución del software suele ser interno y se centra en el equipo de ingeniería que produjo el producto y en la empresa que depende de su éxito para obtener rentabilidad. El Imperial College de Londres, Inglaterra, promulgó por primera vez tres leyes fundamentales de la evolución del software a principios de la década de 1970, que desde entonces se han ampliado a un total de ocho leyes a partir de 2011. También se han hecho otros intentos para cuantificar el proceso utilizando modelos como el modelo secuencial lineal y el modelo prototipo, pero el paradigma que parece ajustarse mejor a los ciclos de vida de la entropía del software es el de la evolución darwiniana de los seres vivos.

Los factores impulsores básicos detrás de los cambios en la arquitectura del software se parecen a las mismas fuerzas que motivan a las empresas a actualizar la maquinaria industrial o los procedimientos operativos estándar a medida que cambian las necesidades sociales. A medida que se utiliza cada vez más el software, se hacen evidentes nuevas necesidades o funciones que deben trabajarse en versiones posteriores del producto. Todo el software también se libera con errores previamente desconocidos, por lo que se deben realizar parches periódicos y procedimientos de mantenimiento para corregir situaciones tales como lagunas de seguridad que podrían hacer que una empresa sea vulnerable a los ataques a través del propio software. Una clave para la evolución del software es también el hecho de que dichos programas deben adaptarse cada vez más para trabajar en diferentes tipos de equipos informáticos emergentes y dentro de varias arquitecturas de sistemas operativos para que el programa tenga un atractivo más amplio.

Satisfacer todas estas necesidades es crucial para determinar si un programa de software sigue siendo viable y, dado que los activos de software son un aspecto tan crucial de la economía de la información a partir de 2011, la evolución del software se ha convertido en un aspecto fundamental de la adaptación y el crecimiento empresarial. Meir Lehman, un científico de la computación en el Imperial College de Londres, se le atribuye la creación de Lehman's Laws, que definió sucintamente el proceso de evolución del software y guió a los desarrolladores en el pensamiento avanzado de la visualización de software. Las leyes de Lehman se basan en la premisa de que el software evoluciona a medida que aumenta la retroalimentación sobre su rendimiento y que su tendencia inevitable es volverse cada vez más compleja.

Lehman ha declarado que la naturaleza de la evolución del software refleja cambios naturales como la mutación en las moscas de la fruta, la forma en que las ciudades se expanden con el tiempo y cómo las estructuras militares mejoran progresivamente los sistemas de armas. Las primeras tres leyes del proceso emulan estas tendencias al detallar el Cambio continuo, la Complejidad creciente y lo que se conoce como Gran evolución del programa. El cambio continuo se refiere al hecho de que el programa debe adaptarse para cumplir con las condiciones comerciales actuales del mundo real, y esto refleja una complejidad creciente, ya que el programa debe satisfacer una diversidad cada vez mayor de necesidades inesperadas. Large Program Evolution se refiere a la necesidad de corrección de errores y nuevos lanzamientos del programa que están vinculados inexorablemente a las demandas del mercado.

De las cinco leyes restantes en la evolución del software, la número cuatro es la Estabilidad Organizacional y se refiere al hecho de que el crecimiento de un programa adquiere vida propia, independientemente del nivel de recursos intencionalmente dedicado a él, y el número cinco es Conservación de la familiaridad. eso indica que el crecimiento incremental del programa es inevitable. El número seis de las ocho Lehman Laws es el crecimiento continuo, que es necesario para satisfacer la demanda del consumidor, y el número siete es la disminución de la calidad, que enfatiza el hecho de que todo el software finalmente enfrenta límites en la funcionalidad que no puede cumplir. La última Ley de Lehman para la evolución del software es el Sistema de retroalimentación en sí, que une todas las fuerzas que afectan la viabilidad de un programa de software para impulsarlo rápidamente hacia un mayor éxito o una inevitable obsolescencia y muerte.