Sistema de programación en español facilitará el trabajo a desarrolladores de software
En las plataformas digitales, detrás acciones como elegir un producto, seleccionar la ubicación, realizar una búsqueda o simplemente comprar, hay un conjunto de códigos operando que hacen posible su ejecución.
En el proceso habitual, desarrolladores y analistas de requerimientos examinan cada una de las historias para determinar las entidades, clases, relaciones y otros elementos que pueden componer el sistema.
Dicha dinámica puede tomar mucho tiempo, y en países como Colombia, donde se habla español, los sistemas suelen estar en inglés.
Para hacer mucho más ágiles estos procesos y entender con eficacia lo que desea un cliente, el ingeniero de sistemas y computación Miguel Ángel Tovar Onofre, estudiante de la Maestría en Ingeniería de Sistemas y Computación de la Facultad de Ingeniería de la Universidad Nacional de Colombia (UNAL), tomó patrones gramaticales del inglés y los adaptó al español teniendo en cuenta los cambios en la gramática, a falta de un conjunto de historias de usuario propiamente de este idioma.
Esta técnica utiliza algoritmos avanzados para analizar el lenguaje humano y extraer información relevante. En el caso específico de la generación de diagramas de clase, que son herramientas utilizadas para comunicar el diseño de un programa y su estructura, el PLN identifica las entidades clave en una historia de usuario, como los nombres de objetos y sus características.
Así, si en una historia de usuario se menciona la necesidad de un sistema de ventas con clientes, productos y facturas, el PLN reconocerá esos elementos y generará automáticamente un diagrama que muestra las relaciones entre ellos.
Otro elemento clave en dicho proceso es la generación de casos de uso, en el cual el PLN analiza las acciones y losactores involucrados en una historia de usuario. Por ejemplo, si en una historia se menciona que un usuario puede realizar una compra en línea, este puede identificar a dicho usuario como el actor principal y creará un caso de uso que detalle los pasos necesarios para realizar esa acción, como seleccionar productos, agregarlos al carrito y finalizar la compra.
Y es que, aunque pueda parecer un tema alejado de lo común, este se utiliza más de lo que se cree. Por ejemplo, esta tecnología se puede emplear en el desarrollo de una aplicación de reservas de viajes. Si un usuario describe en una historia la necesidad de buscar vuelos, seleccionar fechas y destinos, y finalmente reservar el vuelo deseado, el PLN genera un diagrama de clase con entidades como “usuario”, “vuelo” y “reserva”, y un caso de uso llamado “reservar vuelo” que describirá los pasos para realizar la reserva.
El ingeniero explica que mantuvo unas reglas gramaticales, por ejemplo, entre el español y el inglés hay notables diferencias que se deben considerar. “Los patrones que se usaron fueron construidos en reglas adaptadas. Si entre dos sustantivos existe uno o más adjetivos se clasifica como una clase o entidad, o si después del adjetivo va un verbo, se indica que es una acción, y así funciona”.
Agrega que, “también se tuvo en cuenta que, por ejemplo, si en la historia del usuario dice: “un carro contiene cuatro sillas”, la palabra “contiene” ya nos da información de que las sillas forman parte del carro y ya hay una conexión entre dos clases”.
En ese proceso se hizo una exhaustiva revisión de palabras y se eliminaron aquellas que no cumplían con las reglas para que el modelo no se “estropeara”, fallo que en una situación de la vida real se puede observar en malas interpretaciones de los requerimientos o funcionalidades solicitadas por los clientes y en tiempos prolongados adicionales para el desarrollo.
“Con este modelo adaptado al español, analistas y desarrolladores de software pueden determinar con mayor facilidad cómo debería ser la estructura del sistema a construir, y si se requiere alguna modificación pueden hacerlo sin problema” indica.
“Este es uno de los primeros trabajos con este enfoque al idioma español, y se espera que en trabajos futuros se puedan seguir desarrollando o mejorando herramientas que apoyen los procesos de desarrollo de software en nuestro idioma”, concluye.