¿La descomposición del software se refiere principalmente al rendimiento o al código desordenado?

22

La definición de Wikipedia de la podredumbre del software se centra en el rendimiento del software. Este es un uso diferente al que estoy acostumbrado; Lo había pensado mucho más en términos de limpieza y diseño del código, en términos de que el código tiene todas las características de calidad estándar: legibilidad, facilidad de mantenimiento, etc. Ahora, es probable que el rendimiento disminuya cuando el código se vuelva ilegible, porque nadie sabe lo que está pasando Pero, ¿el término podredumbre del software tiene una referencia especial al rendimiento? ¿o estoy en lo cierto al pensar que se refiere a la limpieza del código? ¿o es acaso un caso de múltiples sentidos del término de uso común? Desde la perspectiva del usuario, tiene que ver con el rendimiento; pero para el artesano del software, ¿tiene que ver más específicamente con cómo se lee el código?

Kazark
fuente
1
Wikipedia enumera 3 causas, 2 de las cuales no están relacionadas con el rendimiento, el código no utilizado y el código rara vez actualizado ...
Izkata
2
"El software puede deteriorarse en el" rendimiento "con el tiempo y convertirse en lo que comúnmente se llama" legado "a medida que se ejecuta y acumula errores; esto generalmente no se considera podredumbre del software, aunque puede tener algunas de las mismas consecuencias". Creo que está claro que la podredumbre del software no se relaciona con el rendimiento.
zzzzBov
1
La única característica de canje en toda la página de wikipidia es la etiqueta de advertencia de que no hay referencias a fuentes relibale.
mattnz

Respuestas:

39

El término no está relacionado con el rendimiento, al menos no en ningún lugar donde lo haya visto utilizado.

Se trata específicamente de código que no se mantiene bien y se vuelve ... sucio ... podrido. Se trata de código cuyo diseño no se ha actualizado a medida que se realizaron cambios y es difícil de leer y comprender.

Oded
fuente
1
Escuché que solía referirse al rendimiento: por ejemplo, "pudrición de Windows", la sensación de que necesita reformatear y reinstalar Windows de vez en cuando ya que con el tiempo se vuelve más lento.
Carson63000
3
Sí ... pero "putrefacción de software" y "putrefacción de Windows" son términos diferentes.
Stephen C
44
@Oded: la analogía no es con suciedad. Es con el tipo de podredumbre que ocurre en los edificios antiguos que los deja estructuralmente defectuosos.
Stephen C
18

Seamos sinceros. La "putrefacción del software" no es un concepto técnico bien definido. Es más una descripción peyorativa de lo que sucede cuando el software tiene un mantenimiento deficiente.

La página de Wikipedia representa una vista, pero hay vistas claramente alternativas. Y podría decir que las diferentes opiniones reflejan las diferentes prioridades y preocupaciones de la persona que las tiene:

  • Alguien que se concentre en hacer que el software sea rápido estará más inclinado a buscar evidencia de "podredumbre de software" en el rendimiento.

  • Alguien que se centre en el diseño / arquitectura (por ejemplo, porque necesitan agregar nueva funcionalidad o corregir errores de funcionalidad), verá "software podrido" desde esa perspectiva.

Y, no es realmente útil decir cuál es la perspectiva más correcta. (Es como discutir si la turquesa es más verde o más azul).

Stephen C
fuente
1
Como la publicación del OP fue sobre wikipedia, presento: Turquesa (color) : es "verde", pero tiene un "tono azulado". Así que creo que tu argumento es sólido :).
Ben Lee
6

Yo diría que el término "podredumbre de software" se refiere generalmente a la idoneidad para la tarea en cuestión. El software puede volverse menos adecuado para su tarea prevista debido a la capa de capas de correcciones de errores, nuevas características y pequeños ajustes. En conjunto, pueden afectar negativamente tanto la mantenibilidad como el rendimiento. Además, las necesidades de la organización probablemente cambiarán con el tiempo, y el software puede verse obligado a desempeñar roles para los que nunca fue realmente diseñado. Todos estos factores hacen que el software se vuelva menos adecuado para las necesidades de la organización, y eso puede suceder incluso con un esfuerzo concertado para mantener el software.

Caleb
fuente
6

Wikipedia dice que la descomposición del software y la descomposición del código son lo mismo. Estoy en desacuerdo.

La descomposición del código es la pérdida gradual de legibilidad y mantenibilidad a medida que se realizan más y más cambios en el código.

La descomposición del software es la pérdida gradual de rendimiento a medida que el software se mueve de un emulador de entorno a otro. Un ejemplo es todo el software Data General PDP que se ejecuta en emuladores. En realidad, es el entorno el que se está pudriendo, no el software.

Gilbert Le Blanc
fuente
+1. wikipedia equiparó la putrefacción del software con la putrefacción del código. Deberíamos editar eso. Hay más software podrido. Un ejemplo es GUI inutilizable / difícil de usar. La documentación desactualizada / incorrecta también contribuye.
Jayan
3

El software no se daña, se daña, se desgasta o se "pudre" en el sentido tradicional.

Si el entorno en el que opera el software no cambia, el software durará esencialmente para siempre. Esta es la razón por la que me enojo tanto cuando alguien pregunta si alguna biblioteca está "muerta" porque el autor no ha realizado una actualización en los últimos 5 minutos (exagerando solo un poco por efecto).

Pero el ambiente generalmente lo hace el cambio; los sistemas operativos se actualizan, las computadoras se reemplazan por otras más potentes y se instalan nuevos programas (como la última versión de un cliente como Internet Explorer, controladores de dispositivos u otras bibliotecas), de los cuales puede depender el software. Por lo tanto, el software debe actualizarse para tener en cuenta esos cambios.

Hay sistemas de software que se han estado ejecutando de manera continua y confiable durante literalmente décadas sin actualizarse o mantenerse significativamente. Me viene a la mente el software COBOL que se ejecuta en mainframes que manejan transacciones bancarias (aunque todas tuvieron que modificarse en 1999 para manejar Y2K).

El énfasis de Wikipedia en el rendimiento parece estar perdiendo el punto; muchas aplicaciones de software realmente aumentan su rendimiento cuando se instalan en un entorno más nuevo. El artículo de Wikipedia en realidad parece más preocupado por la hinchazón de software .

Robert Harvey
fuente
Software hinchado, sí, buen punto. Según entendí el término cuando hice la pregunta, la podredumbre del software tenía que ver con el hecho de que un grupo de desarrolladores seguía modificándola y cuyos estándares para la limpieza y el diseño del código eran inferiores.
Kazark
3

"Pudrición de software" - es un término muy vago y puede significar una variedad de cosas para cualquiera, dependiendo de cómo es su percepción del concepto, así como cuál es su ángulo de visión .

La definición de Wikipedia sobre la podredumbre del software no establece un estándar, ya que también está escrita por algunas personas. Creo que este término tiene una variedad de significados y necesita desglosarse en las áreas específicas, donde es arbitrado.

  • Los programadores pueden entender esto como una base de código que no se puede mantener, llena de antipatrones, sin coherencia en el estilo de denominación y codificación.
  • Los administradores del sistema pueden entender esto como un mal rendimiento, lleno de pérdidas de memoria y un infierno. mantenimiento.
  • El usuario final puede entender esto como un software muy complicado, no intuitivo y difícil de trabajar.
EL Yusubov
fuente
2

Siempre pensé en la podredumbre del software como una condición que ocurre cuando no usas el software por un período de tiempo. De alguna manera, el software se transforma en un estado donde no se puede construir. Luego, cuando lo llevas a un punto donde puedes construirlo, no funciona con las entradas y salidas como lo hacía anteriormente. Es casi como si el código en realidad se degradara en forma aunque esté almacenado digitalmente.

Kent
fuente
1
¿Porque cambió el entorno (compilador, bibliotecas o lo que sea)? Wikipedia discute eso.
Kazark