Mantención del Software

29 Abril 2010

Dijkstra se reía de que se hablara de mantención de software, como si el software fuera algo que se deteriora, oxida, o corroe.

La verdad es que Dijkstra tiene razón en ese sentido, el software no se puede mantener, porque no es algo que se construye.
Toda la metáfora de la construcción del software, que incluye arquitectos, constructures, procesos de construcción, o de que es algo que se fabrica, y por tanto se empaqueta, ensambla, distribuye, es limitante.
El software no es algo físico, rígido que deba someterse a las leyes de la física y por lo tanto de la ingeniería tradicional.
No, no existe  la ingeniería de software. 
Las razones por las que el software requiere “mantención”, es porque las condiciones ambientales han cambiado, o hay cambios en la infraestructura (hardware, software base) o en la funcionalidad, hay presiones del mercado, o de los usuarios para que el software cambie. También se detectan fallos, o situaciones no expresadas en el análisis inicial.
La adaptación al cambio del entorno es evolución. 

Entonces debemos dejar de hablar de mantención del software y usar el término apropiado, evolución del software. 
Esto también tiene unas interesantes derivadas a la economía del software,que espero mis lectores sepan apreciar.

Artículos relacionados

Tags: , , , ,

4 Responses to Mantención del Software

  1. Dennis Tobar on 29 Abril 2010 at 12:29

    Lamento diferir en un pequeño detalle que has indicado:

    no existe la ingeniería de software.

    Entonces la fase previa de creación de un software, ¿no debe ser estudiada?. Que yo sepa, la ingeniería de software se basa en la parte previa de cualquier proyecto, basándose en diversas metodologías de estudios de problemas y análisis de requerimientos que posee un usuarios a una determinada problemática que requiere una implementación de software.
    El resto, me parece… hasta te diría que el el código tiene olores ;)

  2. Eduardo Diaz on 30 Abril 2010 at 11:57

    Con esa frase quiero decir lo mismo que dice Dijkstra, que la ingeniería de software es una entelequia para disfrazar la incapacidad de muchas personas para programar.
    La construcción de software se llama programación, y como tal debe ser enseñada, el problema es que ahora la gente considera que la programación es el equivalente a la albañilería, lo que es lamentable, porque tiende a alejar a la gente de lo importante, que es programar.

  3. jrovegno on 1 Mayo 2010 at 15:38

    Yo no soy informático, pero tengo la necesidad de aprender un lenguaje de programación, para utilizar herramientas computacionales, que me permiten resolver problemas de ingeniería.
    Yo pienso que existe una evolución del lenguaje.
    El primer lenguaje que creo el ser humano lo hizo para comunicar.
    Después se crearon las matemáticas que es un lenguaje para resolver problemas, que se enfoca en la lógica.
    Cuando se crearon las computadoras el ser humano se vio en la necesidad de crear un “lenguaje de programación” para resolver problemas, que pudiera ser entendido por las computadoras y los seres humanos.
    Hoy en día se han creado lenguajes con múltiples objetivos (resolver problemas, comunicar, gestionar todo tipo de información, etc.), donde cada vez es más fácil que sea entendido por los seres humanos.
    Yo creo que la pega que exclusivamente puede hacer un informáticos es la relación entre el lenguaje y las computadoras, pero nosotros el resto de los mortales podemos hacer uso de los lenguajes de programación que pueden entender los seres humanos.
    Así como un niño puede sumar sin temor de no saber la teoría de conjuntos a la perfección, creo que un ingeniero puede hacer un script en python para plotear los resultados de su investigación sin temor de no saber de algoritmos, patrones de diseño o paradigmas de programación. Quizás esta comparación no es muy buena, pero por el momento no se me ocurre una mejor.
    Pero ahora viene mi duda como un hijo del plan común de ingeniería, donde aprendimos que al menos una vez en nuestra vida debemos aprender de los fundamentos de la matemáticas, para utilizarlas con responsabilidad en nuestra especialidades.
    Esta es mi consulta: ¿Eso se aplica también a la computación?
    Disculpe por las incongruencias en expresar mis ideas, se me ha hecho difícil entender que es informática, computación, lenguajes, etc. y puedo estar confundiendo cosas.

  4. Eduardo Diaz on 1 Mayo 2010 at 16:32

    La respuesta es sí, es importante que todas las personas entiendan los fundamentos de la computación porque esta ciencia es una ciencia básica (esto es algo nuevo, y muchos no se han dado cuenta).
    Así como todos los ingenieros aprendemos cálculo, debemos saber programar y aprender lo básico de la teoría de algoritmos y la complejidad.
    Yo voy a hablar de esos fundamentos, en la medida que tenga tiempo.
    Gracias por tu interés.

Agregar un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *

*

Notifícame de nuevos comentarios a mi email. Puedes también subscribirte sin comentar.

Si quieres ingresar código colócalo entre [code] y [/code].