Professional Documents
Culture Documents
• Introducción
• Presentación de UML
• Un Primer Ejemplo
Lenguaje UML • Diagramas de Clases y Objetos
(Unified Modeling Language)
Language) • Diagramas de Casos de Uso
• Diagramas de Interacción
• Diagramas de Paquetes
• Diagramas de Estados
• Diagramas de Actividades
• Diagramas de Componentes
Francisco Ortín Soler • Diagramas de Despliegue
ortin@lsi.uniovi.es
Francisco Ortín Soler 2
Introducción Introducción
¿Qué es UML? ¿Qué es un modelo?
• UML es un lenguaje estándar (OMG, • Un modelo es una simplificación de la realidad
www.omg.org) para representar “planos” [Booch99].
(footprints) software • ¿Por qué es necesario modelar?
• Los planos software se representan mediante 1. Los modelos nos ayudan a visualizar cómo es o
distintas vistas de un mismo modelo queremos que sea un sistema (abstracción).
• Una vista es una proyección de la organización 2. Los modelos nos permiten especificar la
estructura y comportamiento de un sistema.
y estructura de un sistema, centrada en un
aspecto particular del mismo 3. Los modelos nos proporcionan plantillas que nos
guían en la construcción
• UML define una notación: material gráfico para de un sistema.
representar cada una de las vistas del modelo; es
4. Los modelos
la sintaxis del lenguaje UML documentan las
• UML es por lo tanto un lenguaje para modelar un decisiones que hemos
sistema real (análisis) o software (diseño) adoptado.
Francisco Ortín Soler 3 Francisco Ortín Soler 4
1
Introducción Introducción
(I) Lenguaje para Visualizar (II) Lenguaje para Especificar
interpretar un modelo sin ambigüedad que deben realizarse en un sistema con gran
cantidad de software.
Introducción Introducción
(III) Lenguaje para Construir (IV) Lenguaje para Documentar
2
Introducción Introducción
¿Qué NO es UML? El Proceso Unificado (RUP)
• Sobre el lenguaje UML se ha definido el proceso unificado
• UML NO es un método: “proceso disciplinado (RUP, Rational Unified Process)
para generar un conjunto de modelos que • Utilizando UML, el proceso unificado define las actividades
necesarias en un proyecto software,
describen varios aspectos de un sistema software definiéndose como:
en desarrollo, utilizando una notación bien Dirigido por los casos de uso
Introducción
Metodologías y UML Contenidos
• Introducción
• El lenguaje de modelado UML es empleado por • Presentación de UML
multitud de metodologías: • Un Primer Ejemplo
Métrica 3 • Diagramas de Clases y Objetos
El Proceso Unificado
• Diagramas de Casos de Uso
OOHDM (Object-Oriented Hypermedia Design
• Diagramas de Interacción
Model)
Catalysis • Diagramas de Paquetes
DSDM (Dynamic Systems Development Method) • Diagramas de Estados
Fusion • Diagramas de Actividades
AOSD (Aspect Oriented Software Development) • Diagramas de Componentes
• Diagramas de Despliegue
Francisco Ortín Soler 11 Francisco Ortín Soler 12
3
Presentación de UML Presentación de UML
Vistas en UML Vistas y Diagramas
• Vistas estructurales:
• Una vista es un conjunto de construcciones en Diagramas de clases (y objetos)
UML que representan un aspecto determinado Diagrama de casos de uso
del sistema Diagramas de componentes
• Una vista en UML se representa mediante uno o Diagramas de despliegue
varios diagramas bajo la notación UML • Vistas de comportamiento:
• Las distintas vistas se pueden clasificar en Diagrama de estados
función de su semántica: Diagrama de actividades
Vistas estructurales Diagrama de colaboración
Diagrama de secuencia
Vistas dinámicas (de comportamiento)
4
Presentación de UML
Perspectivas Contenidos
• En función del ciclo que nos encontremos en el
• Introducción
desarrollo de software, los diagramas describirán
modelos desde distintas perspectivas [Fowler] • Presentación de UML
• Además de su significado, variarán en su nivel • Un Primer Ejemplo
de detalle • Diagramas de Clases y Objetos
Conceptual: Representa los conceptos del dominio • Diagramas de Casos de Uso
que se está estudiando. Son independientes del • Diagramas de Interacción
lenguaje y no tienen por qué aparecer en el futuro
sistema • Diagramas de Paquetes
Especificación: Se especifica el software, • Diagramas de Estados
observando las interfaces, no la implementación • Diagramas de Actividades
Diseño / Implementación: Tenemos distintas • Diagramas de Componentes
clases como implementación de los interfaces,
• Diagramas de Despliegue
componiendo el sistema software
Francisco Ortín Soler 17 Francisco Ortín Soler 18
Hola
4.00 Container
Unregistered Trial Version EA 4.00 Unregistered Trial Vers
+ setLayout() + init() : void
+ add() + actionPerformed(ActionListener) : void
4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Vers
• El proyecto presentado está en
ejemplos/hola/hola.eap 4.00 Unregistered Trial Version
-etiqueta 1
EA 4.00 Unregistered
-botón 1
Trial Vers
JLabel JButton
4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Vers
+ setText(String) : void + getText() : String
+ getText() : String + setText(String) : void
Francisco Ortín Soler 19 4.00 Unregistered Trial Version EA 4.00 Unregistered
Francisco Ortín Soler
Trial: Vers
+ addActionListener(ActionListener) void 20
5
Un Primer Ejemplo Un Primer Ejemplo
Diagrama de Gestió
Gestión o Agrupació
Agrupación Diagrama de Objetos (Estructural)
• Se usan los paquetes para agrupar elementos • Representamos una instantánea en tiempo de ejecución
• En este caso, agrupamos elementos estructurales (clases) de la estructura de una parte del modelo
cd Obj etos
4.00 Unregistered Trial Version EA 4.00 Unregistered Trial V 00 Unregistered Trial Version EA 4.00 Unregistered Tr
id Subsistemas
Instantánea de haber mostrado en la etiqueta el mensaje "Hola"
4.00 Unregistered
+ init() : void Trial Version EA 4.00 Unregistered Trial V 00 Unregistered Trial Version EA 4.00 Unregistered Tr
+ actionPerformed(ActionListener) : void
-etiqueta 1 -botón 1
j av a
4.00 Unregistered Trial Version EA 4.00 Unregistered
+ Container
Trial V 00 Unregistered Trial Version EA 4.00 Unregistered Tr
etiqueta :JLabel
botón :JButton
+ ActionListener text = "Hola" text = "borrar"
4.00 Unregistered Trial Version EA 4.00 Unregistered Trial V 00 Unregistered Trial Version EA 4.00 Unregistered Tr
Francisco Ortín Soler 21 Francisco Ortín Soler 22
4 00 Unregistered Trial Version EA 4 00 Unregistered Trial V
6
Un Primer Ejemplo
Vista y Diagrama de Despliegue Contenidos
4.00 Unregistered
Nav egador Web
*
Trial Version EA 4.00 Unregistered Trial Ve • Diagramas de Actividades
«image» • Diagramas de Componentes
4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Ve
Component Model::uml.gif
• Diagramas de Despliegue
4 00 Unregistered Trial Version EA 4 00 Unregistered Trial Ve 25 26
Francisco Ortín Soler Francisco Ortín Soler
7
Diagramas de Clases y Objetos Diagramas de Clases y Objetos
Ejemplo Ficha CRC Clases en UML
8
Diagramas de Clases y Objetos Diagramas de Clases y Objetos
Relaciones entre Clases Ejemplo de Relaciones
• Las clases se pueden relacionar con las siguientes composición multiplicidades
asociación
relaciones: agregación Trial Version E
A 4.00 Unregistered Trial Version EA 4.00 Unregistered
Asociación Univ ersidad
1 1..*
Departamento
• Cada asociación tiene dos papeles (roles) que A 4.00 Unregistered Trial Version EA
nombre
4.00 Unregistered Trial Version E
1
visibilidad) Asignatura
A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version E
• Un papel puede tener una multiplicidad generalización
expresada con constantes_enteras, *, ..
• Las asociaciones pueden denotar navegabilidad
(sentido) mediante una flecha Francisco Ortín Soler 33 Francisco Ortín Soler 34
No es necesario especificar
los valores de los atributos atributo1 = valor1 manuel :
Estudiante
atributo2 = valor2
9
Diagramas de Clases y Objetos Diagramas de Clases y Objetos
Interfaces Asociaciones Cualificadas
• Interfaz (interface) es: • ¿Cómo podría establecerse una relación entre Directorio y
Un tipo (conjunto de operaciones)
Fichero?
Una capacidad de un conjunto de abstracciones
Un fichero tiene que estar en un directorio
Una colección de mensajes u operaciones
Un directorio tiene un conjunto de ficheros
• Hay lenguajes (Java), arquitecturas (CORBA), componentes (COM)
y middlewares (RMI) que dan soporte a este concepto El nombre del fichero ha de ser único
run() : void
Productor
+ run() : void
Consumidor MiApplet Productor
+
Consumidor
10
Diagramas de Casos de Uso Diagramas de Casos de Uso
Casos de Uso Diagramas de Casos de Uso
• Un diagrama de casos de uso muestra un conjunto de casos de uso, actores y sus
relaciones. También es común mostrar los límites del sistema.
A 4.00 Unregistered Trial VersionSistema
EAde4.00 Unregistered Trial Version E
Finanzas
un usuario y un sistema computacional [Fowler] A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version E
Gerente
Sistema de
• Un casos de uso especifican el comportamiento A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version
Contabilidad E
Límite Excedido
sistema
A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version E
Francisco Ortín Soler 41 Francisco Ortín Soler 42
A 4 00 U i t dT i lV i EA 4 00 U i t dT i lV i E
misma persona
Negociación
Sistema de Analizar Riesgo
Agente de Ventas
Contabilidad
común Caso
particular
«include»
Evaluar
«extend»
11
Diagramas de Casos de Uso Diagramas de Casos de Uso
Escenarios Escenario “Límite Operació
Operación”
Nombre Escenario 1.1: Límite Operación.
• Un escenario es una sola ruta a través de un Precondiciones: No existe un límite previo a la
caso de uso. Una ruta que muestra una particular operación en curso. En caso contrario, sería el
escenario 1.2
combinación de condiciones, dentro de un caso Postcondiciones: La operación ha sido validada con
de uso límites superior y/o inferior.
Excepciones: Cliente no encontrado, operación ya
• Un escenario es una instancia de un caso de uso restringida.
• Los escenarios suelen describirse mediante Actor Principal: Gerente. Establecer Límites
• La descripción de escenarios y CUs suele Obtener cliente y operación. Si no, sería otro
realizarse con los siguientes datos: Cliente existente en la BD. escenario del mismo CU
Comprobar solvencia del cliente.
Nombre, Precondiciones, Postcondiciones Operación no existente.
(objetivo), Excepciones, Actores, Detalle de Comprobar que los límites solicitados se
Operaciones (Pasos en CU) encuentran dentro de los rangos del cliente.
Confirmación alta.
Francisco Ortín Soler 45 Francisco Ortín Soler 46
12
Diagramas de Interacción Diagramas de Interacción
Diagramas de Interacció
Interacción Empleo de Diagramas de Interacció
Interacción
• Forman parte del modelo dinámico
• En análisis y especificación del modelo
• Describen el modo en el que un grupo de objetos
interaccionan para lograr cierto conceptual:
comportamiento Se utilizan como representación (formalización) de
• Muestra el modelo de un sistema, desde el punto escenarios
de vista del paso de mensajes entre objetos Ayudan a la comprensión del sistema
• Representan escenarios Facilitan el descubrimiento de objetos y clases
• Dos tipos: • En la fase de diseño:
Destacando la ordenación temporal de los Facilitan la documentación del código
mensajes: Diagramas de secuencia Facilitan el descubrimiento de mensajes (y
Destacando la organización estructural de los métodos) y atributos de una clase
objetos: Diagramas de colaboración
Ayudan a comprender los roles de los objetos en
• Poseen equivalencia semántica (de uno se puede cada comportamiento dinámico
obtener el otro)
Francisco Ortín Soler 49 Francisco Ortín Soler 50
13
Diagramas de Interacción Diagramas de Interacción
Ejemplo Diagrama Colaboració
Colaboración Sincronizació
Sincronización
• En los diagramas de colaboración, los focos de control se • En los diagramas de interacción (secuencia y
especifican con numeración 1, 2, 2.1, 2.2, 3… colaboración) se pueden especificar distintos
00 Unregistered Trial Versionmundo")
EA 4.00 Unregistered
:Existe
Trial Ver
envíos de mensajes
1.1 evaluar("hola palabra = "pepe"
Simple: Un solo hilo de control, el objeto activo le
00 Unregistered Trial Version 1.2EA
false
4.00 Unregistered Trial Ver pasa el control al objeto pasivo (que pasa a ser
:ConsultaO
activo)
00 Unregistered Trial Version EA 4.00 Unregistered Trial Ver
1.3 evaluar("hola mundo")
Síncrono: El cliente se bloquea hasta que el
00 Unregistered Trial Version 1.4EA
true 4.00 Unregistered Trial Ver
:ConsultaNo
servidor acepta o rechaza el mensaje
Asíncrono: No se interrumpe la ejecución del
002 true
Unregistered Trialmundo")
1 evaluar("hola Version EA 4.00 Unregistered Trial Ver cliente; no se sabe cuándo se llevará a cabo la
petición
00 Unregistered Trial Version 1.3.1
EAevaluar("hola mundo")
4.00 Unregistered 1.3.2 false
Trial Ver
Mensaje Representación UML Representación EA
00 Unregistered Trial Version EA 4.00 Unregistered Trial Ver Simple
Síncrono
:Primera
Asíncrono
palabra = "adios"
::Usuario
00 Unregistered Trial Version EA 4.00 Unregistered Trial Ver
Francisco Ortín Soler 53 Francisco Ortín Soler 54
Diagramas de Paquetes
Contenidos Paquetes en UML
• Un paquete es un mecanismo general para
• Introducción organizar modelos/subsistemas, agrupando
• Presentación de UML elementos de modelado
• Un Primer Ejemplo • Cada paquete representa a un submodelo
• Diagramas de Clases y Objetos (subsistema) del modelo (sistema)
• Un paquete puede contener a otro paquete sin
• Diagramas de Casos de Uso
límite de anidamiento
• Diagramas de Interacción • Un paquete no sólo se utiliza para agrupar
• Diagramas de Paquetes clases, sino cualquier elemento estructural de
• Diagramas de Estados UML
• Diagramas de Actividades • El operador :: permite referenciar a una clase
definida en un contexto distinto al actual
• Diagramas de Componentes
• La principal relación entre paquetes es de
• Diagramas de Despliegue dependencia: se produce cuando los cambios en
Francisco Ortín Soler 55 el destino generan cambios enFrancisco
el origen
Ortín Soler 56
14
Diagramas de Paquetes
Ejemplo Contenidos
JSP AWT
• Introducción
stered Trial Version EA 4.00 Unregistered Tri
• Presentación de UML
stered Trial Version EA 4.00 Unregistered Tri • Un Primer Ejemplo
• Lo siguiente puede ser un
diagrama de paquetes de stered Trial Version EA 4.00 Unregistered Tri • Diagramas de Clases y Objetos
la estructura estática de la
stered Trial Version EA 4.00 Unregistered Tri
• Diagramas de Casos de Uso
implementación de la IU Consultas HTML
aplicación de Consultas, stered Trial Version IU Consultas Applet • Diagramas de Interacción
EA 4.00 Unregistered Tri
siguiendo una arquitectura • Diagramas de Paquetes
MVC (Modelo / Vista / stered Trial Version EA 4.00 Unregistered Tri • Diagramas de Estados
Controlador)
stered Trial Version EA 4.00 Unregistered Tri • Diagramas de Actividades
stered Trial Version
ConsultasEA 4.00 Unregistered Tri • Diagramas de Componentes
• Diagramas de Despliegue
stered Trial Version EA 4.00 Unregistered Tri
Francisco Ortín Soler 57 Francisco Ortín Soler 58
15
Diagramas de Estados Diagramas de Estados
Ejemplo de Diagrama de Estados Actividades y acciones de entrada y salida
• A veces se necesita que un objeto realice una actividad al
Logical View ::Cliente encontrarse en un estado
Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4
Final
- DNI: int • Se puede definir ésta, para que se produzca ante un
baja - nombre: String
evento dentro del estado
Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4 - númeroPrestamos: int
• Una actividad suele ser la invocación de un método
Sin Préstamos + concederPréstamo()
alta
Unregistered + cancelarPréstamo()
Trial Version EA 4.00 Unregistered Trial Version EA 4 • Los eventos predefinidos son:
Entrada (entry): Al entrar en un estado, sin importar la
Initial
Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4 transición ejecutada
solicitarPrestamo /concederPréstamo amortizar [númeroPréstamos==0] /cancelarPréstamo Salida (exit): Al abandonar un estado, sin importar la
16
Diagramas de Actividades
Contenidos Diagramas de Actividades
concurrente Dominio: No
EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version
EA 4.00 Unregistered Trial Version Obtener
EA 4.00 Unregistered
[existe] Trial Version EA 4.0 indica qué [existe]
Poner Filtro Añadir Agua Taza
entidad realiza EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version
condición la actividad Poner Filtro Añadir Agua Obtener Taza
EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.0 Implementació EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version
actividades n: No se
EA 4.00 Unregistered Trial Version EA 4.00 Unregistered
Poner Café Trial Version EA 4.0 especifica la EA 4.00 Unregistered
Poner Café Trial Version EA 4.00 Unregistered Trial Version
Seleccionar
Bebida
[agotada] clase Seleccionar [agotada]
EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.0 • Las calles o Bebida
secuencia con
EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.0 las EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version
Diagrama de actividades del Diagrama de actividades del
responsabilidad funcionamiento de una
funcionamiento de una
EA 4.00deUnregistered Trial Version EA 4.00 Unregistered Trial Av
Version final
EA 4.0 es de cada EA 4.00 Unregistered Trial Version
máquina de bebidas
EA 4.00 Unregistered Trial Version
Av isar
máquina bebidas
Serv ir Café
isar
Usuario
calle Serv ir Café Usuario
17
Diagramas de Componentes
Contenidos Diagramas de Componentes
implementación y arquitectura A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Versio
Implementación de componentes reales (COM+, Interfaces Dependencias
A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Versio
EJB, CORBA). «artifact»
«send»
fuente o ejecutable)
Organización de la aplicación en archivos fuente A 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Versio
18
Diagramas de Despliegue
Contenidos Diagrama de Despliegue
• Introducción
• Presentación de UML • Modela la topología hardware del sistema
• Un Primer Ejemplo • Pertenece a la vista física del sistema
• Diagramas de Clases y Objetos • Un nodo es un elementos físico que representa
• Diagramas de Casos de Uso un recurso con capacidad computacional
• Diagramas de Interacción • En los nodos se despliegan y ejecutan
componentes
• Diagramas de Paquetes
• Los arcos (interconexiones) representan
• Diagramas de Estados conexiones físicas entre nodos
• Diagramas de Actividades • Los estereotipos permiten precisar las
• Diagramas de Componentes características de los equipos y conexiones
• Diagramas de Despliegue
Francisco Ortín Soler 73 Francisco Ortín Soler 74
Conexiones
EA 4.00 Unregistered Trial Version EA 4.00 Unregistered Trial Version EA 4.0
Componentes
«COM»
19