Tecnología

Los ‘planos’ del 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.

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…

¿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.).

Mostrar más

Publicaciones relacionadas

Botón volver arriba
Cerrar