1
Área de Ingeniería Telemática
1
Universidad de Sevilla
UML
UML (Unified Modeling Language)
Lenguage Unificado de Modelado
Antonio J. Sierra
Área de Ingeniería Telemática
2
Universidad de Sevilla
UML
Índice
Historia
Introducción
Objetivos del modelo
Críticas
Modelo Conceptual de UML
Clases
Diagrama de Clases
2
Área de Ingeniería Telemática
3
Universidad de Sevilla
UML
Historia (I)
Entre mitad de los setenta y finales de los ochenta.
De 10 a 50 métodos orientados a objetos (1989-1994)
No cubrían las necesidades completamente.
De la experiencia de estos:
El método Booch,
El método OOSE (Object-Oriented Software Engineering) de Jacobson
El método OMT (Object Modeling Technique) Rumbaugh
Área de Ingeniería Telemática
4
Universidad de Sevilla
UML
Historia
3
Área de Ingeniería Telemática
5
Universidad de Sevilla
UML
Introducción
Unified Modeling Language (UML) es un lenguaje de modelado de propósito general estándarizado en el campo de la ingeniería software.
UML incluye un conjunto de técnicas de notación gráfica para crear modelos abstractos de sistemas específicos, referidos como modelo UML.
UML es un lenguaje gráfico de modelado de sistemas de software más conocido y utilizado en la actualidad;
Respaldado por el OMG (Object Management Group).
Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software.
UML ofrece un estándar para describir un "plano" del sistema (modelo):
incluyendo aspectos conceptuales tales como procesos de negocios y funciones del sistema,
y aspectos concretos como expresiones de lenguajes de programación,
esquemas de bases de datos y componentes de software reutilizables.
Área de Ingeniería Telemática
6
Universidad de Sevilla
UML
Introducción
UML es un "lenguaje" para especificar y no para describir métodos o procesos.
Se utiliza para definir un sistema de software, para detallar los artefactos en el sistema y para documentar y construir.
Es el lenguaje en el que está descrito el modelo.
Se puede aplicar en una gran variedad de formas para dar soporte a una metodología de desarrollo de software (tal como el Proceso Unificado Racional o RUP), pero no especifica en sí mismo qué metodología o proceso usar.
4
Área de Ingeniería Telemática
7
Universidad de Sevilla
UML
Introducción
UML no puede compararse con la programación estructurada, pues UML significa (Lengua de Modelación Unificada),
UML no es un programa, solo se representa en forma de diagrama la realidad de una utilización en un requerimiento.
La programación estructurada, es una forma de programar como lo es la orientación a objetos,
La orientación a objetos viene siendo un complemento perfecto de UML, pero no por eso se toma UML sólo para lenguajes orientados a objetos
Área de Ingeniería Telemática
8
Universidad de Sevilla
UML
Objetivos del modelo
Visualizar como es o queremos que sea un sistema.
Especificar la estructura y el comportamiento.
Proporcionar plantillas que nos guíen en la construcción de un sistema.
Documentar las decisiones que hemos adoptado.
5
Área de Ingeniería Telemática
9
Universidad de Sevilla
UML
Críticas a UML
A pesar de estar ampliamente reconocido y utilizado, UML siempre ha sido muy criticado por su carencia de una semántica precisa, lo que ha dado lugar a que la interpretación de un modelo UML no pueda ser objetiva.
Otro problema de UML es que no se presta con facilidad al diseño de sistemas distribuidos.
En tales sistemas cobran importancia factores como transmisión, serialización, persistencia, etc. UML no cuenta con maneras de describir tales factores.
No se puede, por ejemplo, usar UML para señalar que un objeto es persistente o remoto, o que existe en un servidor que corre continuamente y que es compartido entre varias instancias de ejecución del sistema analizado. Sin embargo, UML si acepta la creación de nuestros propios componentes para este tipo de modelado.
Área de Ingeniería Telemática
10
Universidad de Sevilla
UML
Modelo Conceptual de UML
Bloques básicos de construcción de UML
Elementos
Relaciones
Diagramas
Reglas de UML
Mecanismos comunes
Especificaciones
Adornos
Divisiones comunes
Mecanismos de extensibilidad
6
Área de Ingeniería Telemática
11
Universidad de Sevilla
UML
Bloques básicos de construcción de UML
Elementos
Elementos estructurales
Elementos de comportamiento
Elementos de agrupación
Elementos de anotación
Relaciones
Dependencia
Asociación
Generación
Realización
Diagramas
clases
objetos
casos de uso
de secuencia
de colaboración
de estados
de actividades
de componentes
de despliegue
Área de Ingeniería Telemática
12
Universidad de Sevilla
UML
Elementos estructurales
Clase
Interfaz
Colaboración
Caso de Uso
Clase activa
Componente
Nodo
7
Área de Ingeniería Telemática
13
Universidad de Sevilla
UML
Elementos Estructurales: Las clases
Ventana
+origen
#altura : Float
-esMaestra : Boolean = false
abrir()
cerrar()
mover()
dibujar()
ponerAlarma(t:Temperatura)
valor() : Temperatura
Nombre
(abstracta
en cursiva)
atributos
operaciones
java::awt::Rectangle
Nombre de
Camino de clases
Nombres
Simples de clases
Cliente
Responsabilidades
-- descriptivo de lo que
realiza responsabilidades
público
protegido
privado
Área de Ingeniería Telemática
14
Universidad de Sevilla
UML
Atributos
[visibilidad] nombre
{multiplicidad}[:tipo]
[=valor inicial] [{propiedades}]
Propiedades predefinidas
changeable No hay restricciones para modificar el valor del atributo
addOnly Una vez creado un valor no puede ser eliminado o modificado (con multiplicidad mayor que 1)
frozen El valor del atributo no se puede modificar tras inicializar el objeto
8
Área de Ingeniería Telemática
15
Universidad de Sevilla
UML
Operaciones
[visibilidad] nombre [(lista de parámetros)][:tipo de retorno] [{propiedades}]
En la lista por parámetros
[dirección] nombre : tipo [= valor por defecto]
dirección puede ser in para parámetro de entrada (no modificable), out para salida (modificable) e inout para entrada (modificable).
propiedades puede ser
leaf no puede ser polimórfica
isQuery sin efectos laterales
sequential los invocadores deben coordinarse para que en el objeto sólo haya un único flujo
guarded se puede invocar exactamente una operación a un mismo tiempo sobre el objeto
concurrent operación concurrente
Área de Ingeniería Telemática
16
Universidad de Sevilla
UML
Ejemplos
Cliente 3
nombre
dirección
teléfono
fechaNacimiento
Factura
Almacén
Icono
{root}
origen:Punto
Mostrar()
Transacción
acciones
tuvoExito()
deshacer()
Producto
id
nombre
precio
ubicación
Envio
Responsabilidades
--Mantener información
relativa a productos enviados
Botón
{leaf}
Mostrar()
9
Área de Ingeniería Telemática
17
Universidad de Sevilla
UML
Interacción, mensaje intercambiados entre un conjunto de objetos
Elementos de comportamiento
Máquina de estados, secuencia de estados por los que pasa un objeto, una interacción durante su vida en respuesta a eventos
Esperando dibujar
Área de Ingeniería Telemática
18
Universidad de Sevilla
UML
Elementos de agrupación, y Elementos de anotación
Los elementos de agrupación, son partes organizativas
Los elementos de anotación, son partes explicativas
Reglas del negocio
Paquetes
Devuelve una
copia del objeto
receptor
Notas
10
Área de Ingeniería Telemática
19
Universidad de Sevilla
UML
Relación en UML
Dependencia, es una relación semántica entre dos elementos, en la cual un cambio a un elemento puede afectar a la semántica del otro
Asociación, relación estructural que describe un conjunto de enlaces, los cuales son conexiones entre objetos
Generalización, relación de especialización/generalización en la cual los objetos del elemento especializado (hijo) puede sustituir a los objetos del elemento general (padre)
Realización, relación semántica entre clasificadores, en donde un clasificador especifica un contrato que otro clasificador garantiza que cumplirá.
0..1 *
patrón empleado
Área de Ingeniería Telemática
20
Universidad de Sevilla
UML
Diagrama de Clases