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
?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).
Tu suscripci¨®n se est¨¢ usando en otro dispositivo
?Quieres a?adir otro usuario a tu suscripci¨®n?
Si contin¨²as leyendo en este dispositivo, no se podr¨¢ leer en el otro.
FlechaTu suscripci¨®n se est¨¢ usando en otro dispositivo y solo puedes acceder a EL PA?S desde un dispositivo a la vez.
Si quieres compartir tu cuenta, cambia tu suscripci¨®n a la modalidad Premium, as¨ª podr¨¢s a?adir otro usuario. Cada uno acceder¨¢ con su propia cuenta de email, lo que os permitir¨¢ personalizar vuestra experiencia en EL PA?S.
En el caso de no saber qui¨¦n est¨¢ usando tu cuenta, te recomendamos cambiar tu contrase?a aqu¨ª.
Si decides continuar compartiendo tu cuenta, este mensaje se mostrar¨¢ en tu dispositivo y en el de la otra persona que est¨¢ usando tu cuenta de forma indefinida, afectando a tu experiencia de lectura. Puedes consultar aqu¨ª los t¨¦rminos y condiciones de la suscripci¨®n digital.