Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 2
Objetivos y Bibliografa
Objetivos
Presentar el estndar UML 2. Conocer los principales constructores del lenguaje, as como los diversos tipos de diagramas. Conocer algunos conceptos tiles acerca de modelado.
Bibliografa Bsica
Booch, Rumbaugh y Jacobson (2006): El Lenguaje Unificado de Modelado
Caps. 2 y 7.
Complementaria
Booch, Rumbaugh y Jacobson (2006): El Lenguaje Unificado de Modelado
Caps. 4, 5 y 6.
Bibliografa (cont.)
Webs
Mltiples enlaces e informaciones sobre UML:
http://www.cetus-links.org/oo_uml.html
2.3
Contenido
Introduccin
Importancia del modelado UML
Caractersticas principales Ventajas e inconvenientes
Modelo Conceptual
Elementos
Estructurales De Comportamiento De Agrupacin De Anotacin
Relaciones Diagramas
Estructurales De Comportamiento
OCL
2.4
Introduccin
Introduccin - Modelado
Un modelo es una abstraccin de un sistema o entidad del mundo real. Una abstraccin es una simplificacin, que incluye slo aquellos detalles relevantes para algn determinado propsito El modelado permite abordar la complejidad de los sistemas
2.6
Representa slo la lgica e ignora el resto El ser humano lo interpreta muy lentamente No facilita la reutilizacin ni la comunicacin
2.7
2.8
No es ambigua ni confusa (una vez conocemos la semntica de cada elemento de modelado) Es fcil y rpida de interpretar Es fcil de procesar por herramientas
2.9
Introduccin - Qu es UML?
UML = Unified Modeling Language
Estndar: Independiente de cualquier fabricante comercial Agrupa notaciones y conceptos provenientes de distintos tipos de mtodos orientados a objetos
Rumbaugh Booch
Odell UML Shlaer-Mellor
Object life cycles OMT
Jacobson
Objectory (Use Cases)
Meyer
Pre- and Post-conditions
Harel
State Charts
Embly
Singleton classes Patricia Lpez, Francisco Ruiz - IS1
Fusion
Operation descriptions, Message numbering 2.10
2.11
2.12
UML cubre las diferentes vistas de la arquitectura de un sistema mientras evoluciona a travs del ciclo de vida del desarrollo de software
Vistas Software (estticas, dinmicas, etc..)
2.13
Es fcilmente extensible
Inconvenientes de UML
No es una metodologa. Adems de UML, hace falta una metodologa OO No cubre todas las necesidades de especificacin de un proyecto software
No define los documentos textuales o el diseo de interfaces de usuario
Faltan ejemplos elaborados en la documentacin Puede resultar complejo alcanzar un conocimiento completo del lenguaje
Sin embargo => Regla del 80 - 20
2.14
2.15
Objetivos
Sistemas independientemente de la metodologa de anlisis y diseo pero siempre con una perspectiva orientada a objetos
2.16
Objetivos - Visualizar
Detrs de cada smbolo en UML hay una semntica bien definida. Basada en un metamodelo estndar MOF-compliant. Es ms que un montn de smbolos grficos Trasciende lo que puede ser representado en un lenguaje de programacin Modelo explcito, que facilita la comunicacin.
E m pleado
N m in a
U su a ri o C a l cu l a r N m i n a
C alc ular
E m pleado
F i jo
Tem poral
2.17
Objetivos - Especificar
Especificar es equivalente a construir modelos precisos, no ambiguos y completos. UML cubre la especificacin del anlisis, diseo e implementacin de un sistema intensivo en software.
2.18
Objetivos - Construir
UML no es un lenguaje de programacin visual, pero es posible establecer correspondencias entre un modelo UML y lenguajes de programacin (Java, C++) y bases de datos (relacionales, OO).
2.19
Objetivos - Documentar
Importancia en el mantenimiento
2.20
Conceptos de Modelado
Sistema
Coleccin de elementos, posiblemente divididos en subsistemas, organizados para lograr un propsito. Est descrito por un conjunto de modelos.
Modelo
Simplificacin completa y autoconsistente de la realidad, creado para comprender mejor un sistema.
Vista (Arquitectural)
Proyeccin de la organizacin y estructura de un modelo de un sistema, centrada en un aspecto. Incluye un subconjunto de los elementos incluidos en el modelo
Diagrama
Representacin grfica de un conjunto de elementos del modelo y sus relaciones. En UML generalmente corresponde a un grafo conexo de nodos (elementos) y arcos (relaciones).
2.21
Cada modelo es completo desde un punto de vista del sistema. Sin embargo, existen relaciones de trazabilidad entre los diferentes modelos.
2.22
Los modelos a utilizar los define la metodologa que se aplique en el proceso de desarrollo
verificado por
Modelo de anlisis
Modelo de diseo
Modelo de implementacin
Modelo de despliegue
Modelo de pruebas
2.23
No se requiere una vista que contenga la semntica completa de la aplicacin. La semntica reside en el modelo.
2.24
Vista de diseo
Vista de despliegue
Fsico
2.25
2.26
Las elementos que la forman dan soporte a los requisitos funcionales del sistema. Los diagramas que le corresponden son:
Aspectos estticos: diagramas de clases y de objetos. Tambin son tiles los diagramas de estructura compuesta de clases. Aspectos dinmicos: diagramas de interaccin, de estados y de actividades.
2.27
Pero atendiendo ms las clases activas que controlan el sistema y los mensajes entre ellas.
2.28
2.29
2.30
2.31
Modelo
organizado en
visualizadas en
Vistas Arquitecturales
Diagramas
Diagramas de Casos de Uso Diagramas de Clases Diagramas de Objetos Diagramas de Secuencia Diagramas de Colaboracin Diagramas de Estado Diagramas de Actividad Diagramas de Componentes
2.32
Vista de Casos de Uso (Funcionalidad) Vista de Diseo (Arquitectura interna) Vista de Interaccin (Concurrencia y sincronizacin) Vista de Implementacin (Arquitectura externa) Vista de Despliegue (Plataforma y distribucin)
En resumen
La gestin de un modelo UML requiere una herramienta especfica que mantenga la consistencia del modelo.
2.33
Modelo Conceptual
Aplicacin eficaz de UML => Conocer y comprender su metamodelo Metamodelo = Modelo conceptual del lenguaje
Qu elementos nos ofrece UML para modelar un sistema? Qu representa cada uno? Para qu se usa?
Reglas que dictan cmo pueden combinarse estos bloques Mecanismos comunes que se aplican a lo largo del lenguaje
Especificaciones Adornos Divisiones comunes Mecanismos de extensibilidad.
Patricia Lpez, Francisco Ruiz - IS1 2.34
Elementos
Los elementos de UML son los bloques bsicos de construccin de un sistema orientado a objetos.
Son abstracciones que constituyen los ciudadanos de primera clase en un modelo. Se utilizan para construir modelos bien formados.
2.35
Elementos - Estructurales
Son los nombres (sujetos) de los modelos UML. En su mayora, son las partes estticas de un modelo. En UML 2 existen los siguientes tipos:
Clase Interfaz Colaboracin Caso de Uso Objeto Clase activa Componente Artefacto Nodo
Todos ellos son tipos de Clasificadores (Classifier) Representan cosas conceptuales o lgicas (seis primeros) o elementos fsicos (dos ltimos).
2.36
Elementos - Estructurales
Clase
Una clase es una descripcin de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semntica. Es un concepto de diseo
En ejecucin, el sistema est formado por instancias de clases (Objetos)
Las clases pueden representar cosas hardware, software, conceptos genricos, personas
Cliente
2.37
Elementos - Estructurales
Objeto
Un objeto representa una instancia de una clase en un determinado contexto Es un concepto de ejecucin
El sistema estar formado por un conjunto de objetos interaccionando entre s bancoSantander:Banco Pepe:Cliente Juan:Cliente
cuentaPepe:Cuenta
2.38
Elementos - Estructurales
Interfaz
Coleccin de operaciones que especifican un servicio que puede ser ofrecido por una clase o componente. Describen el comportamiento visible externamente de dichos elementos.
Pueden representar el comportamiento completo de la clase/componente o solo una parte.
Una interfaz define un conjunto de especificaciones de operaciones (signaturas), pero no las implementaciones de dichas operaciones.
Visual Paradigm for UML Standard Edition(Universidad de Cantabria)
2.39
Elementos - Estructurales
Caso de Uso
Describe un comportamiento de un sistema, clase o componente, desde el punto de vista del usuario. Describe un conjunto de secuencias de acciones que ejecuta un sistema y que produce un resultado observable que es de inters para un usuario particular. Se emplea para estructurar los aspectos de comportamiento. Un caso de uso es realizado por una colaboracin.
Realizar pedido
2.40
Elementos - Estructurales
Colaboracin
Define una interaccin entre una sociedad de roles y otros elementos que colaboran para proporcionar un comportamiento mayor que la suma de sus comportamientos aislados. Tienen dimensin estructural y de comportamiento.
Realizar pedido
cliente
Realizar pedido
servicioCompras compra
2.41
Elementos - Estructurales
Clase Activa
Tipo especial de clase cuyos objetos tienen uno o ms procesos o hilos de ejecucin =>
Pueden dar origen a actividades de control.
Son iguales que las clases salvo que sus objetos pueden ser concurrentes con otros objetos de clases activas.
GestorDeEventos suspender() vaciarCola()
2.42
Elementos - Estructurales
Componente
Parte modular de la arquitectura fsica de un sistema que oculta su implementacin tras un conjunto de interfaces externas. Define su comportamiento en base a interfaces requeridas y ofertadas
Reemplazables
El sistema se define en base a componentes conectados entre s. Los componentes pueden ser de granularidad variable
IPedidos FormularioDePedido GestinPedidos
2.43
Component
Component
Component
ActiveClass
2.44
Elementos - Estructurales
Artefacto
Parte fsica y reemplazable de un sistema que contiene informacin fsica (bits). Es utilizada o generada en el proceso de desarrollo Hay diferentes artefactos de despliegue:
cdigo fuente, ejecutables, scripts, etc.
<<artifact>>
ventana.dll
2.45
Elementos - Estructurales
Nodo
Elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional. En un nodo pueden residir un conjunto de artefactos. Sirven para describir las plataformas en las que se ejecutan las aplicaciones
Visual Paradigm for UML Standard Edition(Universidad de Cantabria)
Servidor
2.46
Elementos De Comportamiento
Son las partes dinmicas de los modelos UML. Equivalen a los verbos de un modelo. Representan comportamiento en el tiempo y el espacio. Suelen estar conectados semnticamente a elementos estructurales. Hay tres tipos:
nfasis en Interaccin Mquina de Estados Actividad
conjunto de objetos que interactan ciclo de vida de un objeto flujo entre pasos, sin mirar qu objeto ejecuta cada paso
2.47
Elementos - De Comportamiento
Interaccin
Comportamiento que comprende un conjunto de mensajes intercambiados entre un conjunto de objetos, dentro de un contexto particular, para un propsito especfico. Sirven para modelar el comportamiento de una sociedad de objetos, o una operacin individual. Adems de a los objetos implicados, involucran:
Mensajes, Acciones y Enlaces (conexiones entre objetos).
dibujar
2.48
Elementos - De Comportamiento
Mquina de Estados
Comportamiento que especifica las secuencias de estados por las que pasa un objeto o una interaccin durante su vida, en respuesta a eventos, junto con sus reacciones a dichos eventos. Sirven para especificar el comportamiento de una clase individual o una colaboracin de clases. Involucran a:
Estados, Transiciones (flujo de un estado a otro), Eventos (que disparan una transicin) y Actividades (respuesta a una transicin) Esperando
2.49
Elementos - De Comportamiento
Actividad
Comportamiento que especifica la secuencia de pasos que ejecuta un proceso computacional. Una accin es un paso de una actividad.
Procesar pedido
2.50
Elementos De Agrupacin
Son las partes organizativas de los modelos UML. Son las cajas en las que puede dividirse un modelo. Hay un tipo principal: Paquete
Mecanismo de propsito general para organizar el propio diseo Un paquete puede incluir elementos estructurales, de comportamiento y otros paquetes. Un paquete es puramente conceptual (slo existe en tiempo de desarrollo)
N o m b re d e p a q u e te
2.51
Elementos De Agrupacin
Paquete
Es recomendable que el contenido sea una coleccin de elementos UML relacionados de forma lgica. Se pueden utilizar en cualquier tipo de diagrama UML. Un paquete puede contener otros paquetes, sin lmite de anidamiento, pero cada elemento pertenece a (est definido en) slo un paquete. La visibilidad de los elementos incluidos en un paquete puede controlarse para que algunos sean visibles fuera del paquete mientras que otros permanezcan ocultos.
2.52
Elementos De Anotacin
Son las partes explicativas de los modelos UML. Son comentarios que se aaden para describir, clarificar y hacer observaciones. Hay un tipo principal:
Nota
Smbolo para mostrar restricciones y comentarios asociados a un elemento o coleccin de elementos. Se usan para aquello que se muestra mejor en forma textual (comentario) o formal (restriccin). Devolver una copia del mismo objeto antes de modificarlo
ClaseA modifica()
2.53
Relaciones
Relaciones - Dependencia
Dependencia
Relacin semntica en la cual un cambio a un elemento (independiente) puede afectar a la semntica del otro elemento (dependiente).
Ventana
Evento
Especializaciones: Refinamiento (refine), Traza (trace), extensin (extend), inclusin (include), <<trace>>
Patricia Lpez, Francisco Ruiz - IS1 2.55
Relaciones Asociacin
Asociacin
Relacin estructural entre clases que describe un conjunto de enlaces (conexiones entre objetos que son instancias de las clases). Indica que los objetos estn relacionados durante un periodo de tiempo continuado Puede tener un nombre que la describe (verbo, con direccin de lectura). Puede tener otro adornos:
rol que describe el papel especfico que una clase juega en una asociacin, multiplicidad para clase participante.
Profesor
tutor 0..1
Tutoriza
alumno *
Estudiante
2.56
Relaciones - Asociacin
Asociacin
Ejemplo de clase de asociacin y asociacin reflexiva.
tutor
0..1
prcticaEntregada *
Prctica
Calificacin
2.57
Agregacin y Composicin
Modelar objetos complejos en base a relaciones todo parte. Agregacin
Relacin dinmica: el tiempo de vida del objeto que se agrega es independiente del objeto agregador. El objeto agregador utiliza al agregado para su funcionamiento.
SIMILAR parmetro pasado por referencia.
Composicin
Relacin esttica: el tiempo de vida del objeto incluido est condicionado por el tiempo de vida del objeto compuesto. El objeto compuesto se construye a partir del objeto incluido.
SIMILAR parmetro pasado por valor.
2.58
Ejemplos
Curso
*
Alumno
2.59
Relaciones - Generalizacin
Generalizacin
Relacin de especializacin/generalizacin en la que el elemento especializado (hijo) extiende a la especificacin del elemento generalizado (padre). Las subclases (hijos) comparten la estructura y el comportamiento de la superclase (padre).
Trabajador
Directivo
Administrativo
Obrero
2.60
Relaciones - Generalizacin
Generalizacin
Una generalizacin da lugar al polimorfismo entre clases de una jerarqua de generalizaciones:
Un objeto de una subclase puede sustituir a un objeto de la superclase en cualquier contexto. Lo inverso no es cierto.
2.61
Relaciones - Realizacin
Realizacin
Relacin semntica entre clasificadores, donde un clasificador especifica un contrato que otro clasificador garantiza que cumplir. Se pueden encontrar en dos casos:
Clases o componentes que realizan interfaces. Colaboraciones que realizan casos de uso.
Ventana
2.62
Relaciones - Jerarquas
Jerarquas de Relaciones
Motor 1..4 Piloto 1..2 Vendedor de billetes 1
1 Avin 1 n n Vuelo
n 1 n
n Reserva
Relaciones - Jerarquas
2.64
Diagramas
Sirven para visualizar un sistema desde diferentes perspectivas. Un diagrama es una proyeccin grfica de un sistema.
Vista resumida de los elementos que constituyen el sistema.
El mismo elemento puede aparecer en varios diagramas. En teora, un diagrama puede contener cualquier combinacin de elementos y relaciones, sin embargo en la prctica solo un pequeo nmero de combinaciones tiene sentido:
Surgen as los tipos de diagramas de UML 2.
2.65
Diagramas
(DINMICA)
Casos de uso Estados Actividades Interaccin
Secuencia Comunicacin Tiempos Revisin de Interacciones
Diagramas - Estructurales
Los diagramas estructurales de UML 2 sirven para visualizar, especificar, construir y documentar los aspectos estticos de un sistema. Se organizan en base a los principales grupos de elementos que aparecen al modelar (durante las diferentes fases del proceso de desarrollo). Tipo de Diagrama
Clases Componentes Estructura Compuesta Objetos Paquetes Despliegue
Elementos Centrales
Clases, Interfaces, Colaboraciones Componentes Estructura Interna de Clase o Componente Objetos Paquetes Nodos, Artefactos
2.67
Diagramas - Estructurales
De Clases:
Muestran un conjunto de clases, interfaces y colaboraciones, as como las relaciones entre ellos. Son los diagramas ms comunes en el anlisis y diseo de un sistema:
Explorar conceptos del dominio (Modelo de Dominio). Analizar requisitos (Modelo de Anlisis / Conceptual). Describir el diseo detallado de un software OO (Modelo de Diseo).
F i jo
Tem poral
2.68
Diagramas - Estructurales
De Clases:
Principalmente, un diagrama de clases contiene:
Clases (con atributos, operaciones y visibilidad). Relaciones: Dependencia, Generalizacin, Asociacin, Agregacin y Composicin.
2.69
Diagramas - Estructurales
De Objetos:
Muestra un conjunto de objetos y sus relaciones. Representan instantneas estticas de instancias de los elementos existentes en los diagramas de clases. Describen la vista de diseo esttica pero desde el punto de vista de casos reales
2.70
Diagramas - Estructurales
De Componentes:
Describen la estructura del software mostrando la organizacin y las dependencias entre un conjunto de componentes. Pueden representar la encapsulacin de un componente con sus interfaces, puertos y estructura interna (posiblemente formada por otros componentes anidados y conectores). Cubren la vista de implementacin esttica del diseo de un sistema.
2.71
Diagramas - Estructurales
De Despliegue:
Muestran un conjunto de nodos y sus relaciones. Describen la vista de despliegue esttica de una arquitectura. Cada nodo (hardware) suele albergar uno o ms componentes. Muestran el hardware, el software y el middleware usado para conectar las mquinas.
2.72
Diagramas - Estructurales
De Despliegue:
Mediante iconos especializados se puede precisar la naturaleza de los nodos como constituyentes fsicos (dispositivos, archivos, bases de datos, etc.) de un sistema.
2.73
Diagramas - Estructurales
De Paquetes:
Muestran la descomposicin del propio modelo en unidades organizativas (paquetes) y sus dependencias. Sirven para simplificar los diagramas de clases complejos, permitiendo el agrupamiento de los clasificadores en paquetes.
2.74
Diagramas - Estructurales
De Estructura Compuesta:
Muestran la estructura interna (incluyendo partes y conectores) de un clasificador estructurado o una colaboracin. Muy parecidos a los diagramas de componentes.
2.75
Diagramas - De Comportamiento
Los diagramas de comportamiento de UML 2 sirven para visualizar, especificar, construir y documentar los aspectos dinmicos de un sistema. Se organizan en base a las formas en que se puede modelar la dinmica de un sistema. Tipo de Diagrama
Casos de Uso Secuencia
Comunicacin
Estados
Diagramas De Comportamiento
De Casos de Uso:
Muestran un conjunto de casos de uso y actores (tipo especial de clase) y sus relaciones. Cubren la vista de casos de uso esttica de un sistema. Son importantes en el modelado y organizacin del comportamiento de un sistema. Modelan el comportamiento del sistema desde el punto de vista externo. Juegan un papel clave en metodologas muy usadas (desarrollo dirigido por casos de uso).
relacin
CompraEntrada
UsuarioWEB
Caso de Uso
2.77
Diagramas De Comportamiento
De Casos de Uso:
Casos de Uso es una tcnica para capturar informacin respecto de los servicios que un sistema proporciona a su entorno (captura y especificacin de requisitos).
Cajero
Retirar dinero
2.78
Diagramas De Comportamiento
De Estados:
Muestran mquinas de estados, que constan de:
estados, transiciones, eventos y acciones.
Cubren la vista dinmica de un objeto. Son especialmente importantes en el modelado de una clase o colaboracin con comportamiento significativo. Resaltan el comportamiento dirigido por eventos de un objeto.
contratar en el paro perder empleo jubilarse jubilarse en activo
jubilado
Patricia Lpez, Francisco Ruiz - IS1 2.79
Diagramas De Comportamiento
De Estados:
Estados y Transiciones:
2.80
Diagramas De Comportamiento
De Estados:
Ejemplo.
alta baja
sin pr stam os
Socio nmero : i nt nombre : char[50] nmero_ prestamo s : int = 0
nm er o_prs tam os = 0
pres tar
alta() baja() prestar(c digo_libro : int, fecha : date) devolver(cdi go_libro : int, fecha : date)
2.81
Diagramas De Comportamiento
De Actividad:
Muestran el flujo paso a paso de una computacin (proceso, flujo de control o flujo de datos). Una actividad muestra un conjunto de acciones, el flujo entre ellas y los valores producidos o consumidos. Cubren la vista dinmica de un sistema. Resaltan el flujo de control entre objetos. Son el equivalente en OO a los diagramas de flujo y DFDs. Se emplean para especificar:
Una operacin compleja. Un proceso de negocio (business process) o flujo de trabajo (workflow). El proceso de negocio asociado a un caso de uso.
2.82
Diagramas De Comportamiento
De Actividad:
Las actividades se enlazan por transiciones automticas. Cuando una actividad termina se desencadena el paso a la siguiente actividad.
Estado inicial
[ Hora<13 ]
[ Hora>=13 ]
2.83
Diagramas De Comportamiento
De Actividad:
Ejemplo.
Proximity Sensor GraspAt(x,y,z) evIsNear [area not clear] [area clear] ComputeJointAngles(a,b) Alarm System AnnunciateAlarm
Joint 1 to a
Joint 2 to b
OpenGrip
Grasp Object
2.84
Diagramas De Comportamiento
Diagramas de Interaccin
Son un grupo especial de diagramas de comportamiento que muestran una interaccin:
Conjunto de objetos o roles y mensajes que pueden ser enviados entre ellos.
Cubren la vista dinmica de un sistema. Los objetos interactan para realizar colectivamente los servicios ofrecidos por las aplicaciones. UML 2 incluye los siguientes
Secuencia Comunicacin (antiguo de Colaboracin en UML 1.x) Tiempos Revisin de las Interacciones
2.85
Diagramas De Comportamiento
De Secuencia:
Es un diagrama de interaccin que resalta la ordenacin temporal de los mensajes intercambiados durante la interaccin. Presentan un conjunto de roles y los mensajes enviados y recibidos por las instancias que interpretan dichos roles. Habitualmente, sirven para mostrar como interaccionan unos objetos con otros en un caso de uso o un escenario de ejecucin.
Objeto1 Llamada() Objeto2
tiempo
Patricia Lpez, Francisco Ruiz - IS1 2.86
Diagramas De Comportamiento
De Secuencia:
Ejemplo.
: Encargado
: WInP rstam os
:Socio
:Video
: Prstamo
2.87
Diagramas De Comportamiento
De Comunicacin:
Es un diagrama de interaccin que resalta la organizacin estructural de los objetos o roles que envan y reciben mensajes en la interaccin. Muestran un conjunto de objetos, enlaces entre ellos y los mensajes enviados y recibidos. Se usan para modelar el comportamiento dinmico de un caso de uso.
Clase 1
llamada()
Clase2
Diagramas De Comportamiento
De Comunicacin:
Ejemplo.
:Socio
4: registrar prstamo
:Prstamo
2.89
Diagramas De Comportamiento
De Tiempos:
Muestran los tiempos reales en la interaccin entre diferentes objetos o roles.
Comportamiento de los objetos en un periodo determinado de tiempo.
2.90
Diagramas De Comportamiento
De Revisin de Interacciones:
Aportan una visin general del flujo de control de las interacciones. Hbrido entre diagrama de actividad y diagrama de secuencia.
2.91
Diagramas - Jerarqua
2.92
Mecanismos Comunes
UML tiene cuatro mecanismos comunes que se aplican de forma consistente a travs de todo el lenguaje:
Especificaciones Adornos Divisiones comunes Extensibilidad
Dan cohesin y simplifican el modelo Se aplican a todos los bloques de construccin del modelo
2.93
UML no es slo un lenguaje grfico: Detrs de la notacin grfica de cada elemento hay una especificacin que explica la sintaxis y semntica de ese bloque de construccin. La notacin grfica de UML se utiliza para visualizar el sistema. La especificacin se utiliza para expresar los detalles de dicho sistema. Los diagramas UML son proyecciones visuales de la base semntica provista por las especificaciones UML.
2.94
Ejemplo de Especificacin:
Detrs del icono de una clase hay una especificacin con informacin de los atributos, operaciones, signaturas y comportamiento.
Visualmente el icono de la clase puede mostrar slo parte de la especificacin.
Vehiculo
Vehiculo -marca: String[1] -modelo: String[1] + acelerar(int kmh)
2.95
Todos los elementos en la notacin grfica de UML parten de un smbolo bsico, al cual pueden aadirse una variedad de adornos especficos de ese smbolo.
La notacin bsica proporciona una representacin visual de los aspectos ms importantes del elemento. La especificacin incluye otros detalles, muchos de los cuales se pueden incluir como adornos grficos o textuales.
2.96
En el modelado orientado a objetos, existen varias divisiones comunes del mundo: Clase vs Objeto.
Una clase es una abstraccin. Un objeto es una manifestacin concreta de dicha abstraccin.
Se da en muchos otros bloques de construccin de UML: componente vs instancia de componente; nodo vs instancia de nodo, etc.
Patricia Lpez, Francisco Ruiz - IS1 2.97
Interfaz vs Implementacin.
Una interfaz declara un contrato. Una implementacin representa una realizacin concreta de ese contrato (hace efectiva la semntica completa de la interfaz).
Casos similares aparecen en casi todos los bloques de construccin de UML: caso de uso vs colaboraciones que los realizan; operaciones vs mtodos que las implementan.
Patricia Lpez, Francisco Ruiz - IS1 2.98
Tipo vs Rol.
Un tipo declara la clase de una entidad (objeto, atributo, parmetro, ). Un rol describe el significado de una entidad en un contexto (una clase, componente o colaboracin). Cualquier entidad que forma parte de otra tiene ambas caractersticas y su significado depende de las dos.
2.99
2.100
Estereotipo
Extiende el vocabulario de UML permitiendo crear nuevos tipos de bloques de construccin que derivan de los existentes pero que son especficos a un problema. Ejemplo
En Java las excepciones son clases, aunque se tratan de formas especiales. <<exception>> Overflow
2.101
2.102
Valor Etiquetado
Extiende las propiedades de un estereotipo de UML, permitiendo aadir nueva informacin en la especificacin del estereotipo. Ejemplo
Aadir versin y autor mediante la creacin del estereotipo <<conAutorVersion>> y asocindole una nota con los dos valores etiquetados.
<<conAutorVersion>>
2.103
Restriccin
Extiende la semntica de un bloque de construccin de UML, permitiendo aadir nuevas reglas o modificar las existentes. Ejemplo: Restringir la clase ColaDeEventos para que todas las adiciones se
hagan en orden.
<<conAutorVersion>>
Para especificar restricciones de forma precisa se usa OCL (Object Constraint Language).
2.104
2.105
OCL
OCL
Ejemplo
2.107
OCL
Invariantes:
Condiciones o restricciones que deben cumplirse siempre. Ejemplo
El nmero de empleados debe ser mayor que 50
context Compaa inv: self. nmeroDeEmpleados > 50
Compaa
2.108
OCL
Condiciones
Pre-condiciones o post-condiciones que deben cumplirse en operaciones Sintaxis
context NombreTipo::NombreOperacin(Param1 : Tipo1, ... ):TipoRetorno pre parametroOk: param1 < ... post resultadoOk : result > ...
Ejemplo
context Persona::nmina(fecha : Date) : Integer post: result > 650
Patricia Lpez, Francisco Ruiz - IS1 2.109
OCL
Ejemplos
context Persona::estaEnParo: Boolean init: true derive: if self.empleador->notEmpty() false else true end if
Patricia Lpez, Francisco Ruiz - IS1 2.110
OCL
Definiciones
Ejemplo
context Persona def: ingresos : Integer = self.puesto.sueldo->sum() def: apodo : String = Gallito rojo