Como parte del departamento de Modelación Matemática de Sistemas Sociales he tenido contacto
directo con proyectos de investigación cuyo objetivo es buscar soluciones a diferentes problemas a
mediante la construcción de modelos, los cuales se representan a través de programas de computadora, ya sea para analizar sus propiedades o simular su comportamiento.

Como parte del departamento de Modelación Matemática de Sistemas Sociales he tenido contacto directo con proyectos de investigación cuyo objetivo es buscar soluciones a diferentes problemas a mediante la construcción de modelos, los cuales se representan a través de programas de computadora, ya sea para analizar sus propiedades o simular su comportamiento.

En esta ocasión no profundizaré en la construcción del modelo, es decir en el proceso de modelación, no porque no sea importante, sino porque este tema es muy extenso y amerita una discusión profunda, ya que es necesario abordar otros tópicos como la interdisciplina, la técnica de construcción y la vigilancia epistemológica. Por el momento, asumiré que poseo un modelo definido, el cual está representado en el lenguaje utilizado por la persona o personas que lo definieron. Algunos ejemplos de modelos son: conjuntos de ecuaciones; diagramas, dibujos o algún otro tipo de representación gráfica e incluso texto que describa los elementos y sus interacciones.

Transformar un modelo en una representación que pueda ser ejecutada por una computadora se reduce al problema de realizar diferentes representaciones de dicho modelo hasta llegar a una que esté definida en el lenguaje que los dispositivos electrónicos entienden (ceros y unos) . Cherry Pancake y Donna Bermark en su artículo de 1990 llamado Do Parallel Languages Respond to the Needs of Scientific Programmers? describen el camino para realizar este proceso, como se muestra en la figura 1.

A continuación se describen cada uno de los pasos.

1. El primer paso es contar con la primera representación del modelo, que incluye sus descripciones, asociaciones y elementos constitutivos, lo que da como resultado una representación conceptual o modelo conceptual.

2. El siguiente paso consiste en transformar el modelo anterior en objetos y operaciones que formarán parte de uno o más algoritmos, por lo tanto, el lenguaje utilizado será principalmente pseudocódigo, es decir, los elementos e interacciones que definen el modelo se representarán como acciones que formarán parte de uno o más algoritmos.

Este paso es el más difícil, ya que es necesario que el constructor del modelo tenga nociones sobre análisis de algoritmos o que un profesional de la computación conozca el lenguaje utilizado en la definición del modelo. Aquí es donde cobra importancia el pensamiento computacional, porque puede servir como puente para ayudar a un científico que construye un modelo conceptual a comprender cómo se realiza esta representación.

Es importante señalar que puede resultar muy atractivo para los profesionales de la computación omitir este paso debido a que, una vez logrado el entendimiento del modelo, parece más práctico proceder directamente a la programación, no obstante, definir el modelo de forma algorítmica, no sólo permite organizar mejor el código, sino también verificar que el modelo esté completamente definido y refleje el comportamiento deseado.

3. En este paso se elige el lenguaje de programación, el almacenamiento de datos y las tecnologías necesarias para convertir los algoritmos en código. Esta actividad queda completamente en el dominio del profesional de la computación, y el lenguaje utilizado depende, por un lado, de la tecnología que se empleará para ejecutar el código (un archivo ejecutable, una página web, una App son los ejemplo más populares) y, por otro, de los lenguajes y tecnologías que maneje el desarrollador.

4. El paso final de este proceso ha cambiado con el tiempo. Antes era común simplemente contar con un archivo que se ejecutaba y era procesado por la computadora; sin embargo, ahora, se requiere configurar servidores, habilitar puertos y hacer que diferentes tecnologías se comuniquen (por ejemplo, cuando se realiza una App que a su vez se comunica con un servidor). Al proceso de colocar el código final en las tecnologías elegidas se le llama desplegar (deploy en inglés).

Como parte de mi experiencia en este proceso, un paso que añadiría entre el paso 1 y el 2 es la representación del modelo como un listado de requerimientos. No sólo es una buena práctica en el proceso de construcción de software, sino que también facilita la definición algorítmica, ya que enunciados cortos que indiquen las acciones a realizar en el sistema, pueden ser entendidos tanto por el creador del modelo conceptual como por el profesional de la computación e incluso por un desarrollador que no esté tan familiarizado con el lenguaje del modelo conceptual.

Referencias

Pancake, C. M. & Bergmark, D. (1990). Do parallel languages respond to the needs of scientific programmers?. Computer, 23(12), 13-23.

Autor

Israel Sandoval Grajeda

Miembro del Departamento de Modelación Matemática de Sistemas Sociales

IIMAS – UNAM

Leave a Reply

17 + 16 =