Cualquier rama de ingeniera o arquitectura ha en- contrado til desde hace mucho tiempo la representa- cin de los diseos de forma grfica. Desde los inicios de la informtica se han estado utilizando distintas formas de representar los diseos de una forma ms bien personal o con algn modelo grfico. La falta de estandarizacin en la manera de representar grfica- mente un modelo impeda que los diseos grficos realizados se pudieran compartir fcilmente entre distintos diseadores. El lenguaje UML tiene una notacin grfica muy expresiva que permite representar en mayor o menor medida todas las fases de un proyecto informtico: desde el anlisis con los casos de uso, el diseo con los diagramas de clases, objetos, etc., hasta la imple- mentacin y configuracin con los diagramas de des- pliegue. HISTORIA DE UML El lenguaje UML comenz a gestarse en octubre de 1994 [1], cuando Rumbaugh se uni a la compaa Rational fundada por Booch (dos reputados investiga- dores en el rea de metodologa del software). El ob- jetivo de ambos era unificar dos mtodos que haban desarrollado: el mtodo Booch y el OMT (Object Mode- lling Tool ). El primer borrador apareci en octubre de 1995. En esa misma poca otro reputado investigador, Jacobson, se uni a Rational y se incluyeron ideas su- yas. Estas tres personas son conocidas como los tres amigos. Adems, este lenguaje se abri a la colabora- cin de otras empresas para que aportaran sus ideas. Todas estas colaboraciones condujeron a la definicin de la primera versin de UML.
Figura 1: Logo de UML Se necesitaba por tanto un lenguaje no slo para comunicar las ideas a otros desarrolladores sino tam- bin para servir de apoyo en los procesos de anlisis de un problema. Con este objetivo se creo el Lenguaje Unificado de Modelado (UML: Unified Modeling Lan- guage). UML se ha convertido en ese estndar tan an- siado para representar y modelar la informacin con la que se trabaja en las fases de anlisis y, especialmente, de diseo. 1 Booch'91 OMT-1 Otros OMT-2 UML 0.8 91 93 95 UML 0.9 96 OOSE UML 1.0 UML 1.1 Aprobado como estndar por OMG 98 UML 1.2 99 00 UML 1.4 02 UML 2.0 Cambios menores Revisin por parte del pblico Booch'93 UML 1.3 97
Figura 2: Evolucin de UML Esta primera versin se ofreci a un grupo de tra- bajo para convertirlo en 1997 en un estndar del OMG (Object Management Group http://www.omg.org). Este grupo, que gestiona estndares relacionados con la tecnologa orientada a objetos (metodologas, bases de datos objetuales, CORBA, etc.), propuso una serie de modificaciones y una nueva versin de UML (la 1.1), que fue adoptada por el OMG como estndar en noviembre de 1997. Desde aquella versin han habido varias revisiones que gestiona la OMG Revision Task Force. La ltima versin aprobada es la 1.4. En estos momentos se est desarrollando una nueva versin en la que se incluirn cambios importantes (principalmente aadir nuevos diagramas) que conducirn a la versin 2.0 planificada para fines del 2002. MODELADO VISUAL Tal como indica su nombre, UML es un lenguaje de modelado. Un modelo es una simplificacin de la realidad. El objetivo del modelado de un sistema es capturar las partes esenciales del sistema. Para facilitar este modelado, se realiza una abstraccin y se plasma en una notacin grfica. Esto se conoce como mode- lado visual. El modelado visual permite manejar la compleji- dad de los sistemas a analizar o disear. De la misma forma que para construir una choza no hace falta un modelo, cuando se intenta construir un sistema com- plejo como un rascacielos, es necesario abstraer la complejidad en modelos que el ser humano pueda entender. UML sirve para el modelado completo de sistemas complejos, tanto en el diseo de los sistemas software como para la arquitectura hardware donde se ejecuten. Otro objetivo de este modelado visual es que sea independiente del lenguaje de implementacin, de tal forma que los diseos realizados usando UML se pueda implementar en cualquier lenguaje que soporte las posibilidades de UML (principalmente lenguajes orientados a objetos). UML es adems un mtodo formal de modelado. Esto aporta las siguientes ventajas: Mayor rigor en la especificacin. Permite realizar una verificacin y validacin del modelo realizado. Se pueden automatizar determinados procesos y permite generar cdigo a partir de los mode- los y a la inversa (a partir del cdigo fuente ge- nerar los modelos). Esto permite que el modelo y el cdigo estn actualizados, con lo que siem- pre se puede mantener la visin en el diseo, de ms alto nivel, de la estructura de un proyecto. QU ES UML? UML es ante todo un lenguaje. Un lenguaje pro- porciona un vocabulario y una reglas para permitir una comunicacin. En este caso, este lenguaje se cen- tra en la representacin grfica de un sistema. Este lenguaje nos indica cmo crear y leer los mo- delos, pero no dice cmo crearlos. Esto ltimo es el objetivo de las metodologas de desarrollo. Las objetivos de UML son muchos, pero se pue- den sintetizar sus funciones: Visualizar: UML permite expresar de una for- ma grfica un sistema de forma que otro lo puede entender. Especificar: UML permite especificar cules son las caractersticas de un sistema antes de su construccin. 2 Diagrama de colaboracin. Construir: A partir de los modelos especifica- dos se pueden construir los sistemas diseados. Diagrama de estados. Documentar: Los propios elementos grficos sirven como documentacin del sistema des- arrollado que pueden servir para su futura re- visin. Diagrama de actividades. Diagrama de componentes. Diagrama de despliegue. Aunque UML est pensado para modelar sistemas complejos con gran cantidad de software, el lenguaje es los suficientemente expresivo como para modelar sistemas que no son informticos, como flujos de trabajo (workflow ) en una empresa, diseo de la estruc- tura de una organizacin y por supuesto, en el diseo de hardware. Los diagramas ms interesantes (y los ms usados) son los de casos de uso, clases y secuencia, por lo que nos centraremos en stos. Pare ello, se utilizar ejem- plos de un sistema de venta de entradas de cine por Internet. El diagrama de casos de usos representa grficamente los casos de uso que tiene un sistema. Se define un caso de uso como cada interaccin supuesta con el sistema a desarrollar, donde se representan los requisi- tos funcionales. Es decir, se est diciendo lo que tiene que hacer un sistema y cmo. En la figura 3 se mues- tra un ejemplo de casos de uso, donde se muestran tres actores (los clientes, los taquilleros y los jefes de taquilla) y las operaciones que pueden realizar (sus roles). Un modelo UML esta compuesto por tres clases de bloques de contruccin: Elementos: Los elementos son abstracciones de cosas reales o ficticias (objetos, acciones, etc.) Relaciones: relacionan los elementos entre s. Diagramas: Son colecciones de elementos con sus relaciones. El diagrama de clases muestra un conjunto de clases, interfaces y sus relaciones. ste es el diagrama ms comn a la hora de describir el diseo de los sistemas orientados a objetos. En la figura 4 se muestran las clases globales, sus atributos y las relaciones de una posible solucin al problema de la venta de entradas. Veamos con mayor detalle los diagramas de UML. DIAGRAMAS UML Un diagrama es la representacin grfica de un conjunto de elementos con sus relaciones. En concre- to, un diagrama ofrece una vista del sistema a mode- lar. Para poder representar correctamente un sistema, UML ofrece una amplia variedad de diagramas para visualizar el sistema desde varias perspectivas. UML incluye los siguientes diagramas: En el diagrama de secuencia se muestra la interaccin de los objetos que componen un sistema de forma temporal. Siguiendo el ejemplo de venta de entradas, la figura 5 muestra la interaccin de crear una nueva sala para un espectculo. El resto de diagramas muestran distintos aspectos del sistema a modelar. Para modelar el comportamien- to dinmico del sistema estn los de interaccin, colabora- cin, estados y actividades. Los diagramas de componentes y despliegue estn enfocados a la implementacin del sistema. Diagrama de casos de uso. Diagrama de clases. Diagrama de objetos. Diagrama de secuencia. 3
Figura 3: Diagrama de casos de uso
Figura 4: Diagrama de clases. 4
Figura 5: Diagrama de secuencia. PROCESO DE DESARROLLO Aunque UML es bastante independiente del pro- ceso de desarrollo que se siga, los mismos creadores de UML han propuesto su propia metodologa de desarrollo, denominada el Proceso Unificado de Desarrollo [2]. El Proceso Unificado est basado en componen- tes, lo cual quiere decir que el sistema software en construccin est formado por componentes software interconectados a travs de interfaces bien definidos. Adems, el Proceso Unificado utiliza el UML para expresar grficamente todos los esquemas de un sis- tema software. Pero, realmente, los aspectos que defi- nen este Proceso Unificado son tres: es iterativo e incremental, dirigido por casos de uso y centrado en la arquitectura [3]: Dirigido por casos de uso: Basndose en los casos de uso, los desarrolladores crean una serie de modelos de diseo e implementacin que los llevan a cabo. Adems, estos modelos se vali- dan para que sean conformes a los casos de uso. Finalmente, los casos de uso tambin sir- ven para realizar las pruebas sobre los compo- nentes desarrollados. Centrado en la arquitectura: En la arquitectura de la construccin, antes de construir un edificio ste se contempla desde varios puntos de vista: estructura, conducciones elctricas, fontanera, etc. Cada uno de estos aspectos est represen- tado por un grfico con su notacin corres- pondiente. Siguiendo este ejemplo, el concepto de arquitectura software incluye los aspectos estticos y dinmicos ms significativos del sis- tema. Iterativo e incremental: Todo sistema informtico complejo supone un gran esfuerzo que puede durar desde varios meses hasta aos. Por lo tanto, lo ms prctico es dividir un proyecto en varias fases. Actualmente se suele hablar de ci- clos de vida en los que se realizan varios reco- rridos por todas las fases. Cada recorrido por las fases se denomina iteracin en el proyecto en la que se realizan varios tipos de trabajo (denominados flujos). Adems, cada iteracin parte de la anterior incrementado o revisando la funcionalidad implementada. Se suele deno- minar proceso. Ver figura 6. 5 Etapas Flujos de trabajo fundamentales Inicio Elaboracin Construccin Transicin
Figura 6: Proceso iterativo e incremental Resumiendo, el Proceso Unificado es un modelo complejo con mucha terminologa propia, pensado principalmente para el desarrollo de grandes proyec- tos. Es un proceso que puede adaptarse y extenderse en funcin de las necesidades de cada empresa. CONCLUSIONES Es fcil predecir que UML ser el lenguaje de mo- delado de software de uso universal. Las principales razones para ello son: En el desarrollo han participado investigadores de reconocido prestigio. Ha sido apoyado por prcticamente todas las empresas importantes de informtica. Se ha aceptado como un estndar por la OMG. Prcticamente todas las herramientas CASE y de desarrollo la han adaptado como lenguaje de modelado. En resumen, UML resuelve de forma bastante sa- tisfactoria un viejo problema del desarrollo de softwa- re como es su modelado grfico. Adems, se ha llega- do a una solucin unificada basada en lo mejor que haba hasta el momento, lo cual lo hace todava ms excepcional. REFERENCIAS 1. G. Booch, J. Rumbaugh y I. Jacobson, "El Lenguaje Unificado de Modelado", Addison Wesley, 1999 2. I. Jacobson, G. Booch, J. Rumbaugh , "El Proceso Unificado de Desarrollo", Addision Wesley, 2000 3. E. Hernndez, J. Hernndez, C. Lizandra, "C++ Es- tandar", ITP Paraninfo 2001. 6