Selecciona Edición
Entra en EL PAÍS
Conéctate ¿No estás registrado? Crea tu cuenta Suscríbete

Los ‘planos’ del software

Los informáticos usan ya modelos del software a la hora de comprender, diseñar, analizar y mantener una aplicación

Ampliar foto
La Ingeniería del Software Basada en Modelos ya se está imponiendo en muchas empresas de software.

¿Te comprarías una casa nueva en construcción sin haber visto los planos? Seguramente la respuesta es no. De hecho, seguro que al vendedor le exiges que te muestre los planos a escala de lo que va a ser tu nueva vivienda, más allá de sus explicaciones verbales, del panfleto publicitario que se muestra en la exposición, o de la hoja de calidades técnicas de los materiales que prometen usar. Los planos te van a servir para que puedas hacerte la idea de su distribución, poder medir si te van a caber los muebles, o si el aseo es demasiado pequeño.

Una vez desarrollada la aplicación era muy difícil resolver las diferencias en caso de interpretaciones diferentes sobre lo escrito en esos documentos

Sin embargo, hasta hace poco la situación con las aplicaciones software no era así. Aunque en algunos casos la inversión en un sistema software podía ser superior al precio de una vivienda, a los ingenieros de software no se nos exigía que entregásemos los planos de la aplicación antes de empezar a construirla. Sólo unos cuantos documentos textuales donde se describían los requisitos y la funcionalidad esperada. Era difícil saber qué iba a hacer la aplicación exactamente, e imposible el que los ingenieros de software pudiéramos razonar sobre ellos. Aun peor, una vez desarrollada la aplicación era muy difícil resolver las diferencias en caso de interpretaciones diferentes sobre lo escrito en esos documentos. Por no citar que el cliente quedaba totalmente en manos del proveedor cuando era preciso realizar alguna modificación en la aplicación, o sin posibilidad de irse a otro “constructor” para que hiciera alguna ampliación en caso de necesitarla.

Afortunadamente la situación va cambiando, y los informáticos usan ya modelos del software a la hora de comprender, diseñar, analizar y mantener una aplicación. Incluso más, los modelos pueden usarse para generar el código final en muchos casos. Ya no es sólo el código Java, C++ o Python el único artefacto que compone una aplicación, sino que también hay modelos de alto nivel. Y al igual que ocurre con las ingenierías tradicionales, dichos modelos permiten razonar sobre la aplicación y deducir muchas de sus propiedades antes de desarrollar nada de código. Imagínense un ingeniero civil que no usase planos y modelos matemáticos para construir un puente y determinar el peso que soportará, o las cargas que ha de soportar un edificio, sino que construyera el puente y luego lo probase…

Dichos modelos permiten razonar sobre la aplicación y deducir muchas de sus propiedades antes de desarrollar nada de código

¿Y cómo son los modelos del software? Pues al igual que ocurre en un edificio o en una obra civil, los hay de muchos tipos, cada uno centrado en un aspecto concreto del sistema. Por ejemplo, el modelo de estructura describe con detalle los datos que maneja la aplicación. Otros modelos se encargan de especificar el comportamiento y las interacciones con los usuarios. Hay modelos para diseñar e implementar la apariencia de la aplicación (pantallas, diseño, etc.). Otros se encargan de la arquitectura software. En el caso de las aplicaciones distribuidas, hay modelos que expresan cómo los componentes que conforman la aplicación han de desplegarse en los nodos (ordenadores) en donde han de correr para que lo hagan de la forma más eficiente. Otros modelos permiten razonar sobre las prestaciones de la aplicación (rendimiento, tiempo de respuesta, uso de recursos compartidos, etc.).

Si no fuera usando modelos de alto nivel, cada uno centrado en un aspecto, sería imposible razonar sobre el sistema completo, analizar su comportamiento antes y después de construirlo, mantenerlo, o incluso desarrollarlo garantizando que va a cumplir con los requisitos del usuario (que, por cierto, también se recogen usando modelos).

Hay modelos que expresan cómo los componentes que conforman la aplicación han de desplegarse en los nodos en donde han de correr para que lo hagan de la forma más eficiente

Todo esto es lo que se conoce como Ingeniería del Software Basada en Modelos (o MBSE por sus siglas en inglés, Model-Based Software Engineering) y que ya se está imponiendo en muchas empresas de software para poder desarrollar, operar y mantener cualquier tipo de aplicación medianamente compleja con ciertas garantías de éxito. También está permitiendo abaratar significativamente los costes de desarrollo de aquellas aplicaciones que pueden generarse automáticamente a partir de modelos (como muchas de las aplicaciones Web que se anuncian en la televisión que se realizan “en 3 clicks”) así como reducir los errores y aumentar significativamente la calidad y mantenibilidad de las aplicaciones al ser generadas de forma casi automática.

Por eso, si Vd. tiene una empresa y necesita que le vendan o le desarrollen una aplicación a medida, pida los planos. No deje que le convenzan de que no son necesarios, porque sí lo son. Y más, si van a describir de forma detallada y precisa la estructura, el comportamiento y la funcionalidad de lo que va a ser su aplicación durante muchos años.

Antonio Vallecillo es Catedrático de Lenguajes y Sistemas Informáticos de la Universidad de Málaga, y Presidente de la Sociedad Nacional de Ingeniería del Software y Tecnologías de Desarrollo de Software (SISTEDES).

Crónicas del Intangible es un espacio de divulgación sobre las ciencias de la computación, coordinado por la sociedad académica SISTEDES (Sociedad de Ingeniería de Software y de Tecnologías de Desarrollo de Software). El intangible es la parte no material de los sistemas informáticos (es decir, el software), y aquí se relatan su historia y su devenir. Los autores son profesores de las universidades españolas, coordinados por Ricardo Peña Marí (catedrático de la Universidad Complutense de Madrid) y Macario Polo Usaola (profesor titular de la Universidad de Castilla-La Mancha).

Más información