Estándares de software

Publicaciones

Durante años se ha discutido, a veces vehementemente, acerca de la conveniencia o no del software libre (“open source”) y el software propietario. Esa discusión, honestamente, carece de sentido. La industria de software no podría existir sin el incentivo de la propiedad intelectual, y el mismo respeto por la propiedad intelectual obliga a respetar a aquellos que decidan regalar la suya. La discusión pertinente es alrededor de los estándares de software, acerca de las bondades, o no, del software que se adhiere, o no, a estándares abiertos.

Los estándares abiertos han sido promovidos por los grandes usuarios (siguen habiendo muchos más desarrolladores de software trabajando para los usuarios de software que para la industria de software). El software que se adhiere a estándares abiertos le garantiza al usuario independencia del proveedor, ya que siempre es posible reemplazar el software de un proveedor por otro software que también se adhiera a los mismos estándares. Pero hoy en día los estándares abiertos son también apoyados por todos los proveedores sensatos ya que los estándares hacen crecer el mercado mientras reducen los costos de producción.

Estándares abiertos son aquellos definidos por organismos independientes en un proceso abierto. Un proceso abierto, es un proceso durante el cual toda la información está libremente disponible y cuyos resultados (la definición del estándar y su código de referencia) se hacen también libremente disponibles.

Cuando los proveedores de software apostaban a crear dependencia de sus clientes, cada proveedor lograba una participación determinada. Si bien, mantener esa participación del mercado era fácil, crecer era muy difícil porque implicaba una de dos opciones: o había que migrar un cliente de otro software con estándares propietarios (o peor aún, sin estándares) o había que convencer un cliente escéptico de los que se niegan a entregar su destino en las manos de un proveedor. Los estándares abiertos como UML, XML, CORBA, TCP/IP, HTTP, etc. han sido tan exitosos que ya nadie pone en duda las bondades de los mismos (hoy es imposible imaginarse la Internet sin TCP/IP, o un servidor de aplicaciones sin CORBA). Los estándares abiertos, por lo tanto hacen crecer el mercado, no sólo porque evita el fraccionamiento que se daba antes sino porque incluye a los escépticos. Los costos de producción del software se reducen porque ya no es necesario reinventar la rueda ni hacer las cosas de manera complicada (las hacemos de manera estándar) además el “pool” de personal crece, ya no se fragmenta el mercado laboral según la experiencia en una u otra tecnología.

Una de las organizaciones definidoras de estándares más exitosas durante los últimos 18 años es sin duda el Object Management Group (www.omg.org) consorcio internacional, sin fines de lucro que implementa un proceso de definición de estándares capaz de definir un estándar en 18 meses (obviamente la industria de software no puede darse el lujo que todavía se dan algunas industrias -como telecomunicaciones- de durar 7 años definiendo un estándar).

En el año 2000, OMG definió el estándar de Arquitectura Dirigida por Modelos (MDA), el cual tiene un enrome potencial, y a pesar de que OMG ha definido estándares muy exitosos, podría ser el más exitoso todavía. MDA promete resolver los dos problemas eternos de los directores de tecnología: los requerimientos siempre cambiantes y la tecnología siempre cambiante.

Con MDA, la idea es modelar el sistema (por ejemplo utilizando UML) y transformar los modelos (por ejemplo, de análisis a diseño, a código) automáticamente, de manera que los nuevos requerimientos no se aplican en el código sino el los modelos (y se vuelve a generar el código). De igual manera cuando se tiene el sistema correcto en la tecnología equivocada (por ejemplo, obsoleta) en lugar de gastar una gran cantidad de tiempo y esfuerzo migrando o reescribiendo el sistema, sencillamente se vuelve a generar hacia una plataforma de destino diferente.

Lo mencionado en el párrafo anterior no es ficción, ni teoría, está hoy disponible, los niveles de generación automática consistentemente sobrepasan el 75%, pero el modelo de arquitectura por modelos es mucho más completo que otro intentos del pasado, el código que no se puede generar, se escribe a mano, pero como una anotación al modelo, de manera que no se pierda durante una nueva generación. Realmente creemos que este estándar va a variar profundamente la manera en que el software se desarrolla, y más importante, la manera en que se le da mantenimiento (que es a fin de cuentas donde se invierte la mayor cantidad de tiempo, esfuerzo y dinero). El 22 de junio el Club de Investigación Tecnológica realizará en Costa Rica un seminario llamado “Manteniendo Sistemas Modelados” en el que se verán casos reales e incluso una prueba de concepto de una herramienta española aplicada a una aplicación de un cliente local. Obviamente las herramientas que implementan los estándares también deben adherirse a los estándares (de lo contrario estaríamos creando dependencia con el proveedor de las herramientas).

Artículo publicado en la revista Blue Tech