Este documento describe el lenguaje de modelado UML (Unified Modeling Language). Explica que UML fue creado para unificar los diferentes lenguajes y métodos de modelado existentes y que está compuesto por elementos, relaciones y diagramas. Luego describe los principales elementos como clases, casos de uso, colaboraciones e interfaces, y los diagramas como diagramas de clases, casos de uso, objetos y secuencias.
1. 1
Universidad de San Martín de Porres
Facultad de Ingeniería y Arquitectura
Curso de Especialización Profesional / 2008 - II
Curso: Ingeniería de Software Orientada a
Objetos
Mg. Ing. Géner Zambrano L.
gzambrano@usmp.edu.pe
5. 5
Object Management GroupObject Management Group ((OMG)
Es un consorcio internacional que promueve el desarrollo de
software orientado por objetos.
El objetivo del OMG es proveer un marco de arquitectura común
para permitir la interacción de objetos en plataformas heterogéneas
y distribuidas.
Fue fundado en 1989.
Inicialmente estuvo conformado por 8 compañías: 3Com
Corpotation, American Airlines, Canon Inc., Data General,
Hewlett-Packard, Philips Telecommunications N.V., Sun
Microsystems y Unisys Corporation.
El OMG no realiza trabajos de desarrollo e implementación, más
bien se basa en la tecnología existente ofrecida por sus miembros.
7. 7
¿Qué es UML (Unified Modeling Language)?
Grady Booch
Ivar Jacobson
James
Rumbaugh
UML es el lenguaje
estándar para visualizar,
especificar, construir y
documentar los artefactos
de una aplicación de
software ó sistema.
Socios de la compañía
Rational Software,
Herramienta case Rational
Rose.
LENGUAJE UNIFICADO DE MODELADO
8. 8
¿Qué es UML (Unified Modeling Language)?
Uml prescribe un conjunto de notaciones y diagramas estándar para
modelar sistemas orientados a objeto y describe la semántica
esencial de lo que estos diagramas y símbolos significan.
UML es una notación, destinado a los sistemas de modelado que
utilizan conceptos orientados a objetos. Los principales factores que
motivaron la creación de uml
fueron:
La necesidad de modelar sistemas.
Las tendencias en la industria de software.
Unificar los distintos lenguajes y métodos existentes.
Innovar los modelos para adaptarse a la arquitectura distribuida.
9. 9
UML no es:
Un lenguaje de programación visual, sino un lenguaje de
modelación visual.
Una herramienta o deposito de especificación, sino un lenguaje
de modelación de especificación.
Un proceso, sino que habilita procesos.
Fundamentalmente, UML está relacionado con la captura,
comunicación y nivelación (disgregación en niveles) de
conocimientos.
10. 10
Evolución de UML:
Nov ‘97 UML aprobado por el OMG
1998
1999
2000
UML 1.2
UML 1.3
UML 1.4
2001 UML 2.0
Revisiones menores
11. 11
Modelo
El proceso de desarrollo de software se inicia con la
construcción de un modelo. Dicho modelo representa la
especificación precisa de las necesidades del usuario
trasladadas a los requerimientos.
Un modelo es la interpretación simplificada de la
realidad.
Estructuralmente destaca la organización del sistema y a
nivel de comportamiento destaca la dinámica del sistema.
12. 12
Modelo, propósitos:
Ayudar a comprender un problema complejo (o solución)
Comunicar ideas acerca de un problema o solución
Guiar la implementación
Como la documentación base que describe el sistema
13. 13
Modelo, características:
Abstracto
Enfatiza los elementos importantes y oculta los irrelevantes
Comprensible
Fácil de comprender por los observadores
Preciso
Representa de forma fiel el sistema que modela
Predictivo
Se pueden usar para deducir conclusiones sobre el sistema que
modela
Barato
Mucho más barato y sencillo de construir es el sistema que se
modela
• Los modelos de ingeniería eficaces deben satisfacer todas estas
características
14. 14
Modelo, como se usa:
Para detectar errores u omisiones en el diseño antes de
comprometer recursos para la implementación
Analizar y experimentar
Investigar y comparar soluciones alternativas
Minimizar riesgos
Para comunicarse con los “stakeholders”
Clientes, usuarios, implementadores, encargados de
pruebas, documentadores, etc.
Para guiar la implementación
15. 15
Proceso
Un buen proceso debe permitir a los equipos y clientes
trabajar juntos para construir sistemas complejos con
pocos defectos en menor tiempo con mayor confiabilidad
y previsibilidad para identificar y para reducir riesgos.
16. 16
UML, características:
Divide cada proyecto en un número de diagramas que
representan las distintas vistas del proyecto y juntos representan
la arquitectura del mismo.
Permite describir un sistema en diferentes niveles de
abstracción, simplificando la complejidad sin perder
información, para que los usuarios y desarrolladores
comprendan las características de la aplicación.
Se quiere convertir en un lenguaje estándar con el que sea
posible modelar todos los componentes del desarrollo de una
aplicación, sin embargo no pretende definir un modelo de
desarrollo sino únicamente un lenguaje de modelado.
17. 17
¿Cómo utilizar UML?
Lo primero que se debe hacer para comenzar a desarrollar un
proyecto con UML, es seleccionar una metodología de desarrollo
que defina la naturaleza concreta del proceso a seguir.
El modelo a definir en base al proceso elegido, se divide en realidad
en varios tipos de modelo o vistas, cada una centrada en un aspecto o
punto de vista del sistema. En general, independientemente del
proceso que se emplee, se puede encontrar las siguientes vistas:
18. 18
...continua, ¿Cómo utilizar UML?
Vista de Casos de Uso. Engloba los Casos de Uso que describen el
comportamiento del sistema como lo verían los usuarios finales y
desarrolladores. No especifica la organización del sistema.
Vista de Diseño. Engloba las clases e interfaces que conforman el
vocabulario del problema y su solución. Da soporte a los requisitos
funcionales del sistema, es decir los servicios que proporciona a los
usuarios finales.
Con UML los aspectos estáticos de estas dos vistas se pueden concretar
con los diagramas de clases y de objetos; los aspectos dinámicos con los
diagramas de iteración (secuencia y colaboración), diagramas de estados
y de actividades.
19. 19
...continua, ¿Cómo utilizar UML?
Vista de Procesos. Engloba los hilos y procesos que forman los
mecanismos de sincronización y concurrencia del sistema. Da soporte al
funcionamiento, capacidad de crecimiento y rendimiento del sistema.
Vista de Despliegue. Engloba los nodos que forman la topología
hardware sobre el que se ejecuta el sistema. Da soporte a la distribución,
entrega e instalación de las partes que conforman el sistema físico.
Con UML los aspectos estáticos de esta vista se pueden concretar con
los diagramas despliegue; los aspectos dinámicos con los diagramas de
iteración (secuencia y colaboración), diagramas de estados y de
actividades.
20. 20
...continua, ¿Cómo utilizar UML?
Vista de Implementación. Engloba los componentes y archivos
empleados para hacer posible el sistema físico. Da soporte a la gestión de
configuraciones de las distintas versiones del sistema, a partir de
componentes y archivos.
Con UML los aspectos estáticos de esta vista se pueden concretar con
los diagramas de componentes; los aspectos dinámicos con los diagramas
de iteración (secuencia y colaboración), diagramas de estados y de
actividades.
21. 21
Lenguaje de modelamiento: UML
UML tiene tres bloques básicos de construcción: elementos,
relaciones y diagramas.
I. Elementos: Unidades básicas de construcción, cuatro tipos:
1.1 Estructurales: Partes estáticas de los modelos, representan
aspectos conceptuales o materiales.
1.2 De comportamiento: Partes dinámicas de los modelos,
representan comportamientos en el tiempo y espacio.
1.3 De agrupación: Partes organizativas de los modelos.
1.4 De Notación: Partes explicativas de los modelos.
22. 22
...continua, Lenguaje de modelamiento: UML
1.1 Elementos estructurales:
Una interfaz es una colección de operaciones que
especifican un servicio de una clase o un componente.
Describe el comportamiento visible de ese elemento.
Dibujable
Ventana
origen
tamaño
abrir()
cerrar()
mover()
dibujar()
Una clase es una descripción de un conjunto de objetos
que comparten los mismos atributos, operaciones,
relaciones y semántica.
23. 23
...continua, Lenguaje de modelamiento: UML
1.1 Elementos estructurales:
Un caso de uso es una descripción de un conjunto de
secuencias de acciones de un sistema y que produce
un resultado observable de interés para un actor
particular.registrar pedido
Una colaboración define una interacción y es una
sociedad de roles y otros elementos que colaboran para
proporcionar un comportamiento cooperativo.
realización
registrar pedido
24. 24
...continua, Lenguaje de modelamiento: UML
1.1 Elementos estructurales:
Parte física y reemplazable de un sistema, que agrupa
un conjunto de interfaces, archivos de código fuente,
clases, colaboraciones y proporciona la implementación
de dichos elementos.
Elemento físico que existe en tiempo de ejecución y
representa un recurso computacional con capacidad de
procesamiento.
25. 25
...continua, Lenguaje de modelamiento: UML
1.2 Elementos de comportamiento:
Comprende un conjunto de mensajes que se
intercambian entre un conjunto de objetos, para
cumplir un objetivo especifico.
compra
Especifica la secuencia de estados por los que
pasa un objeto o una interacción, en respuesta a
eventos.
esperando
26. 26
...continua, Lenguaje de modelamiento: UML
1.3 Elementos de agrupación:
Se emplea para organizar elementos en grupos.
1.4 Elementos de notación:
Una nota es un elemento explicativo de los
modelos UML. Sirve para hacer claridad
sobre elementos del modelo.
27. 27
v ...continua, Lenguaje de modelamiento: UML
II. Relaciones: Abstracciones que actúan de unión entre los
elementos.
Una dependencia es una relación semántica entre
dos elementos, en la cual un cambio a un elemento
(elemento independiente) puede afectar la
semántica del otro elemento (elemento
dependiente).
Dependencia
Es una relación estructural que resume un conjunto
de enlaces que son conexiones entre objetos.Asociación
Una asociación es una relación estructural que
describe un conjunto de enlaces, los cuales son
conexiones entre objetos. La agregación es un tipo
especial de asociación, que representa una relación
estructural entre un todo y sus partes.
UniversidadFacultad 1..*
1
1..*
1
28. 28
v ...continua, Lenguaje de modelamiento: UML
Una generalización es una relación en la cual los
objetos del elemento especializado (el hijo) pueden
sustituir a los objetos del elemento general (el
padre). De esta forma, el hijo comparte la
estructura y el comportamiento del padre
Generalización
Una realización especifica que una clase
implementara un conjunto de métodos
especificados por una interfaz .Realización
29. 29
III. Diagramas
En OMG UML 2.0 se definen una serie de diagramas adicionales a los
establecidos en OMG UML 1.x. El conjunto de diagramas se encuentra organizado
en torno a dos categorías: diagramas estructurales (representados en verdes) y
diagramas dinámicos o de comportamiento (representados en celeste). Los
diferentes diagramas son indicados en la figura siguiente:
30. 30
III. Diagramas, continua...
Jerarquía de Diagramas
Diagramas de estructura enfatizan en los elementos que deben
existir en el sistema modelado
Diagramas de comportamiento enfatizan en lo que debe suceder
en el sistema modelado
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
32. 32
Diagrama de Casos de Uso.
Permiten realizar la especificación del alcance funcional del
producto software que se construye y de los actores, entes que
interactúan con el producto de software, que requieren los diferentes
casos de usos.
Los casos de usos pueden relacionarse entre sí a través de
asociaciones que permiten, entre otras cosas, refinar el Modelo de
Casos de Usos a través de las asociaciones de:
•Generalización
•Extends
•Includ
Enfatizan el qué en lugar del cómo.
33. 33
...contiuna, Diagrama de Casos de Uso
Generalización.
Asociación estereotipada
como “generalization”.
Permite establecer una
jerarquía de herencia al nivel
de los casos de uso, donde el
caso de uso derivado adquiere
toda la especificación del caso
de uso base e incorporar
nuevos requerimientos a la
especificación.
Reservar libros Reservar cubiculos
Alumno
Reservar recursos
34. 34
...contiuna, Diagrama de Casos de Uso
Solicitar N ueva Tarjeta
Cliente
Solicitar Préstamo
<<extend> >
[Tarjeta Caducada]
Extensión.
Asociación estereotipada
como: extend. Permite
incorporar el flujo de eventos
de un caso de uso pequeño
dentro de un caso de uso base
de la aplicación bajo la
ocurrencia de una
determinada condición,
cuando la misma evalúa
verdadero.
35. 35
...contiuna, Diagrama de Casos de Uso
Inclusión.
Asociación estereotipada como: incluye. Permite incorporar el flujo
de eventos de un caso de uso pequeño dentro de un caso de uso base
de la aplicación.
Verificar Operación
Consignación
Cliente
Pago de Crédito
<<include>>
<<include>>
37. 37
Diagrama de Clases
Muestra las relaciones estructurales y estáticas entre clases.
Un modelo conceptual o modelo del dominio muestra gráficamente los
conceptos (clases de objetos), los atributos y las asociaciones más
importantes del dominio del problema.
Alumno
ProfPorCursoPorE
scuela
ProfesorPorCurso
Curso
Profesor
0..*
0..*
0..*
0..*
enseña
Region
DptoGeografico
11..* 11..*
pertenece
Universidad
Escuela
0..*0..* 0..*0..*
trabaja en
Provincia
1..*
1
1..*
1
Facultad
1..*
1
1..*
1
pertenece
1..*
1
1..*
1
pertenece
Distrito
1..*
1
1..*
1
1
0..*
1
0..*
se ubica
Persona
1
0..*
1
0..*reside en
38. 38
Los diagramas de
objetos son análogos
a los de clases, con la
particularidad de que
en lugar de encontrar
clases, encontramos
instancias de éstas.
Son útiles para
explicar partes
pequeñas del modelo
en las que hay
relaciones complejas.
Diagrama de Objetos
39. 39
Diagrama de Objetos – Diagrama de Clases (relación):
Los objetos se vinculan por enlaces, que son instanacias de las
relaciones entre las clase sde objetos del dominio.
Diagrama de objetos
Diagrama de clases
40. 40
...continua, Diagrama de Actividades
Buscar Bebida
Poner café en filtro Añadir agua al depósito Coger taza
Poner filtro en máquina
Encender máquina
Café en preparación
Servir café
Coger zumo
Beber
[no hay café]
[hay café
[no zumo]
[hay zumo]
/ cafetera.On
indicador de fin
Los diagramas de actividades muestran como las actividades fluyen y las
dependencias entre ellas.
41. 41
...continua, Diagrama de Actividades
Emitir billete
Pasajero Vendedor Airline
Solicitar pago Reservar plazas
Confirmar
plaza reservadaPagar pasaje
Informar alternativas
y precios
Verificar
existencia vuelo
Dar detalles vuelo
Solicitar pasaje
Seleccionar vuelo
Ejemplo: “swim lines=pasillos”
42. 42
Diagrama de Estados
Muestran los posibles estados en que puede encontrarse un objeto y
las transiciones que pueden causar un cambio de estado. El estado
de un objeto depende de la actividad que esté llevando a cabo o de
alguna condición.
Resultado de
actividad
inicio
Circunstancia o condición
que provoca la transición
acción
fin
43. 43
...continua, Diagrama de Estados
Los estados pueden anidarse, agrupando estados relacionados en
un estado compuesto. Puede ser necesario cuando una actividad
involucra actividades concurrentes o asíncronas.
44. 44
Diagrama de Secuencia
: Encargado
:WInPréstamos :Socio :Video :Préstamo
prestar(video, socio)
verificar situación socio
verificar situación video
registrar préstamo
entregar recibo
Al diagrama de secuencia se le ha incorporado un mecanismo a través
del cual se puede realizar la especificación de bloques repetitivos,
opcionales, alternativos, entre otros. En el siguiente diagrama se puede
observar que el registro del préstamo solo se efectúa si el usuario
satisface la regla de negocio que establece que el video se encuentre
disponible.
45. 45
Diagrama de Comunicación (colaboración)
Muestra la distribución estática de los objetos. Resalta la relación
estructural de los objetos que intercambian mensajes.
: Encargado
:WInPréstamos
:Socio
:Video
:Préstamo
1: prestar(video, socio)
2: verificar situación socio
3: verificar situación video
4: registrar préstamo
5: entregar recibo
46. 46
Diagrama de Secuencia y de Comunicación (colaboración)
Los diagramas de secuencia y de colaboración son Isomorfos.
Un diagrama de secuencia se puede transformar mecanicamente en un
diagrama de comunicación. Un diagrama de comunicación se puede
transformar mecanicamente en un diagrama de secuencia.
: Usuario
: Actividad: GestroActividad
: InterfazActividad
llama al Caso de
uso incluido
VisualizarHorario
Flujo alternativo
2.2.1.
Flujo alternatico
2.2.5.
1: Crear o modificar actividad
4: Selecciona intervalo
horario, dia, descripción
6: actualiza la actividad
2: solicita/buscar periodos de tiempo
3: visualida horario
5: visualizan los nuevos cambios
47. 47
Diagrama de Componentes
Uno de los principales elementos incorporados al diagrama de
componentes consiste en la definición de puertos a través de los
cuales cada componente de software entrega un conjunto de servicios
a través de interfaces proveídas y de manera declarativa se definen
los servicios requeridos por el componente software. Este mecanismo
permite, que un componente software de manera aislada cuente con
toda la especificación no solo interna sino además de la
especificación de los requerimientos para la integración del
componente software con otros componentes software.
El diagrama de componente muestra interfaces y dependencias entre
los componentes del software, los componentes de código de fuente,
código binario y ejecutables. Un módulo del software puede
representarse como un tipo de componente.
48. 48
...continua, Diagrama de Componentes
Un componente es un módulo
de código, de modo que los
diagramas de componentes
son los análogos físicos a los
diagramas de clases.
Muestran la organización y
dependencias de un conjunto
de componentes. Cubren la
vista de implementación
estática de un sistema.
49. 49
Diagrama de Despliegue
Estos diagramas muestran la distribución y relación entre los
diferentes elementos de hardware llamados “nodos”; por ejemplo:
cpu, dispositivos de I/O, routers, etc.
Los diagramas de despliegue sirven para modelar la configuración
del hardware del sistema, mostrando qué nodos lo componen
50. 50
...continua, Diagrama de Despliegue
InterfazDeCliente InterfazDeVendedor
CargosDeTarjetasDeCrédito
VendedorDeEntradas
InterfazDeGestor
BDEntradas
Cliente Vendedor
Quiosco TerminaDeVentas
ServidorDeEntradas
GestorEntidadDeTarjetasDeCrédito
nodo
1
*
1
multiplicidad
de nodo
dependencia
componente
Nivel de Descripción:
51. 51
...continua, Diagrama de Despliegue
Nivel de instancia:
quiosco de la calle Mayor: Quiosco
oficina central: ServidorDeEntradas
taquilla de la calle del Rio:
TerminalDeVentas
oficina de televentas:
TerminalDeVentas
quiosco del mercado: Quiosco
Instancia de nodo
Nombre de nodo
Tipo de nodo
enlace de comunicación
52. 52
Diagrama de Estructura Compuesta
Se emplea para visualizar de manera gráfica las partes que definen la
estructura interna de un clasificador. Cuando se utiliza en el marco
de una clase, este diagrama permite elaborar un diagrama de clases
donde se muestran los diferentes atributos (partes) y las clases, a
partir de las cuales se definen los atributos, indicando principalmente
las asociaciones de agregación o de composición de la clase a la que
se le elabora el diagrama.
Fuente: http://www.visual-paradigm.com/VPGallery/diagrams/CompositeStructureDiagram.html
53. 53
Diagrama de General de Interacción
Se emplea fundamentalmente
para representar las
interacciones, a través de
diagramas o fragmentos de
diagramas de secuencias,
entre los actores y el sistema
como una gran caja negra, y
de diagramas de actividades
en los que aparecen dichos
fragmentos.
Fuente: http://www.visual-paradigm.com/VPGallery/diagrams/InteractionOverviewDiagram.html
54. 54
Diagrama de Tiempos
Empleados para mostrar las
interacciones donde el
propósito fundamental
consiste en razonar sobre la
ocurrencia de eventos en el
tiempo que provocan el
cambio de estados de un
elemento estructural (clase,
componente, etc.).
Fuente: http://www.visual-paradigm.com/VPGallery/diagrams/TimingDiagram.html
55. 55
Diagrama de Paquetes
Los paquetes ofrecen un mecanismo general para la
organización de los modelos/subsistemas agrupando
elementos de modelado
Se representan gráficamente como:
Nombre de
paquete
56. 56
...continua, Diagrama de Paquetes
Cada paquete corresponde a un submodelo (subsistema) del
modelo (sistema)
Un paquete puede contener otros paquetes, sin límite de
anidamiento pero cada elemento pertenece a (está definido
en) sólo un paquete
Una clase de un paquete puede aparecer en otro paquete por
la importación a través de una relación de dependencia entre
paquetes
57. 57
Resumen de los Diagramas de UML 2.0.
Diagrama Descripción
Diagrama de actividad “Activity
Diagram”
Modela los procesos de negocio de alto nivel, incluso los flujos de datos,
también para modelar la lógica compleja dentro de un sistema
Diagrama de Clases “Class
Diagram”
Nos muestra una colección de elementos del modelo estáticos como las
clases y tipos, sus objetos, y sus relaciones.
Diagrama de Comunicación
“Communication Diagram”
Muestran las clases, sus relaciones mutuas, y el mensaje que fluyen entre
ellas. La comunicación hace que el diagrama se enfoque típicamente en la
organización estructural de los objetos que envían y reciben los mensajes;
antes Diagrama de Colaboración.
Diagrama de componente
“Component Diagram”
Modela los componentes que componen una aplicación o sistema. Además
sus relaciones mutuas, interacciones e interfaces.
Diagrama de Estructura
Compuesta “Composite
Structure Diagram”
Modela la estructura interior de un clasificador (como una clase, componente,
o un caso de uso), incluso los puntos de la interacción del clasificador o otras
partes del sistema.
58. 58
...continua, Resumen de los Diagramas de UML 2.0.
Diagrama Descripción
Diagrama de Despliegue
“Deployment Diagram”
Muestras la arquitectura de la ejecución de sistemas. Esto incluye nodos,
hardware o ambientes de ejecución de software, así como el middleware que
los conecta.
Diagrama Global de Interacción
“Interaction Overview Diagram”
Una variante de un diagrama de actividad son las apreciaciones globales el
flujo del mando dentro de un sistema o proceso de negocio. Cada nodo /
actividad dentro del diagrama puede representar otro diagrama de la
interacción.
Diagrama de Objetos “Object
Diagram”
Modela los objetos y sus relaciones en un determinado tiempo, típicamente
un caso especial de un diagrama de clase o un diagrama de comunicación.
Diagrama de paquetes
“Package Diagram”
Muestras cómo los elementos principales son organizados en los paquetes
así como las dependencias entre estos.
59. 59
...continua, Resumen de los Diagramas de UML 2.0.
Diagrama Descripción
Diagrama de Secuencia
“Sequence Diagram”
Muestra la lógica secuencial del modelo, en el efecto la clasificación de
tiempo de mensajes entre los clasificadores.
El Diagrama de la Máquina
Estado “State Machine
Diagram”
Describe los estados de un objeto o la interacción que pueden ser las
transiciones entre los estados. Anteriormente llamado diagrama de estado, o
un diagrama de la estado-transición.
Diagrama de Tiempo “Timing
Diagram”
Pinta el cambio con el tiempo en estado o condición de un caso del
clasificador o papel el tiempo. Típicamente usado para mostrar el cambio con
el tiempo en el estado de un objeto en la contestación a los eventos externos.
Diagrama de Caso de Uso “Use
Case Diagram”
Muestra los procesos que contendrá el sistema a través de casos de uso,
actores, y sus relaciones mutuas
60. 60
Fuentes de consulta:
PAGINA DE RATIONAL: http://www-306.ibm.com/software/rational/offer/
TUTORIAL: http://www.cs.utsa.edu/~kdo/roseTutorial/
http://www.sparxsystems.com.au/resources/uml2_tutorial/