UML Java

20
¿QUE ES UML? ÍNDICE PRESENTACIÓN ÍNDICE 1 INTRODUCCIÓN 2 ¿QUÉ ES UML? 2.1 DIAGRAMA DE CLASES 2.2 RELACIONES ENTRE CLASES 2.3 EJEMPLO DE DIAGRAMA DE CLASES 3 CONCLUSIÓN 4 BIBLIOGRAFÍA

Transcript of UML Java

Page 1: UML Java

¿QUE ES UML?

ÍNDICE

PRESENTACIÓN ÍNDICE1 INTRODUCCIÓN2 ¿QUÉ ES UML?2.1 DIAGRAMA DE CLASES2.2 RELACIONES ENTRE CLASES2.3 EJEMPLO DE DIAGRAMA DE CLASES3 CONCLUSIÓN4 BIBLIOGRAFÍA

Page 2: UML Java

1.- INTRODUCCIÓN

El Lenguaje Unificado de Modelado prescribe 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.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.

En el presente documento se abocará a la información de los Diagramas de Clases.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.En 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño orientado a objetos, publicó una petición con propósito de un meta modelo orientado a objetos de semántica y notación estándares. UML, en su versión 1.0, fue propuesto como una respuesta a esta petición en enero de 1997. Hubo otras cinco propuestas rivales. Durante el transcurso de 1997, los seis promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado de UML, llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997.

Page 3: UML Java

2.- ¿QUE ES UML?

UML (Unified Modeling Language) es un lenguaje que permite modelar, construir y documentar los elementos que forman un sistema software orientado a objetos.

UML es una técnica para la especificación sistemas en todas sus fases. Nació en 1994 cubriendo los aspectos principales de todos los métodos de diseño antecesores y, precisamente, los padres de UML son Grady Booch, autor del método Booch; James Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y Objectory. La versión 1.0 de UML fue liberada en Enero de 1997 y ha sido utilizado con éxito en sistemas construidos para toda clase de industrias alrededor del mundo: hospitales, bancos, comunicaciones, aeronáutica, finanzas, etc.Los principales beneficios de UML son:• Mejores tiempos totales de desarrollo (de 50 % o más).• Modelar sistemas (y no sólo de software) utilizando conceptos orientados a objetos.• Establecer conceptos y artefactos ejecutables.• Encaminar el desarrollo del escalamiento en sistemas complejos de misión crítica.• Crear un lenguaje de modelado utilizado tanto por humanos como por máquinas.• Mejor soporte a la planeación y al control de proyectos.• Alta reutilización y minimización de costos.

Page 4: UML Java

En UML 2.0 hay 13 tipos diferentes de diagramas. Para comprenderlos de manera concreta, a veces es útil categorizarlos jerárquicamente:--Diagramas de estructura enfatizan en los elementos que deben existir en el sistema modelado:1. Diagrama de clases2. Diagrama de componentes3. Diagrama de objetos4. Diagrama de estructura compuesta (UML 2.0) 5. Diagrama de despliegue6. Diagrama de paquetes

--Diagramas de comportamiento enfatizan en lo que debe suceder en el sistema modelado: 7. Diagrama de actividades8. Diagrama de casos de uso9. Diagrama de estados

--Diagramas de Interacción, un subtipo de diagramas de comportamiento, que enfatiza sobre el flujo de control y de datos entre los elementos del sistema modelado:10. Diagrama de secuencia11. Diagrama de comunicación12. Diagrama de tiempos (UML 2.0)13. Diagrama de vista de interacción (UML 2.0)

UML es un lenguaje para hacer modelos y es independiente de los métodos de análisis y diseño. Existen diferencias importantes entre un método y un lenguaje de modelado. Un método es una manera explícita de estructurar el pensamiento y las acciones de cada individuo. Además, el método le dice al usuario qué hacer, cómo hacerlo, cuándo hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece de estas instrucciones. Los métodos contienen modelos y esos modelos son utilizados para describir algo y comunicar los resultados del uso del método.Un modelo es expresado en un lenguaje de modelado. Un lenguaje de modelado consiste de vistas, diagramas, elementos de modelo ¾ los símbolos utilizados en los modelos ¾ y un conjunto de mecanismos generales o reglas que indican cómo utilizar los elementos. Las reglas son sintácticas, semánticas y pragmáticas.

Page 5: UML Java

--Vistas: Las vistas muestran diferentes aspectos del sistema modelado. Una vista no es una gráfica, pero sí una abstracción que consiste en un número de diagramas y todos esos diagramas juntos muestran una "fotografía" completa del sistema. Las vistas también ligan el lenguaje de modelado a los métodos o procesos elegidos para el desarrollo. Las diferentes vistas que UML tiene son:• Vista Use-Case: Una vista que muestra la funcionalidad del sistema como la perciben los actores externos.• Vista Lógica: Muestra cómo se diseña la funcionalidad dentro del sistema, en términos de la estructura estática y la conducta dinámica del sistema.• Vista de Componentes: Muestra la organización de los componentes de código.• Vista Concurrente: Muestra la concurrencia en el sistema, direccionando los problemas con la comunicación y sincronización que están presentes en un sistema concurrente.• Vista de Distribución: muestra la distribución del sistema en la arquitectura física con computadoras y dispositivos llamados nodos. --Diagramas: Los diagramas son las gráficas que describen el contenido de una vista. UML tiene nueve tipos de diagramas que son utilizados en combinación para proveer todas las vistas de un sistema: diagramas de caso de uso, de clases, de objetos, de estados, de secuencia, de colaboración, de actividad, de componentes y de distribución.--Símbolos o Elementos de modelo: Los conceptos utilizados en los diagramas son los elementos de modelo que representan conceptos comunes orientados a objetos, tales como clases, objetos y mensajes, y las relaciones entre estos conceptos incluyendo la asociación, dependencia y generalización. Un elemento de modelo es utilizado en varios diagramas diferentes, pero siempre tiene el mismo significado y simbología.--Reglas o Mecanismos generales: Proveen comentarios extras, información o semántica acerca del elemento de modelo; además proveen mecanismos de extensión para adaptar o extender UML a un método o proceso específico, organización o usuario.(Unified Modeling Language Reference Manual, The Second Edition, 2004)

Page 6: UML Java

2.1 DIAGRAMA DE CLASESUn diagrama de clases es un tipo de diagrama estático que describe la estructura de un sistema mostrando sus clases, atributos y las relaciones entre ellos. Los diagramas de clases son utilizados durante el proceso de análisis y diseño de los sistemas, donde se crea el diseño conceptual de la información que se manejará en el sistema, y los componentes que se encargarán del funcionamiento y la relación entre uno y otro. En un diagrama de clases se pueden distinguir principalmente dos elementos: clases y sus relaciones.

Page 7: UML Java

Un diagrama de clases está compuesto por los siguientes elementos:• Clase: atributos, métodos y visibilidad.• Relaciones: Herencia, Composición, Agregación, Asociación y Uso.

CLASES: La clase es la unidad básica que encapsula toda la información de un objeto a través de la cual podemos modelar el entorno en estudio. En UML, una clase es representada por un rectángulo que posee tres divisiones (ver la figura 1).Figura 1: Representación de una clase en UML

En donde:--El rectángulo superior contiene el nombre de la clase--El rectángulo intermedio contiene los atributos (o variables de instancia) que caracterizan a la clase (pueden ser prívate, protected o public).--El rectángulo inferior contiene los métodos u operaciones, los cuales son la forma como interactúa el objeto con su entorno (dependiendo de la visibilidad: private, protected  o public ).Natalia del Carmen Vázquez FernándezPor ejemplo, podemos representar una clase denominada Figura que contiene dos atributos (lado 1 y lado 2) y 3 métodos (método constructor Figura, método área y método perímetro), de la siguiente manera:Figura 2, representación de una clase en UML

Page 8: UML Java

Al analizar la representación de una clase en UML podemos encontrar lo sig.:Atributos y Métodos:

-Atributos:

Los atributos o características de una Clase pueden ser de tres tipos, los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:

public (+, ): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accsesible desde todos lados.

private (-, ): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden accesar).

protected (#, ): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de las subclases que se deriven (ver herencia).

-Métodos:

Los métodos u operaciones de una clase son la forma en cómo ésta interactúa con su entorno, éstos pueden tener las características:

public (+, ): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

Page 9: UML Java

private (-, ): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden accesar).

protected (#, ): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accesado por métodos de la clase además de métodos de las subclases que se deriven (ver herencia).

2.2 RELACIONES ENTRE CLASES:

1) Herencia (Especialización/Generalización):  Indica que una clase (clase derivada) hereda los métodos y atributos especificados por una clase (clase base), por lo cual una clase derivada además de tener sus propios métodos y atributos, podrá acceder a las características y atributos visibles de su clase base (public y protected). En la siguiente figura podrá observar un ejemplo de este tipo de relación:Figura 3: Relación de Especialización/Generalización en UML

En este ejemplo se especifica que las clase Alumno y Profesor  heredan de la clase Persona, es decir, Alumno y Profesor  podrán acceder a las características de Persona. También puede tener su respectiva diferenciación, ya que un Alumno puede obtener sus notas previa evaluación realizada por parte de un Profesor.

2) Composición: .

Page 10: UML Java

La composición es un tipo de relación estática, en donde el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye (el objeto base se construye a partir del objeto incluido, es decir, es parte/todo). En la siguiente figura podrá observar un ejemplo de este tipo de relación:

3) Agregación:

La agregación es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye (el objeto base utiliza al incluido para su funcionamiento). En la siguiente figura podrá observar un ejemplo de este tipo de relación:

4) Dependencia o instanciación (uso):

Representa un tipo de relación muy particular, en la que una clase es instanciada (su instanciación es dependiente de otro objeto/clase). Se denota por una flecha punteada. El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación grafica

Page 11: UML Java

que instancia una ventana (la creación del Objeto Ventana está condicionado a la instanciación proveniente desde el objeto Aplicación).

Cabe destacar que el objeto creado (en este caso la Ventana gráfica) no se almacena dentro del objeto que lo crea (en este caso la Aplicación).

5) Asociación:

La relación entre clases conocida como Asociación, permite asociar objetos que colaboran entre sí. Cabe destacar que no es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro. En la siguiente figura podrá observar un ejemplo de este tipo de relación:

Del ejemplo se puede deducir que una persona puede usa diferentes tipos de ropa(varias ropas), en cambio una ropa solo puede ser usada por sólo una persona en un momento determinado.Los elementos adicionales que pueden aparecer en una relación de este tipo son los siguientes:

--Rol: Identifica con nombres a los elementos que aparecen en los extremos de la línea que denota la relación, dicho nombre describe la semántica que tiene la relación en el sentido indicado.

--Multiplicidad:La multiplicidad de una relación determina cuantos objetos de cada tipo intervienen en la relación. Presenta las siguientes características:

Page 12: UML Java

Cada asociación tiene dos multiplicidades (una para cada extremo de la relación)

--Para especificar hay que indicar que la multiplicidad mínima y máxima (mínima...máxima)--Cuando a multiplicidad mínima es 0, la relación es opcional--Una multiplicidad mínima mayor igual que 1 establece una relación obligatoria.

2.3 EJEMPLO DE UN DIAGRAMA DE CLASES

A) En un proceso de comercialización de productos se realiza un análisis para determinar las clases que lo integran y la forma como estas clases se asocian ose vinculan. Se obtiene que las clases que conforman el proceso se pueden resumir en cliente (persona o empresa que hace la compra) y las características de cliente luego de hacer la abstracción correspondiente son las siguientes: código, nombre, apellido, dirección, teléfono Los métodos a la cual responde la clase cliente se detallan en: inclusión, eliminación, modificación, consulta e impresión Si el cliente es personal Se necesita también los atributos de cédula de la persona y número de tarjeta de crédito, pero, si el cliente es empresarial se requieren los datos de su RIF, su límite de crédito, nombre y teléfono de la persona de contacto en esa empresa, si la empresa tiene el beneficio de crédito o no lo tiene y finalmente el monto de los créditos que ha recibido conocido como monto acreditado. Un método especial aplicado a los clientes empresariales es la impresión de su monto acreditado. Otra entidad es la de productos que trabaja conjuntamente con la clase marca. Los datos de producto son: código, nombre y precio y los de marca simplemente el nombre. Los métodos a los que responden las clases son: incluir, modificar, eliminar para ambas clases y adicionalmente la clase producto responde a los métodos consultar e imprimir. Una clase adicional es la de factura que se compone además de la clase detalle de factura. La clase factura opera con los datos principales de la misma, a saber: numero, fecha, impuesto, total y responde a los métodos: ingresar, anular, calcular total e imprimir. El detalle de factura es donde se describe el contenido de la misma y maneja los atributos: cantidad de producto vendido y subtotal. Un método propio de esta entidad es el de calcular el subtotal vendido.

Page 13: UML Java

B) Si desea diseñar un diagrama de clases sobre la información de las reservas de una empresa dedicada al alquiler de automóviles, teniendo en cuenta que:

-Un determinado cliente puede tener en un momento dado hechas varias reservas.-De cada cliente se desean almacenar su DNI, nombre, dirección y teléfono. Además dos clientes se diferencian por un código único.-Cada cliente puede ser avalado por otro cliente de la empresa.-Una reserva la realiza un único cliente pero puede involucrar varios coches.-Es importante registrar la fecha de inicio y final de la reserva, el precio del alquiler de cada uno de los coches, los litros de gasolina en el depósito en el momento de realizar la reserva, el precio total de la reserva y un indicador de si el coche o los coches han sido entregados.-Todo coche tiene siempre asignado un determinado garaje que no puede cambiar. De cada coche se requiere la matricula, el modelo, el color y la marca.-Cada reserva se realiza en una determinada agencia.

Page 14: UML Java

3 CONCLUSIÓN:UML (Unified Modeling Languaje) es un lenguaje que permite modelar, construir y documentar los elementos que conforman un sistema software orientado a objetos.Se ha convertido en el estándar en la industria  debido a que ha sido impulsado por los autores de los tres métodos más usados de orientación a objetos: Grady Booch, Ivar Jacobson y Jim Rumbaugh. En el proceso de creación de UML han participado, no obstante, otras empresas de gran peso en la industria como Microsoft, Hewlett-Packard, Oracle o IBM, así como grupos de analistas y desarrolladores.Un diagrama de clases sirve para visualizar las relaciones entre las clases que involucran el sistema, muestra un conjunto de clases, interfaces y colaboraciones y sus relaciones, gráficamente un diagrama de clases es una colección de vértices y arcos.: Un diagramas de clase es justo un tipo especial de diagrama y comparte propiedades comunes al igual que todos los otros diagramas -un nombre y un contenido gráfico son una proyección dentro de un modelo. Un diagrama de clases comúnmente con tiene lo siguiente:• Clases• Interfaces• Colaboraciones• Dependencia

Page 15: UML Java

• Generalización• Relaciones de asociaciónLos otros diagramas de clase pueden contener notas y restricciones. Los diagramas de clase pueden también contener paquetes o subsistemas ambos de los cuales son usados para agrupar elementos de su modelo. Algunas veces se quieren instancias de lugar en el diagrama de clases, como también especialmente cuando se quiere visualizar el tipo de una instancia (posibilidad dinámica). Entre los usos más comunes están:- Modelado del diseño estático de un sistema. Esta vista en primer lugar soporta los requerimientos funcionales de un sistema - el servicio del sistema debería de proveer este a los usuarios finales.Para el modelo de diseño estático de la vista de un sistema, típicamente se usan diagramas de clases en alguna de estas tres alternativas:1. Modelo del vocabulario de un sistema. El modelo del vocabulario de un sistema involucra tomar decisiones acerca de las cuales son parte del sistema y cuales quedan fuera del ambiente. Los diagramas de clase especifican estas abstracciones y sus responsabilidades.2. Modelado simple de colaboraciones. Una colaboración es una sociedad de clases, interfaces, y otros elementos, estos trabajan juntos para proveer igual comportamiento de colaboración, esto es más grande que la suma de todos los elementos. Por ejemplo, cuando se esta modelando la semántica de una transacción en un sistema distribuido, no se puede fijar la vista en una simple clase, para entender cual irá. Esta semántica es llevada fuera por un conjunto de clases que trabajan juntas. Los diagramas de clases se usan para visualizar y especificar este conjunto de clases y sus relaciones.3. Modelo lógico del esquema de la base de datos. Pensar en un esquema como la heliografía (dibujo) para el diseño conceptual de una base de datos. En muchos dominios se quiere almacenar mucha información persistente en una base de datos relacional o en base de datos orientada a objetos. Se pueden modelar esquemas para estas bases de datos usando diagramas de clases.Las relaciones entre clases juegan un papel muy importante en el modelo de los objetos, las clases al igual que los objetos, no existen de modo aislado, por esta razón existirán relaciones entre clases y entre objetos. Las relaciones entre clases se deben a dos razones:1.- Una relación de clases puede indicar algún tipo de compartición.

2.- Una relación de clases puede indicar algún tipo de conexión semántica.4 Bibliografía:

Los diagramas (Rational Rose 2000 Enterprise Edition)ERIKSSON, Hans-Erik and PENKER, MagnusUML Toolkit" (Wiley Computer Publishing)Comentarios Ing. Carlos Alberto Román Zamitiz (Facultad de Ingeniería, UNAM [email protected]) Profesores UNAM(http://profesores.fi-b.unam.mx/carlos/aydoo)UNAM(http://www.mcc.unam.mx/~cursos/Objetos/Cap8/cap8.html)(El Lenguaje Unificado de Modelado, Addison-Wesley, Madrid, 1999).