Docente: Ing. Juan Alberto Muoz. Lenguaje Unificado de Modelado (LUM o UML, por sus siglas en ingls, Unified Modeling Language).
Lenguaje de modelado de sistemas de software ms conocido y utilizado en la actualidad; est respaldado por el OMG (Object Management Group).
UML ofrece un estndar 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 programacin, esquemas de bases de datos y compuestos reciclados.
Mediante UML es posible establecer la serie de requerimientos y estructuras necesarias para plasmar un sistema de software previo al proceso intensivo de escribir cdigo. 1 En otros trminos, as como en la construccin de un edificio se realizan planos previo a su construccin, en Software se deben realizar diseos en UML previa codificacin de un sistema. 2
Aunque UML es un lenguaje, ste posee ms caractersticas visuales que programticas, mismas que facilitan a integrantes de un equipo multidisciplinario participar e intercomunicarse fcilmente. 3 En los principios de la computacin, los programadores no realizaban anlisis muy profundos sobre el problema a resolver. Hoy en da es necesario contar con un plan bien analizado. Un cliente tiene que comprender que har un equipo de desarrolladores. Adems tiene que ser capaz de sealar cambios si no se han captado claramente sus necesidades. A su vez, el desarrollo es un esfuerzo orientado a equipos, por lo que cada uno de los miembros tiene que saber que lugar toma su trabajo en la solucin final. Conforme aumenta la complejidad del mundo, los sistemas informticos tambin debern crecer en complejidad. En ellos se encuentran diversas piezas de hardware y software que se comunican a grandes distancias mediante una red.
Misma que est vinculada a bases de datos que, a su vez, contienen grandes cantidades de informacin. Si desea crear sistemas que lo involucren con este nuevo milenio Cmo manejar tanta complejidad?
La clave est en organizar el proceso de diseo de tal forma que los analistas, clientes, desarrolladores y otras personas involucradas en el desarrollo del sistema lo comprendan y convengan con l. El UML proporciona tal organizacin.
La necesidad de diseos slidos ha trado consigo la creacin de una notacin de diseo que los analistas, desarrolladores y clientes acepten como pauta (tal como la notacin de esquemas para un electrnico). El UML es esa misma notacin. La concepcin del UML El UML es la creacin de Grady Booch, James Rumbaugh e Ivar Jacobson. Los tres amigos trabajaban en empresas distintas en los 80s y principios de los 90 y cada uno dise su propia metodologa para el anlisis y diseo orientado objetos. Sus metodologas predominaron sobre las de sus competidores. A mediados de los 90 empezaron a intercambiar ideas entre s y decidieron desarrollar su trabajo en conjunto. En 1994 Rumbaugh ingres a Rational Software Corporation, donde ya trabajaba Booch. Jacobson ingres a Rational un ao despus. Los anteproyectos del UML empezaron a circular en la industria del software y las reacciones resultantes trajeron consigo considerables modificaciones. Conforme diversos corporativos vieron que UML era til a sus propsitos se conform un consorcio de UML. Entre los miembros se encuentran DEC, Hewlett-Packard, Intellicorp, Microsoft, Oracle, Texas Instruments y Rational. En 1997 el consorcio produjo la versin 1.0 del UML y lo puso a consideracin de la OMG como respuesta a su propuesta para un lenguaje de modelado estndar. El consorcio aument y gener la versin 1.1, misma que puso nuevamente a consideracin del OMG. El grupo adopt esta versin a finales de 1997. El OMG se encarg de la conservacin del UML y produjo otras dos versiones en 1998. El UML ha llegado a ser el estndar de facto en la industria del software , y su evolucin contina. El objetivo principal cuando se empez a gestar UML era posibilitar el intercambio de modelos entre las distintas herramientas CASE orientadas a objetos del mercado. Para ello era necesario definir una notacin y semntica comn.
Visin general de UML UML es un lenguaje grfico para: Visualizar. Especificar. Construir y Documentar un sistema. Visin general de un UML UML es un lenguaje. Un lenguaje de modelado es un lenguaje cuyo vocabulario y reglas se centran en la representacin conceptual y fsica de un sistema, por lo tanto es un lenguaje estndar para los planos del software. UML es un lenguaje para visualizar. Un programador cuando esta modelando tiene que pensar en: Primero, la comunicacin de esos modelos conceptuales a otros est sujeta a errores a menos que cualquier persona implicada hable del mismo lenguaje. Segundo, que el software no puede entender a menos que se construyan modelos que trasciendan el lenguaje de programacin textual. Tercero, si el desarrollador que escribi el cdigo no dej documentacin sobre los modelos, esa informacin se perder y ser parcialmente reproducible a partir de la implementacin.
UML es un lenguaje para especificar. Especificar, significa construir modelos precisos, no complejos. Y UML cubre las especificaciones de todas las decisiones de anlisis, diseo e implementacin que deben realizarse al desarrollar un sistema de gran cantidad de software. UML es un lenguaje para construir.
En UML, sus modelos pueden conectarse en forma directa a gran variedad de lenguajes de programacin, esta correspondencia permite ingeniera directa: la generacin de cdigo a partir de un modelo UML en un lenguaje de programacin, tambin se puede reconstruir a partir de una implementacin.
UML es un lenguaje para documentar. Una organizacin de software que trabaje bien produce: Requisitos, Arquitectura, Diseo, Cdigo fuente, Planificacin de proyectos Pruebas, Prototipos y Versiones.
UML cubre la documentacin de la arquitectura y proporciona requisitos y pruebas y las actividades de planificacin de proyectos. Bloques de construccin de UML El vocabulario de UML comprende tres tipos de bloques de construccin: Elementos (Cosas). Relaciones. Diagramas.
Los Elementos son las abstracciones que son ciudadanas de primera clase en un modelo, las relaciones ligan estos elementos entre s; el grupo de diagramas comparte colecciones de estos elementos.
Hay 4 tipos de elementos en UML Elementos estructurales
Estos siete elementos son los elementos estructurales bsicos que se pueden incluir en el modelo UML. Tambin existen variaciones de estos siete elementos, tales como actores, seales, procesos, hilos y aplicaciones, documentos, archivos, bibliotecas, pginas y tablas. Elementos de comportamiento Son las partes dinmicas de los modelos UML. Estos son los verbos de un modelo y representan comportamiento en el tiempo y en el espacio.
Interaccin: Es un comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto particular para alcanzar un propsito especifico. Mquina de Estados: Es un comportamiento que especifica las secuencias de estados por las que pasa un objeto o una interaccin durante su vida en respuesta a eventos. Estos dos elementos (interacciones y mquinas de estado) son los elementos de comportamiento que se pueden incluir de un modelo UML, estos elementos estn conectados normalmente a diversos elementos estructurales, principalmente clases, colaboraciones y objetos.
Los Elementos de agrupacin Son las partes organizativas de los modelos UML. Estos son las cajas en las que pueden descomponerse un modelo. Paquete
Mecanismo de propsito general para organizar elementos en grupos. En los paquetes se pueden agrupar los elementos estructurales, de comportamiento e incluso otros elementos de agrupacin. Los paquetes son los elementos de agrupacin bsicos con los cuales se puede organizar un modelo UML. Tambin hay variaciones, tales como los framework, los modelos y los subsistemas.
Estas relaciones son los bloques bsicos de construccin para las relaciones de UML. Existen cuatro tipos de relaciones en UML Dependencias Asociaciones Generalizaciones Realizacin Elementos anotacionales Son las partes explicativas de los modelos de UML. Son los comentarios que se pueden aplicar para describir, iluminar y remarcar algunos elementos de un modelo. Hay un tipo principal de Elementos anotacionales llamado nota. Una nota es simplemente un smbolo para representar las limitaciones y comentarios asociados a un elemento o una coleccin de elementos. Grficamente una nota se representa con un rectngulo con una esquina doblada, junto con un comentario textual o grfico. Diagramas del UML El UML est compuesto por diversos elementos grficos que se combinan para conformar diagramas.
La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cules se les conoce como modelo. El modelo UML de un sistema es similar a un modelo a escala de un edificio junto con la interpretacin del artista del edificio.
Es importante destacar que un modelo UML describe lo que supuestamente har un sistema, pero no dice cmo implementar dicho sistema.
Diagramas de casos de uso. Diagramas de estado.
Diagramas de secuencias. Diagramas de comunicacin o colaboracin. Diagramas de actividades. Diagramas de componentes. Diagramas de distribucin. Diagrama de clases. Diagrama de objetos. Diagrama de colaboraciones. Diagramas de despliegue fsico. Diagramas de estructura o composicin. Diagrama de mquinas de estado . Diagrama de tiempos. Estructura general de los diagramas UML Diagrama de estructura compuesta Un diagrama de estructura compuesta es un tipo de diagrama de estructura esttica en el Lenguaje de Modelado Unificado (UML), que muestra la estructura interna de una clase y las colaboraciones que esta estructura hace posibles. Esto puede incluir partes internas, puertas mediante las cuales, las partes interactan con cada una de las otras o mediante las cuales, instancias de la clase interactan con las partes y con el mundo exterior, y conectores entre partes o puertas. Una estructura compuesta es un conjunto de elementos interconectados que colaboran en tiempo de ejecucin para lograr algn propsito. Cada elemento tiene algn rol definido en la colaboracin.
ANLISIS Y DISEO ORIENTADO A OBJETO (UML)
Fases en que se descompone el proceso de desarrollo OO:
1. Planificacin y Especificacin de Requisitos: Planificacin, definicin de requisitos, conocer los procesos del dominio, etc. 2. Construccin: La construccin del sistema. 3. Instalacin: La puesta en marcha del sistema en el entorno previsto de uso.
La construccin se subdivide en los siguientes: Se analiza el problema a resolver desde la perspectiva de los usuarios y de las entidades externas que van a solicitar servicios al sistema. Anlisis El sistema se especifica en detalle, describiendo cmo va a funcionar internamente para satisfacer lo especificado en el anlisis. Diseo Se lleva lo especificado en el diseo a un lenguaje de programacin. Implementacin
Se llevan a cabo una serie de pruebas para corroborar que el software funciona correctamente y que satisface lo especificado en la etapa de Planificacin y Especificacin de Requisitos. Pruebas Complejidad / Objetos
Entre ms complejo es el sistema que se desea crear ms beneficios presenta el uso de UML ("Unified Modeling Language"), las razones de esto son evidentes, sin embargo, existen dos puntos claves : El primero se debe a que mediante un plano/visin global resulta ms fcil detectar las dependencias y dificultades implcitas del sistema, y la segunda razn radica en que los cambios en una etapa inicial (Anlisis) resultan ms fciles de realizar que en una etapa final de un sistema como lo seria la fase intensiva de codificacin. Puesto que UML es empleado en el anlisis para sistemas de mediana-alta complejidad, era de esperarse que su base radica en otro paradigma empleado en diseos de sistemas de alto nivel que es la orientacin a objetos, por lo que para trabajar en UML puede ser considerado un pre-requisito tener experiencia en un lenguaje orientado a objetos.
Tcnica de modelado de objetos El modelado orientado a objetos es una tcnica de especificacin semiformal para el paradigma orientado a objetos. El Lenguaje de Modelado Unificado (UML, Unified Modeling Language) se ha desarrollado en un intento de unificar las distintas notaciones existentes. El modelado orientado a objetos se ocupa de comprender y analizar la aplicacin y el dominio en el que opera. El punto de partida es la declaracin del problema que hay que resolver. Esta declaracin, que proporciona una visin conceptual del sistema propuesto, puede ser textual o utilizar una tcnica de descripcin ms formal, como la basada en casos de uso. El modelado orientado a objetos consta de tres pasos: modelado de casos de uso, modelado de clases y modelado dinmico. Modelado de Casos de Uso La intencin del modelado de casos de uso es identificar cmo se va a usar el sistema y lo que se espera que haga como respuesta a ese uso. Determina cmo la aplicacin genera los diversos resultados que se requieren (sin considerar el orden de generacin). La informacin se presenta en forma de diagrama de caso de uso y escenarios (escenarios: guiones) asociados. Este paso, que a veces se denomina modelado funcional, est en gran parte orientado a las acciones. Modelado de Clases Determina las clases, sus atributos y las relaciones entre las clases. Esta informacin se presenta en forma de diagramas de clases. Este paso est orientado a los datos.
Modelado Dinmico Determina las acciones realizadas por cada clase y sobre cada clase. Esta informacin se presenta en forma de diagramas de comportamiento. Este paso est orientado a las acciones. Los tres pasos del modelado se realizan realmente en paralelo, puesto que, en el paradigma orientado a objetos, ni los datos ni las acciones tienen prioridad los unos sobre los otros. Se usan varias tcnicas de modelado para comprender los datos, las acciones y las interacciones entre los datos y las acciones. Durante el proceso de modelado, el conocimiento adquirido sobre la aplicacin se representa de distintas formas, cada una de las cuales refleja un aspecto diferente del producto buscado. Los diagramas se actualizan continuamente a medida que se consigue una mejor percepcin del sistema que se est modelando. Finalmente, las perspectivas combinadas proporcionan una comprensin global del producto que sera difcil de alcanzar con una sola tcnica de modelado. Diagramas de clase Los diagramas de clases describen la estructura esttica de un sistema. Las cosas que existen y que nos rodean se agrupan naturalmente en categoras. Una clase es una categora o grupo de cosas que tienen atributos (propiedades) y acciones similares. Un ejemplo puede ser la clase Aviones que tiene atributos como el modelo de avin, la cantidad de motores, la velocidad de crucero y la capacidad de carga til. Entre las acciones de las cosas de esta clase se encuentran: acelerar, elevarse, girar, descender, desacelerar.
Un rectngulo es el smbolo que representa a la clase, y se divide en tres reas. Un diagrama de clases est formado por varios rectngulos de este tipo conectados por lneas que representan las asociaciones o maneras en que las clases se relacionan entre si.
Relaciones en UML Dependencia: es una relacin semntica entre dos elementos, en la cual un cambio a un elemento puede afectar el significado de otro elemento. Asociaciones: es una relacin estructural que describe un conjunto de enlaces, los cuales son conexiones entre objeto y representan una relacin estructural entre un todo y sus partes. Diagramas: un diagrama es la representacin grfica de un conjunto de elementos, visualizando la mayora de las veces como un grafo conexo de nodos (elementos) y arcos (relaciones). Los diagramas se dibujan para visualizar un sistema desde diferentes perspectivas, de forma que un diagrama es una proyeccin de un sistema, un diagrama representa una vista resumida de los elementos que constituyen un sistema. Clases: una clase es una descripcin de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semntica. Las clases pueden representar cosas como hardware, software o solo conceptuales y tambin forman parte de una distribucin equilibrada de responsabilidades en el sistema UML representa una representacin grfica de las clases como se muestra en la figura.
Componentes de las Clases Una clase es una descripcin de un conjunto de objetos que comparten los mimos atributos, operaciones, relaciones y semnticas. Grficamente una clase se representa como un rectngulo, en el cual se describen las caractersticas de los objetos que representa, entre ellos tenemos. 1. Nombre: una clase debe contener un nombre que la identifique, compuesto por cualquier nmero de letras y nmeros exceptuando los dos puntos pues estos se utilizan para separar el nombre de una clase y el paquete que lo contiene. 2. Atributos: es una propiedad de una clase identificada con un nombre, que describe un rango de valores que pueden tomar las instancias de la propiedad. Un atributo representa alguna propiedad del elemento que se est modelando que es compartida por todos los objetos de esa clase, adems, una clase puede o no contener atributos. Por ejemplo un atributo de la clase estudiante es el nombre, apellido, fecha Nacimiento, etc.
3. Operaciones: es una abstraccin de algo que puede hacer un objeto y que es compartido por todos los objetos de la clase. Las clases pueden tener o no operaciones. Ejemplo: La clase estudiante puede tener los objetos generados por ella: matricular, evaluar, aprobar y estas operaciones son comunes a todos los objetos que se describen a travs de la clase estudiante.
4. Responsabilidades: Al crear una clase, se est expresando que todos los objetos de esa clase tienen el mismo tipo de estado y el mismo tipo de comportamiento. De forma ms general los atributos y operaciones son las caractersticas por medio de la cuales se llevan a cabo las responsabilidades de la clase. Grficamente las responsabilidades se pueden expresar en un comportamiento separado al final del icono de la clase.
Usos Comunes de las Clases Las clases se utilizan para modelar y representar el conjunto de elementos de un sistema de manera general (abstracciones), para determinar los problemas que se intenta resolver y as implementar una solucin. Para definir las clases que intervienen dentro de un sistema se recomienda como puntos de partida las siguientes consideraciones: Identificar aquellas cosas que utilizan los usuarios o programadores para describir el problema o la solucin. Identificar las responsabilidades de cada clase y asegurarse que cada clase existe. Identificar los atributos y operaciones necesarios para cumplir sus responsabilidades. Hacer del conjunto de clases y sus responsabilidades un modelo equilibrado donde no existan clase demasiado grandes ni pequeas. Cuando se dibuje una clase hay que mostrar solo aquellas propiedades de la clase que sean importantes, como tambin sus atributos y operaciones Objetos Un objeto se representa de la misma forma que una clase. En el compartimiento superior aparecen el nombre del objeto junto con el nombre de la clase subrayados, segn la siguiente sintaxis: nombre_del_objeto: nombre_de_la_clase Puede representarse un objeto sin un nombre especfico, entonces slo aparece el nombre de la clase.
Asociaciones Es una relacin estructural que especifica que los objetos de un elemento estn conectados con los objetos de otro. Dada una asociacin entre dos clases, se puede navegar desde un objeto de una clase hasta el objeto de otra clase, y viceversa. Una asociacin que conecta dos clases se dice binaria, s conecta ms de dos clases se denomina asociacin n-arias, las asociaciones se utilizarn cuando se quieren representar relaciones estructurales.
Caractersticas de las Asociaciones y operaciones Nombre de la Asociacin y Direccin El nombre de la asociacin se utiliza para describir la naturaleza de la relacin, es opcional y se muestra como un texto que est prximo a la lnea. Se puede aadir un pequeo tringulo negro slido que indique la direccin y permita leer el nombre de la asociacin. En el ejemplo se puede leer la asociacin como Director manda sobre Empleado.
Los nombres de las asociaciones normalmente se incluyen en los modelos para aumentar la legibilidad. Sin embargo, en ocasiones pueden hacer demasiado abundante la informacin que se presenta, con el consiguiente riesgo de saturacin. En ese caso se puede suprimir el nombre de las asociaciones consideradas como suficientemente conocidas. En las asociaciones de tipo agregacin y de herencia no se suele poner el nombre. Multiplicidad La multiplicidad es una restriccin que se pone a una asociacin, que limita el nmero de instancias de una clase que pueden tener esa asociacin con una instancia de la otra clase. Puede expresarse de las siguientes formas: Con un nmero fijo: 1. Con un intervalo de valores: 2.5. Con un rango en el cual uno de los extremos es un asterisco Significa que es un intervalo abierto. Por ejemplo, 2..* significa 2 o ms. Con una combinacin de elementos como los anteriores separados por comas: 1, 3..5, 7, 15..*.Con un asterisco: * . En este caso indica que puede tomar cualquier valor (cero o ms).
Roles Un rol es simplemente la cara que la clase de un extremo de la asociacin presenta a la clase del otro extremo.
Para indicar el papel que juega una clase en una asociacin se puede especificar un nombre de rol. Se representa en el extremo de la asociacin junto a la clase que desempea dicho rol.
Agregacin El smbolo de agregacin es un diamante colocado en el extremo en el que est la clase que representa el todo.