12 marzo 2006

 

¿Hacer software es como hacer música?

Buscando formas de entender nuestra profesión, la construcción de software, me pareció interesante compararla con la música, que también es una de mis pasiones.
Lo que más me interesó fue la comparación entre los distintos aspectos que forman la música respecto de hacer software.
Algunos aspectos podrían ser:

La notación, al igual que la escritura para la humanidad, permitió un espectacular desarrollo ya que no se depende de la memoria y la transmisión persona a persona de las obras musicales. Mediante la notación es posible escribir obras que podrán ser ejecutadas en otro momento y por distintas personas.
En el software ocurre algo similar, hoy el estándar más utilizado para describir sistemas de software es el Unified Modeling Language (UML) o Lenguaje Unificado de Modelado. Al igual que para la música, nos permite preservar los diseños sin tener que revisar el código fuente. El UML es para la construcción de software lo que los planos son para la arquitectura.
El software y la música tienen aspectos más o menos complejos que necesitan ser soportados por la notación. En la música un aspecto de difícil representación es la expresividad que le da el toqué personal a cada interpretación. En el software la representación del aspecto dinámico es también complejo, como lo son los aspectos dinámicos y la necesidad representar distintos tipos de aplicaciones como lo son las de tiempo-real.
Para finalizar esta comparación, es importante resaltar que, aunque la notación nos ayude plasmar los distintos aspectos de una obra, ya sea de música o de software, cada una de éstas es "ejecutada" por personas y es allí donde se le da el toque especial. Antes existían pianolas que ejecutaban obras que estaban almacenadas en rodillos de papel, hoy esta el MIDI y otras tecnologías mas avanzadas para ejecutar partituras, pero ninguna de ellas puede interpretar una partitura de la forma que lo hace una persona. Para el software en muchos aspectos todavía ocurre esto, pero la industrialización lo está acotando.

Links de interés:
Tags: UML, Ingenieria de Software, Diseño de Software

This page is powered by Blogger. Isn't yours?