El Lenguaje Unificado De Modelado
El Lenguaje Unificado de Modelado pre-escribe un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos, y describe la semántica esencial de lo que estos diagramas y símbolos significan. Mientras que ha habido muchas notaciones y métodos usados para el diseño orientado a objetos, ahora los modeladores sólo tienen que aprender una única notación. Tal como indica su nombre, UML es un lenguaje de modelado. Un modelo es una simplificación de la realidad. El objetivo del modelado de un sistema es capturar las partes esenciales del sistema. Para facilitar este modelado, se realiza una abstracción y se plasma en una notación gráfica. Esto se conoce como modelado visual. El modelado visual permite manejar la complejidad de los sistemas a analizar o diseñar. De la misma forma que para construir una choza no hace falta un modelo, cuando se intenta construir un sistema complejo 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 diseño de los sistemas software como para la arquitectura hardware donde se ejecuten.
UML se puede usar para modelar distintos tipos de sistemas: sistemas de software, sistemas de hardware, y organizaciones del mundo real. UML ofrece nueve diagramas en los cuales modelar sistemas: • Diagramas de Casos de Uso para modelar los procesos “business”. • Diagramas de Secuencia para modelar el paso de mensajes entre objetos. • Diagramas de Colaboración para modelar interacciones entre objetos. • Diagramas de Estado para modelar el comportamiento de los objetos en el sistema. • Diagramas de Actividad para modelar el comportamiento de los Casos de Uso, objetos u operaciones. • Diagramas de Clases para modelar la estructura estática de las clases en el sistema.
• Diagramas de Objetos para modelar la estructura estática de los objetos en el sistema. • Diagramas de Componentes para modelar componentes. • Diagramas de Implementación para modelar la distribución del sistema.
UML es una consolidación de muchas de las notaciones y conceptos más usados orientados a objetos. Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson, creadores de tres de las metodologías orientadas a objetos más populares.
Desde hace mucho tiempo, en diversos campos de trabajo, los ingenieros o especialistas en sus áreas han buscado constantemente crear sus propios diseños o modelos conceptuales y/o estructurales de trabajo, generalmente, basándose en sus criterios personales o criterios propios de una organización. Debido a que esto genera una falta de estandarización, se necesitaba una herramienta o entorno por medio del cual se pudiera hablar en un mismo lenguaje, y allí entra el UML.
Para empezar, es necesario destacar que el UML no es un método. UML no prescribe un proceso o método estándar para desarrollar un sistema.
Shlaer/Mellor countinúan actualizando su método continuamente (la actualización más reciente es el OOA96 report), y recientemente publicaron una guía sobre cómo usar la notación UML con Shlaer/Mellor. • Fusion: Desarrollado en Hewlett Packard a mediados de los noventa como primer intento de un método de diseño orientado a objetos estándar. Combina OMT y Booch con tarjetas CRC y métodos formales.
Hay varias metodologías existentes; entre las más populares se incluyen las siguientes: • Catalysis: Un método orientado a objetos que fusiona mucho del trabajo reciente en métodos orientados a objetos, y además ofrece técnicas específicas para modelar componentes distribuidos. • Objetory: Un método de Caso de Uso guiado para el desarrollo, creado por Ivar Jacobson. • Shlaer/Mellor: El método para diseñar sistemas de tiempo real, puesto en marcha por Sally Shlaer y Steven Mellor en dos libros de 1991, Ciclos de vida de Objetos, modelando el Mundo en Estados y Ciclos de vida de Objetos, Modelando el mundo en Datos (Prentice Hall).
• OMT: La Técnica de Modelado de Objetos fue desarrollada por James Rumbaugh y otros, y publicada en el libro de gran influencia "Diseño y Modelado Orientado a Objetos" (Prentice Hall, 1991). Un método que propone análisis y diseño ’iterative’, más centrado en el lado del análisis. • Booch: Parecido al OMT, y también muy popular, la primera y segunda edición de "Diseño Orientado a Objetos, con Aplicaciones" (Benjamin Cummings, 1991 y 1994), (ObjectOriented Design, With Applications), detallan un método ofreciendo también diseño y análisis ’iterative’, centrándoso en el lado del diseño.
de UML son muchos, pero se pueden sintetizar sus funciones: • Visualizar: UML permite expresar de una forma gráfica un sistema de forma que otro lo puede entender. • Especificar: UML permite especificar cuáles son las características de un sistema antes de su construcción. • Construir: A partir de los modelos especificados se pueden construir los sistemas diseñados. • Documentar: Los propios elementos gráficos sirven como documentación del sistema desarrollado que pueden servir para su futura revisión.
Elementos
Diagramas
• • • •
Diagrama de clase Diagrama de objeto Diagrama de caso de uso Diagrama de secuencia Diagrama de colaboración Diagrama de estado Diagrama de actividad Diagrama de componente
Elementos de estructura Elementos de comportamiento Elementos de agrupamiento Elementos de anotación
Relaciones • • •
Relaciones de asociación Relaciones de dependencia Relaciones de generalización
Los diagramas más interesantes (y los más usados) son los de casos de uso, clases y secuencia. El diagrama de casos de usos representa gráficamente los casos de uso que tiene un sistema. Se define un caso de uso como cada interacción supuesta con el sistema a desarrollar, donde se representan los requisitos funcionales. Es decir, se está diciendo lo que tiene que hacer un sistema y cómo. En la figura lateral se muestra un ejemplo donde el entorno es un sistema de ventas de taquilla para entradas de cine, donde se muestran tres actores (los clientes, los taquilleros y los jefes de taquilla) y las operaciones que pueden realizar (sus roles).
El diagrama de clases muestra un conjunto de clases, interfaces y sus relaciones. Éste es el diagrama más común a la hora de describir el diseño de los sistemas orientados a objetos. En la figura lateral se muestran las clases globales, sus atributos y las relaciones de una posible solución al problema de la venta de entradas.
En el diagrama de secuencia se muestra la interacción de los objetos que componen un sistema de forma temporal.
REGLAS DEL UML Los bloques de construcción del UML no se pueden mostrar todos ellos juntos de una forma aleatoria. Al igual que cualquier otro lenguaje, el UML tiene una serie de reglas que especifican lo que un modelo bien formado debería contemplar. Un modelo bien formado es un modelo semánticamente consistente consigo mismo y en armonía con el resto de los modelos con los que se relaciona.
El UML posee reglas semánticas para: • Nombres: ¿Cómo podemos llamar a las cosas, relaciones y diagramas? • Ámbito: ¿Cuál es el contexto que da un significado específico a un nombre? • Visibilidad: ¿Cuántos de esos nombres van a ser vistos y usados por otros? • Integridad: ¿Cuántas cosas se relacionan unas con otras de manera apropiada y consistente? • Ejecución: ¿Qué significa realmente ejecutar o simular un modelo dinámico?
NOTACIÓN BASICA DE UML Notas Una nota sirve para añadir cualquier tipo de comentario a un diagrama o a un elemento de un diagrama. Es un modo de indicar información en un formato libre, cuando la notación del diagrama en cuestión no nos permite expresar dicha información de manera adecuada.
Una nota se representa como un rectángulo con una esquina doblada con texto en su interior.
NOTACIÓN BASICA DE UML Dependencias La relación de dependencia entre dos elementos de un diagrama significa que un cambio en el elemento destino puede implicar un cambio en el elemento origen (por tanto, si cambia el elemento destino habría que revisar el elemento origen). Una dependencia se representa por medio de una línea de trazo discontinuo entre los dos elementos con una flecha en su extremo. El elemento dependiente es el origen de la flecha y el elemento del que depende es el destino (junto a él está la flecha).
DIAGRAMAS DE ESTRUCTURA ESTATICA Con el nombre de Diagramas de Estructura Estática se engloba tanto al Modelo Conceptual de la fase de Análisis como al Diagrama de Clases de la fase de Diseño. Ambos son distintos conceptualmente, mientras el primero modela elementos del dominio el segundo presenta los elementos de la solución software. Sin embargo ambos comparten
la misma notación para los elementos que los forman (clases y objetos) y las relaciones que existen entre los mismos (asociaciones).
DIAGRAMAS DE ESTRUCTURA ESTATICA Con el nombre de Diagramas de Estructura Estática se engloba tanto al Modelo Conceptual de la fase de Análisis como al Diagrama de Clases de la fase de Diseño. Ambos son distintos conceptualmente, mientras el primero modela elementos del dominio el segundo presenta los elementos de la solución software. Sin embargo, ambos comparten la misma notación para los elementos que los forman (clases y objetos) y las relaciones que existen entre los mismos (asociaciones).
Una clase
se representa mediante una caja subdividida en tres partes: En la superior se muestra el nombre de la clase, en la media los atributos y en la inferior las operaciones. Una clase puede representarse de forma esquemática (plegada), con los detalles como atributos y operaciones suprimidos, siendo entonces tan solo un rectángulo con el nombre de la clase. En la Figura lateral se ve cómo una misma clase puede representarse a distinto nivel de detalle según interese, y según la fase en la que se esté.
DIAGRAMAS DE ESTRUCTURA ESTATICA Un objeto
se representa de la misma forma que una clase. En el compartimento superior aparecen el nombre del objeto junto con el nombre de la clase subrayados, según la siguiente sintaxis: nombre_del_objeto: nombre_de_la_clase. Puede representarse un objeto sin un nombre específico, entonces sólo aparece el nombre de la clase.
Las asociaciones
entre dos clases se representan mediante una línea que las une. La línea puede tener una serie de elementos gráficos que expresan características particulares de la asociación. A continuación se verán los más importantes de entre dichos elementos gráficos.
DIAGRAMAS DE ESTRUCTURA ESTATICA Asociaciones N-Arias
Herencia
En el caso de una asociación en la que participan más de dos clases, las clases se unen con una línea a un diamante central. Si se muestra multiplicidad en un rol, representa el número potencial de tuplas de instancias en la asociación cuando el resto de los N-1 valores están fijos.
La relación de herencia es la misma que se utiliza en el término de biología, representa la capacidad de heredar características de una clase “Padre” por una clase “Hija”. Se representa mediante un triángulo en el extremo de la relación que corresponde a la clase más general o clase “padre”. Si se tiene una relación de herencia con varias clases subordinadas, pero en un diagrama concreto no se quieren poner todas, esto se representa mediante puntos suspensivos.
Navegabilidad En un extremo de una asociación se puede indicar la navegabilidad mediante una flecha. Significa que es posible "navegar" desde el objeto de la clase origen hasta el objeto de la clase destino. Se trata de un concepto de diseño, que indica que un objeto de la clase origen conoce al (los) objeto(s) de la clase destino, y por tanto puede llamar a alguna de sus operaciones.
Elementos derivados Un elemento derivado es aquel cuyo valor se puede calcular a partir de otros elementos presentes en el modelo, pero que se incluye en el modelo por motivos de claridad o como decisión de diseño. Se representa con una barra “/” precediendo al nombre del elemento derivado.
CONCLUSIONES Los investigadores, aficionados, especialistas y profesionales en general que abarcan estas ramas de conocimiento de la programación, están continuamente actualizando sus conocimientos sobre las nuevas herramientas que pueden ser utilizadas y explotadas para desarrollar nuevo software, que puede incluir programas de aplicación e incluso nuevos entornos de programación que faciliten el trabajo de otros programadores. Anteriormente, el programar era una tarea muy compleja. Programar representaba una gran inversión de trabajo, pues el lenguaje que debía dominar el programador para su trabajo tendía a un grado de bajo nivel, es decir, basado en el lenguaje de máquina. La programación de aquel entonces requería recordar diversas cantidades de códigos, lo que significa una labor constante y atenuante. Por esta razón, se debía idear un método o métodos que hicieran más sencilla la tarea de programar y se fueron desarrollando nuevos lenguajes que poco a poco tendieron a lo que se conoce como la orientación a objetos. La orientación a objetos le ha permitido al programador tener más libertad y no tener que controlar cada estructura del programa porque ahora este posee una interfaz que lo capacita a almacenar la información que posee y colocarla a disposición del usuario para su manejo y de este modo crear programas mucho más complejos y lenguajes mucho más amigables o compatibles a las necesidades del mundo actual como es el caso del lenguaje de UML.