lunes, 16 de marzo de 2015

Lenguaje natural versus lenguajes formales

Cuando se intenta describir, analizar y modelar algo abstracto, y pienso, por lo cerca que se encuentra de mi actividad profesional, en procesos de negocio, software, etc se suele recurrir a metodologías y lenguajes formales.

Así, por ejemplo, en el mundo del software nos encontramos con los conocidos diagramas entidad relación, los ya vetustos DFD (Diagramas de Flujo de Datos) o la riqueza de diagramas de lenguajes de modelado como el UML.

En el mundo de los procesos de negocio, podemos pensar, por ejemplo, en BPMN.

Pero ¿qué nos añaden este tipo de lenguajes respecto a una descripción en lenguaje natural?

Varias cosas se me podrían ocurrir:

  • Exactitud, sin posibilidades de interpretaciones arbitrarias
  • Capacidad para ser automatizados (no siempre, pero sí en ocasiones)
  • Capacidad para el intercambio (entre distintas personas y organizaciones, incluso en diferentes países y con diferentes idiomas)

A cambio, también presentan algunos inconvenientes:

  • Necesidad de aprendizaje previo
  • Necesidad de un cierto esfuerzo para interpretarlos
  • Falta de amigabilidad
  • Son poco pedagógicos y no aptos para lo divulgativo

Pero veamos qué nos dice Frederick P. Brooks en su libro 'The mythical man-month'. 

En un pasaje del mismo afirma:


Let us examine the merits and weaknesses of formal definitions. As noted, formal definitios are precise. They tend to be complete; gaps show more conspicuously, so they are filled sooner. What they lack is comprehensibility. With English prose one can show struuctural principles, delineate structure in stages or levels, and give examples. One can readily mark exceptions and emphasize contrasts. Most important, one can explain why.

Quizá, precisión frente a comprensibilidad es lo que resume las ventajas y desventajas.

En mi experiencia, y esto no es ser especialmente original ni brillante, los mejores resultados se obtienen combinando ambas técnicas. Unos diagramas en lenguaje formal, explicados y puestos en contexto en lenguaje natural, nos ofrecen lo mejor de ambos mundos y permiten unos modelados a un tiempo precisos y automatizables unido a una fácil comprensión y comunicación.