Este documento describe el Lenguaje Unificado de Modelado (UML). UML es un lenguaje gráfico estándar para modelar sistemas de software orientados a objetos. El documento explica el objetivo de UML, sus características, diagramas (casos de uso, clases, objetos, secuencia, etc.) y una breve historia de su desarrollo.
2. El Triángulo de Desarrollo de Software
Proceso
Notación
Herramienta
Visual
3. El Lenguaje Unificado de Modelado
Definición:
El UML es un lenguaje gráfico para la especificación, visualización, construcción y documentación de modelos orientados a objetos que representan sistemas intensivos en software.
= Unified Modeling Language
UML no es un método sino un lenguaje de modelamiento
4. Objetivo del UML
Describir cualquier tipo de sistema en términos de diagramas orientados a objetos
Algunas categorías de Sistemas Sistemas de Información Sistemas de Tiempo Real
Sistemas Embebidos
Sistemas Distribuidos Software de Sistemas Sistemas de Negocios
5. UML toma lo mejor de varios métodos
Booch
Odell
Clasificación
Shlaer-Mellor
Ciclo de vida de objetos
Gamma et. al.
Marcos de trabajo, patrones, notas
Rumbaugh
Jacobson
Meyer
Pre y Post condiciones
Harel
Máquinas de estado
Embly
Singleton clases
Fusion
Wirfs-Brock
Responsabilidades
Descripción de operaciones, numeración de mensajes
6. Características del UML
- Proporciona a los desarrolladores un lenguaje de
modelamiento ampliamente aceptado y listo para usar.
- Integra las mejores prácticas del desarrollo de software.
- Permite la intercambio de modelos entre las diferentes herramientas de software.
- Es independiente del lenguaje de programación y de métodos y procesos particulares de desarrollo de software.
- Proporciona sus propios mecanismos de extensión
- Agrupa los conceptos de orientación a objetos definiendo su significado.
7. Por qué aprender UML
-Porque UML es el lenguaje de modelado de objetos estándar dominante.
-Porque es apoyado por metodólogos y empresas importantes en Tecnologías de Información.
-Porque cuenta con la aprobación de la OMG como notación estándar.
-Porque todas las herramientas modernas proporcionan soporte para UML.
-Porque nos facilita el aprendizaje del enfoque orientado a objetos pues basta con aprender este estándar y no perdernos en toda la jungla de métodos y notaciones existentes.
8. Breve historia del UML
- Los lenguajes de modelado orientados al objeto comenzaron a aparecer a mediados de la década de '70.
- El número de lenguajes que modelaban objetos aumentó de menos de 10 a más de 50 durante el período entre 1989-
1994.
- Muchos de los que utilizaban estos lenguajes no
encontraban satisfacción completa en ninguno de ellos, esto motivó la llamada "Guerra de los Métodos".
9. . . . Breve historia del UML
. . . La “Guerra de los Métodos”
Existían muchos métodos y cada uno tenía un lenguaje de modelado propio.
Esto dificultó el aprendizaje, aplicación, construcción, uso de herramientas, etc.
Pugna entre los distintos gurús que defendían sus propios métodos y simbologías.
Se observa la necesidad de una notación estándar.
10. . . . Breve historia del UML
Ing. J.O.J.I Ingenieria de Software I
El desarrollo del UML comenzó en finales de
1994 en que Grady Booch y Jim Rumbaugh de Rational Software Corporation, comenzaron su trabajo sobre la unificación de los métodos de Booch y de OMT (Object Modeling Technique).
A finales de 1995, Ivar Jacobson y su compañía de Objectory se unieron a Rational y combinaron sus métodos.
Booch, Rumbaugh, y Jacobson, definieron el
UML 0,9 y 0,91 en junio y octubre de 1996.
11. . . . Breve historia del UML
Ing. J.O.J.I Ingenieria de Software I
Sep ‘97 UML 1.1
Ene ‘97 UML 1.0
Jun ‘96 UML 0.9
Oct ‘95 Método Unificado 0.8
Ivar Jacobson se une a
Rational en otoño ‘95
James Rumbaugh se une
Microsoft Oracle IBM, HP Etc.
Use Case
(OOSE)
a Rational en Oct ‘94 OMT Booch
Otros métodos
12. Versiones del UML
1997
(Adoptada por OMG)
1998
(revisión editorial sin cambios significativos)
1999
(revisión menor públicamente disponible)
2000
(planificada una revisión menor)
2001
(planificada una revisión menor)
2002
(planificada una revisión mayor)
<<document>>
UML 1.1
<<document>>
UML 1.2
<<document>>
UML 1.3
<<document>>
UML 1.4
<<document>>
UML 1.5
<<document>>
ISO Publica especificación
<<document>>
UML 2.0
13. Vistas de un modelo
“Un modelo es una descripción completa de un sistema desde una perspectiva concreta”
Vista de requerimientos
Vista
lógica
Vista de
implementación
Vista de
despliegue
Diagrama de Casos de Uso Diagrama de Clases Diagrama de Objetos Diagrama de Secuencia Diagrama de Colaboración Diagrama de Estado
Diagrama de Actividad
Vista de
procesos
Diagrama de Componentes
Diagrama de Despliegue
14. Modelando con UML
Use Case
Diagrams
Use Case
Diagrams
Scenario
Diagrams
Scenario
Diagrams
State
Diagrams
State
Diagrams
Component
Diagrams
Component
Diagrams
State
Diagrams
State
Diagrams
Scenario
Diagrams
Scenario
Diagrams
Use Case
Diagrams
Use Case
Diagrams
State
Diagrams
State
Diagrams
Diagramas de
Diagramas de
Casos de Uso
Diagramas de
Clases
Despliegue Diagramas de
Objetos
Diagramas de
Componentes
Modelo
Diagramas de
Secuencia
Diagramas de
Actividad
Diagramas de
Estados
Diagramas de
Colaboración
15. 1. Diagramas de Casos de Uso
Definición
Un Diagrama de Casos de Uso representa lo que hace el sistema y como se relaciona con su entorno.
Representa los distintos requerimientos que hacen los usuarios de un sistema.
Un diagrama de casos de uso esta compuesto por
- Casos de uso
- Actores
- Relaciones entre ellos
16. Elementos
Caso de Uso (Use Case)
Es una secuencia de acciones realizadas por el sistema que producen un resultado observable y valioso para alguien en particular.
Actor
Un actor es un conjunto externo uniforme de personas, sistemas, o cosas que solicita un servicio al
sistema que estamos modelando.
Nombre del caso de uso
Nombre
17. Relaciones entre los elementos
Relaciones entre actores
La única relación permitida entre los actores es la
Relación de Generalización.
Usuario
Director de
Escuela
Secretaria
18. . . . Relaciones entre los elementos
Relaciones entre un actor y un caso de uso
La única relación permitida es una Asociación y se le conoce como Relación de Comunicación o
<<comunicates>>.
<<comunicates>>
Registra
Matrícula
Secretaria
19. . . . Relaciones entre los elementos
Relaciones entre casos de uso B
Pueden ser de tres tipos:
1. Relación de generalización
El Caso de Uso de A hereda la
especificación del Caso de Uso B. A
Cobranza con tarjeta
Cobranza en efectivo
Cobranza con cheque
Realizar cobranza
20. . . . Relaciones entre los elementos
2. Relación <<include>>
El caso de uso A siempre incluye (o usa) el comportamiento de B.
Ejemplo:
B
<<include>>
A
Registrar matrícula
<<include>>
Validar usuario
Aperturar cursos
<<include>>
21. . . . Relaciones entre los elementos
3. Relación <<extend>>
El caso de uso A, extiende al caso de uso B. A ocurre en casos especiales para extender B.
Ejemplo:
B
<<extend>>
A
Registrar matrícula extemporánea
<<extend>>
Registrar matrícula
22. Ejemplo de Diagrama de Casos de Uso
Caso de uso Registrar Matrícula
<<extend>>
Registrar matrícula extemporánea
Usuario
Registrar matrícula
<<include>>
<<comunicates>>
Validar usuario
Secretaria
Director de
<<include>>
Aperturar cursos
Escuela
<<comunicates>>
23. 2. Diagramas de Clases
Definición
Un Diagrama de Clases muestra Clases (grupos de objetos que tienen las mismas características y comportamiento) y sus relaciones.
Estos diagramas son los más comunes en el modelado de sistemas orientados a objetos.
Un diagrama de clases esta compuesto por
- Clases
- Relaciones entre clases
24. Clases
Definición:
Es un conjunto de objetos que tienen los mismos atributos y comportamiento.
Representación:
Se representa mediante un rectángulo con tres partes:
NombreClase
Atributo1
Atributo2
. . .
Operacion1 operacion2
. . .
Ejemplo:
La Clase Automóvil
Automovil
Matricula Color Velocidad
Arrancar( ) Acelerar( ) Frenar( )
25. Relaciones entre Clases
1.- Relación de Dependencia
2.- Relación de Generalización
3.- Relación de Asociación
3.1.- Asociación de Agregación
3.2.- Asociación de Composición
26. . . . Relaciones entre Clases
1.- Relación de dependencia
Es una relación semántica entre dos elementos en la cual un cambio en un elemento (el elemento independiente) puede afectar a la semántica del otro
elemento (elemento dependiente).
Clase independiente
Clase dependiente
Video
Televisión
. . .
. . . Grabar(c : canal)
Canal
. . .
. . . cambiar(c : canal)
27. . . . Relaciones entre Clases
2.- Relación de generalización
Es una relación entre dos clases en donde una de ellas, llamada subclase o clase hija (subclass o child), hereda los atributos y el comportamiento de otra, llamada superclase o clase padre (superclass o parent).
Vehículo
Clase Padre
Clase hija
Terrestre
Aéreo
Red
WAN
LAN
28. . . . Relaciones entre Clases
3.- Relación de asociación
Es una relación estructural que describe un conjunto de enlaces o conexiones entre dos o más objetos. Esta relación entre clases permite asociar objetos que colaboran entre si.
Acta
0..* 1..*
Alumno
29. . . . Relaciones entre Clases
3.1.- Asociación de Agregación
Es un tipo especial de asociación e indica que el objeto base utiliza al objeto incluido para poder funcionar. Si el objeto base desaparece no desaparecen los objetos
incluidos. Muestra una relación todo - parte.
Red
Teclado
CPU
Computadora
Monitor
WAN
LAN
Mouse
HUB
Hard
Disk
30. . . . Relaciones entre Clases
3.2.- Asociación de Composición
Es un tipo de asociación, en donde el tiempo de vida del objeto incluido está condicionado por el tiempo de vida del que lo incluye. El objeto incluido sólo existe mientras exista el objeto base. El objeto se construye a partir del
objeto incluido pero no podría existir si ellos.
Ejemplo: El Hombre esta formado por cabeza, tronco y extremidades
Hombre
Cabeza
Tronco
Extremidades
31. Ejemplo de diagrama de clases:
Vuelo de un avion comercial
Cliente Nombre Nacionalidad
1
Motor Marca
Año
1 . . 4
1
Avión NroPlaca
1
Boleto * 1
Nro
* 1
Vuelo
IdVuelo
FechaSal
Modelo
Destino
AvionCarga
CapCarga
AviónPasajeros
NroAsientos
32. Ejercicio de diagrama de clases:
Un sistema de planillas en una empresa guarda
información de empleados y obreros, su record de asistencia, los conceptos de pago, las bonificaciones y descuentos. Si pide construir un diagrama de clases que muestre las Clases y sus Relaciones (asociación, agregación, composición, generalización, según existan). Cada planilla corresponde con un periodo de tiempo (mes) y
contiene boletas de pago, las que a su vez contiene el detalle de los pagos y descuentos.
33. 3. Diagramas de Objetos
Definición
Un Diagrama de Objetos muestra una instancia prototípica de un Diagrama de Clases con el fin de ilustrar los objetos reales participantes en un determinado momento.
Un Diagrama de Objetos tiene los mismos elementos que un Diagrama de Clase pero los objetos y sus atributos tienen valores conocidos.
34. Ejemplo de diagrama de objetos:
Vuelo de un avion comercial
:Cliente
Nombre: Juan Pérez
Nacionalidad: peruana
1
:Motor
Marca: GeneralMotors
Año: 1996
1 . . 4
1 * 1
:AviónPasajeros
NroPlaca: XXX123
:Boleto * 1
Nro: 102030
:Vuelo
IdVuelo: 666
FechaSal: 01/01/2001
Destino: Lima
Modelo: Boeing 777
Nro: 555
Capacidad: 100
35. 4. Diagramas de Secuencia
Definición
Un Diagrama de Secuencia muestra la interacción de un conjunto de objetos, poniendo énfasis en el orden cronológico del envío de mensajes entre objetos.
Un diagrama de secuencia esta compuesto por:
- Objetos (o actores)
- Línea de vida de un objeto
- Activación o foco de Control
- Mensajes
36. Elementos de un Diagrama de Secuencia
Objetos o actores
objeto:Clase
Son las entidades que participan
en la interacción para lograr una funcionalidad, éstas envían y o reciben mensajes.
Línea de vida de un objeto
objeto:Clase Indica la vida de un objeto
durante la interacción y se representa mediante una línea vertical discontínua.
37. Elementos de un Diagrama de Secuencia
Activación o foco de Control
objeto:Clase
Muestra el periodo de tiempo en
el cual el objeto se encuentra desarrollando una operación.
Mensajes
objeto:Clase objeto:Clase
Son las invocaciones que envia un objeto a otro para que realice una tarea.
38. Tipos de mensajes
Mensaje Simple:
Se usa cuando no se conocen detalles del tipo de comunicación o cuando no resulta relevante en el diagrama.
Mensaje Síncrono:
El objeto que envia el mensaje espera a que el objeto que lo recibe le termine la operacion. El mensaje síncrono más comun es la llamada a procedimientos.
Mensaje Asíncrono:
Cuando el objeto que envia el mensaje sigue con su trabajo sin esperar respuesta del objeto receptor del mensaje.
39. Ejemplo de Diagrama de Secuencia
Ing. Carlos Bacalla www.CarlosBacalla.com
Un usuario desea imprimir un archivo para lo cual le envía la orden a la computadora, la cual a su vez se la envía al servidor de impresión siendo este el encargado de dirigirlo a la impresora. En caso de que
la impresora este ocupada el archivo a imprimir se dirige hacia la cola de impresión, la cual en su momento le indicará al servidor de
impresión que tiene el archivo pendiente por imprimir.
Imprimir (arch)
:computadora
:ServidorImpresion
:impresora
:cola
Imprimir(arch)
[ impresora OK] Imprimir(arch)
[impresora !OK] Imprimir(arch)
40. Ejercicio de Diagrama de Secuencia
Se desea trasladar una cabra, una flor y un lobo, a través de un río empleando una barca. Solo se puede llevar uno de ellos en cada viaje. Si dejamos a la cabra con el lobo, el lobo se comera a la cabra. Si dejamos la flor con la cabra, la cabra se come a la flor. Muestre un diagrama de secuencia en el cual se pueda trasladar a los tres por el rio.
41. 5. Diagramas de Colaboración
Definición: Un Diagrama de Colaboración muestra la
interacción de un conjunto de objetos, poniendo énfasis en la estructura organizacional de los objetos que envían y reciben mensajes.
Un diagrama de colaboración esta compuesto por:
- Objetos
- Enlaces
- Flujo de Mensajes
42. Ejemplo de Diagrama de Colaboración
Una nota de pedido contiene un renglón por cada artículo, que se está despachando. Si la cantidad del artículo que aún queda en almacén es menor que el punto de reorden, está lanza una orden de
compra del artículo, si hay existencias el pedido se atiende.
Prepara( )
:Pedido
1*[para cada renglón]: Prepara( ) 1.3 reorden:=NecesitaReorden( )
:renglónPedido
1.1 Existe:=RevisaExistencia( )
1.2 [Existe]: descuenta( )
:Artículo
1.5[Existe]:Entrega( )
1.4 [reorden]: colocarOrdenCompra( )
:NotaSalida
:OrdenCompra
43. Diagramas de Secuencia y Colaboración
Ambos diagramas muestran la interacción entre objetos, pero el Diagrama de Secuencia reserva una dimension para el tiempo haciendo más fácil observar el orden de ejecución de los mensajes, mientras que el Diagrama de Colaboración los enumera. Ambos diagramas representan lo mismo y puede transformarse de uno a otro
sin perdida de información.
Imprimir (arch)
:computadora
:impresora
1: Imprimir(arch) 1.1: [ impresora OK] Imprimir(arch)
:ServidorImpresion
1.2: [impresora !OK] Imprimir(arch)
:cola
44. Ejercicio de Diagrama de Colaboración
En una biblioteca un lector (socio) escoge un libro si desea prestarlo se lo solicita al encargado, el encargado verifica la situacion del libro (algunos solo salen para sala o tal vez esten prestados) y luego verifica la situacion del socio, si estas verificaciones son conformes entonces se realiza el prestamo del libro.
45. 6. Diagramas de Estados
Definición: Describe el comportamiento de un elemento
del modelo, mostrando la posible secuencia de estados en los que puede entrar el objeto y como cambia al reaccionar ante un evento durante su ciclo de vida.
Un Diagrama de Estados esta compuesto por:
- Estados
- Eventos evento
- Transiciones
46. Elementos de un Diagrama de Estados
Estado: Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto esta esperando alguna condición, operación u evento, tiene cierto estado característico o puede recibir cierto tipo de estímulos.
Evento: Es una ocurrencia que puede causar la transición del objeto de un estado a otro.
Transición: Una transición es una relación entre dos estados que indica que un objeto en un primer estado puede entrar a un segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre. Se representa como una línea sólida entre dos estados
Estado inicial
Estado1
Evento( ) Transición
Estado2
Estado final
47. Ejemplo de Diagrama de Estados
Una cuenta bancaria puede estar activa, suspendida o cerrada. Cuando esta en activa puede a su vez estar en azul (si el saldo es +)
o en rojo (si el saldo es -). Muestre su diagrama de estados.
Activa
retiro [saldo<0] / poner en rojo
en azul en rojo
depósito [saldo>0] / poner en azul
activar cuenta
suspender cuenta
Cerrada
cerrar cuenta
Suspendida
48. 7. Diagramas de Actividad
Definición: Muestra las operaciones que se realizan para
conseguir un objetivo. Es un caso especial de un diagrama de estados donde todos los estados ejecutan una tarea.
Se utilizan para dar detalle a un caso de uso, modelando los flujos de trabajo u operaciones.
Un Diagrama de Actividad esta compuesto por:
- Estados de actividad o simplemente Actividad
- Estados de acción o simplemente Acción
- Transiciones
49. Elementos de un Diagrama de Actividad
Estados de actividad (Actividad).- Son estados que llevan a cabo alguna actividad. No son atómicos es decir pueden descomponerse. Pueden ser interrumpidos y se consideran que toman algún tiempo en completarse.
Estado de acción (Acción).- Es una actividad que no se puede descomponer y permiten modelar un paso dentro de un algoritmo. Se considera que su ejecución toma un tiempo insignificante.
Transiciones.- Es el paso de un estado de actividad a otro, una transición ocurre al finalizar una actividad.
Otros elementos
Decisión Barra de Sincronización Carriles Estados inicial y final
50. Ejemplo de Diagrama de Actividad
Muestre un proceso común de una solicitud de servicio.
Cliente Vendedor Jefe Ventas
Sol. de servicio
Pide datos cliente
Pide datos
Servicio
Decide costo
Consulta tarifa
[Tarifa no OK]
Negoc. condiciones
[Tarifa OK]
Consulta disponib.
Ingresa orden
51. Ejercicio de Diagrama de Actividad
Un cliente solicita un pedido, este pedido va al departamento de ventas para ser procesado y simultaneamente el cliente espera hasta que se apruebe y se le entregue la mercaderia. Despues de procesar el pedido en ventas, el pedido se dirige al almacen para extraer los productos y enviarlos. En este punto el cliente recibe el pedido y Ventas hace la factura. El cliente paga la factura y Ventas considera el pedido atendido.
52. 8. Diagramas de Componentes
Definición: Un diagrama de componentes muestra las
dependencias lógicas entre componentes software, tales como archivos de código fuente, binarios, ejecutables, tablas, etc.
Un Diagrama de Componentes esta compuesto por:
- Componentes
- Interfaces
- Relaciones de realización y dependencia
53. Elementos de un Diagrama de Componentes
Componentes.-
Son cada una de las partes físicas y reemplazable de un
sistema.
Se dice que es parte física en el sentido en que viven en el mundo de bits y no son sólo esquemas conceptuales.
Se dice que es reemplazable pues puede ser reemplazado por un nuevo componente que mejore la funcionalidad o añada alguna sin que afecte a otros componentes.
Esto se logra mediante el uso
de interfaces bien definidas las cuales son implementadas por los componentes.
nombre
54. . . . Elementos de un Diag. de Componentes
Interfaces.- Es una colección de operaciones que son
usadas para especificar un servicio provisto por una clase o un componente. Esto permite utilizar los servicios sin abrumarnos con sus detalles de implementación asimismo se puede cambiar los componentes pero si sus interfaces son las mismas entonces este cambio es inmediato y no
afecta al resto del sistema.
Interface
<<interface>>
55. Relaciones entre Componentes
Relación de realización.- El componente que realiza o implementa la interfaz es conectado mediante una línea discontínua terminada en una cabeza de flecha hueca.
Relación de dependencia.- Ocurre entre las componentes que utilizan la interfaz implementada por otra componente y la respectiva interfaz. Se representa con una línea discontínua con cabeza de flecha abierta.
<<interface>>
56. Estereotipos de Componentes
executable.- son componentes que
pueden ejecutarse en un nodo.
library.- son las librerías estáticas o dinámicas.
table.- un componente que es una tabla de una base de datos.
file.- un componente que es un archivo de código fuente o datos.
document.- un componente que es un documento.
57. Ejemplo de un Diagrama de Componentes
Se tiene un robot que es manejado mediante la librería manejo.dll, la cual implementa dos grupos de interfaces Imanejo e Iautoprueba. La interfaz Imanejo es utilizada por camino.dll, la cual proporciona el comportamiento a seguir cuando el robot se desplaza sin contratiempos. Si el robot encuentra algún obstáculo, camino.dll utiliza a colision.dll. Periódicamente, el robot se autocomprueba, para ello manejo.dll, cuenta con la interfaz Iautoprueba la cual es utilizada por test.dll que le ordena las pruebas que debe realizar. Muestre los
componentes y sus interfaces mediante un Diagrama de Componentes
Manejo.dll
Imanejo
Camino.dll
Iautoprueba
Test.dll
Colisión.dll
58. 9. Diagramas de Despliegue
Definición: Muestra el hardware en donde será
desplegado los componentes de nuestro sistema. Esto significa que muestra las relaciones fisicas entre el software y el hardware.
Un Diagrama de Despliegue esta compuesto por:
- Nodos
- Conexiones entre nodos
59. Elementos de un Diagrama de Despliegue
Nodos: Representación de cualquier tipo de hardware sobre el cual correrá o del que se servirá nuestro sistema.
Será un Procesador, si tiene capacidad de proceso como una PC.
Será un Dispositivo si no tiene capacidad de proceso. Vienen a ser los equipos que sirven de interfaz con el mundo real como teléfono, impresora, sensores, etc.
<<procesador>> <<dispositivo>>
Conexiones: Los nodos se conectan
mediante asociaciones de comunicación fisica o no, como conexión satelital, cable serial, señal infraroja, etc.
60. Ejemplo de un Diagrama de Despliegue
Un usuario que se conecta vía Internet a un Servidor de Aplicaciones de una empresa. En este instante el componente CLIENTE viaja desde el Servidor de Aplicaciones hacia la PC del usuario, luego
el componente CLIENTE puede solicitar algún servicio al componente
APLICACION el cual buscará los datos necesarios en el componente
BD ubicado en el Servidor de Base de Datos.
<<procesador>> PC usuario
<<HTTP>>
<<procesador>>
Servidor de Aplicaciones <<procesador>>
<<TCP/IP>>Servidor de BD
Cliente
<<Becomes>>
Cliente
BD
Aplicación
61. Conclusiones:
1. El UML es el lenguaje estándar a nivel mundial para representar modelos
orientados a objetos de sistemas
intensivos en software.
2. Debemos utilizarlo en todos nuestros modelos para poder comunicarnos con otros desarrolladores.
62. Recomendaciones:
Apostar por enfoque Orientado a Objetos
-Primero aprenda la notación
-Segundo aprenda la herramienta
-Tercero aprenda el Proceso