Modelos y UML
(Unified Modeling Language) es el acrónimo en inglés para «lenguaje unificado de modelado». Es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad; está respaldado por el OMG (Object Management Group). Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un «plano» del sistema (modelo), incluyendo aspectos conceptuales tales como procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos reciclados.
Es importante remarcar que UML es un «lenguaje de modelado» para especificar o para describir métodos o procesos. Se utiliza para definir un sistema, para detallar los artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje en el que está descrito el modelo. (Referencia: http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado)
¿Qué es un Modelo?
Pero, ¿qué significa modelar? La respuesta corta sería: «construir modelos». Sin embargo, esta respuesta nos lleva a otra pregunta: ¿qué es un modelo? La palabra modelo tiene varias acepciones en castellano. Para nosotros en el contexto de UML, un modelo «es una descripción analógica para ayudar a visualizar algo que no se puede observar directamente y que se realiza con un propósito determinado y se destina a un público específico».
A modo de ejemplos, un mapa de transportes de una ciudad, es un modelo de la ciudad en cuestión; un plano de instalaciones sanitarias de un edificio, es un modelo de ese edificio; un dibujo de un dragón, es un modelo de un dragón. En los ejemplos anteriores, nos referimos a representaciones de cosas que no podemos observar, pero de las que nos damos una idea a partir del modelo.
No obstante, hay varios elementos en la definición anterior que necesitamos desmenuzar. Acabamos de decir que un modelo es una descripción analógica para ayudar a visualizar algo que no se puede observar directamente, y que se realiza con un propósito determinado y se destina a un público específico.
Veamos:
La finalidad última de un modelo es la comunicación de algo: un proyecto, un concepto, la descripción física de algún elemento, etc. Precisamente, por esta necesidad de comunicar y porque, además, se destina a un determinado público, con cierto propósito, un modelo es, en definitiva, una abstracción.
¿Qué es UML?
UML es una notación de modelado visual, que utiliza diagramas para mostrar distintos aspectos de un sistema. Si bien muchos destacan que UML es apto para modelar cualquier sistema, su mayor difusión y sus principales virtudes se advierten en el campo de los sistemas de software. Esto no obsta para que muchos profesionales intenten usar UML en situaciones diversas, haciendo uso de esa máxima que dice que «cuando la única herramienta que conocemos es el martillo, aun los tornillos nos parecen clavos».
En la actualidad, UML es un lenguaje de visualización, especificación y documentación de software, basado en trece tipos de diagramas, cada uno con sus objetivos, destinatarios y contexto de uso. Se habla de lenguaje, en cuanto a que es una herramienta de comunicación formal , con una serie de construcciones, una sintaxis y una semántica definidas. Así, los elementos constructivos son diagramas y sus partes, la sintaxis es la descripción de cómo deben realizarse esos diagramas y la semántica define el significado de cada diagrama y elemento de los mismos.
¿Para qué usar UML?
Hay varios usos que se pueden hacer de UML, pero podemos distinguir dos:
En el primer caso, usamos UML para mejorar el entendimiento de alguno o varios aspectos dentro del equipo de desarrollo, entre el equipo de desarrollo y otros interesados en el proyecto, o para documentar aspectos del desarrollo para el mantenimiento posterior del sistema.
Notemos que debido a que UML se utilizará para la comunicación, el énfasis se centrará en facilitarla. Por lo tanto, no deberían sobrecargarse los diagramas con detalles innecesarios, sino colocar solamente aquellos elementos que sean centrales al objetivo de la comunicación. También es conveniente cuidar la distribución de los elementos en el diagrama, usar colores y toda otra cuestión que mejore la legibilidad y la comprensión.
El segundo caso es menos común en general y admite varios matices, aunque suele utilizarse bastante en proyectos grandes o cuando se recurre a metodologías muy formales.
Se trata de emplear a UML como una herramienta de desarrollo en sí misma. La más extrema de estas situaciones se da cuando se hace uso de la metodología conocida como MDD (Model Driven Development o desarrollo guiado por modelos). En este caso, se parte de modelos que surgen del análisis y, mediante una serie de pasos cuidadosamente controlados, se llega al código fuente del sistema, en forma automática.
¿Qué no es UML?
Entre las falacias que se repiten alrededor de UML, una de ellas tiene que ver con que UML es una metodología o proceso.
La otra gran falacia es la asociación de UML con una herramienta específica. Por suerte, este equívoco fue desterrado hace ya varios años.
Por lo tanto, UML no es ni se encuentra asociado a ningún proceso en particular. Tampoco se vincula exclusivamente a ninguna herramienta. Es, ni más ni menos, lo que ya dijimos: una notación de modelado de software, con la cualidad de llevarse bien con la orientación a objetos.
UML, no obstante, tiene algunas limitaciones que hacen que no pueda usarse para modelar cualquier aspecto de un producto de software. Por ejemplo, no hay un diagrama para modelar interfaces de usuario y no hay ninguna construcción para especificar requisitos no funcionales, entre otras falencias.
Sin embargo, UML admite extensiones, y hay mucho trabajo realizado en ellas para atacar los déficit antes mencionados, y para muchas otras cuestiones.
(Referencia: Fontela, Carlos. UML: modelado de software para profesionales. – 1a. ed. – Buenos Aires : Alfaomega Grupo Editor Argentino, 2011 . 184 pp)