UML Ejemplos
UML Ejemplos
UML Ejemplos
Tema 8
Estructura del Sistema (en desarrollo OO) Univ. Cantabria Fac. de Ciencias
Carlos Blanco, Francisco Ruiz
representar la estructura de un sistema. Aprender a realizar diagramas de clases y de objetos de UML 2. Aprender a modelar con ellos diferentes aspectos estructurales, del dominio del problema (requisitosanlisis) y del dominio de la solucin (diseo del sistema). Aprender a usar los mecanismos que permiten extender y particularizar UML.
8.2
Contenido
1. Introduccin 2. Elementos Estructurales 5. Objetos
! ! ! ! ! ! ! ! ! ! ! ! ! !
! ! ! ! !
Estado
Diagramas de Objetos
Consejos Vocabulario del Sistema Distribucin de Responsabilidades Semntica de una Clase Colaboraciones Esquemas de Datos Redes de Relaciones Lneas de Separacin Instancias Estereotipos Valores Etiquetados Restricciones Perfiles
6. Modelado
! ! ! !
7. Mecanismos de Extensin
8.3
Bibliografa
Bsica
! Booch, Rumbaugh y Jacobson (2006): El Lenguaje
Unificado de Modelado. 2 edicin.
! Caps. 4-6, 8-11 y 13-14.
Complementaria
! Rumbaugh, Jacobson y Booch (2007): El Lenguaje
! Cap. 4.
8.4
8.5
Introduccin
! Modelo de Implementacin
Introduccin
Modelo Conceptual
8.7
Introduccin
Modelo
de Anlisis
8.8
Introduccin
Modelo de Diseo
8.9
! ! ! !
! Cada objeto pertenece a una clase. ! Los objetos se crean por instanciacin de las clases.
8.11
Cuando se modela no hay que contemplar todo el detalle de las clases (abstraccin de modelado):
! ! !
Al dibujar una clase no hay que mostrar todos los atributos y operaciones. Se especifica con puntos suspensivos (...) que hay ms atributos u operaciones. Se utilizan estereotipos como categora descriptiva para organizar atributos y operaciones.
AgenteFraudes
<<constructor>> nuevo() nuevo(p:Poltica) <<procesamiento>> procesar(s:Siniestro) ... <<consultar>> esSospechoso(s:Siniestro) esFraudulento(s:Siniestro) <<utilidades>> validarSiniestro(s:Siniestro) 8.12
Las caractersticas bsicas de las clases UML Se complementan con otras caractersticas
avanzadas:
! Visibilidad de atributos y operaciones. ! Alcance de atributos. ! Multiplicidad de clases y atributos. ! Valor inicial y modificabilidad de atributos. ! Tipo de las operaciones.
8.14
atributo (property en UML) se pueden especificar otras caractersticas, segn la siguiente sintaxis:
! donde
! / significa que es un atributo derivado ! <modificador> representa un modificador que cambia la naturaleza del atributo.
8.15
Ejemplos de Atributos:
! origen ! + origen ! origen : Punto ! nombre : String [0..1] ! origen : Punto = (0,0) ! id : Integer {readOnly} ! / edad : Integer
nombre visibilidad y nombre nombre y tipo nombre, tipo y multiplicidad nombre, tipo y valor inicial nombre, tipo y modificador nombre y tipo (atributo derivado)
8.16
(encapsulacin) y mostrar slo aquellas caractersticas necesarias para llevar a cabo las responsabilidades de un clasificador. sistemas slidos y flexibles.
8.17
! ! ! !
public (+): Cualquier clasificador externo puede utilizar la caracterstica (opcin por defecto). protected (#): Slo los descendientes del clasificador pueden usarla. private (-): Slo el propio clasificador puede utilizarla. package (~): Slo los clasificadores declarados en el mismo paquete pueden utilizarla.
BarraHerramientas # seleccinActual:Herramienta # contadorHerramienta:Integer + elegirElemento(i:Integer) + aadirHerramienta(t:Herramienta) + quitarHerramienta(i:Integer) + obtenerHerramienta(): Herramienta # comprobarHuerfanos() - compactar() ~ reconfigurar()
8.18
Una caracterstica (atributo u operacin) de una clase (o clasificador en general) puede ser esttica o dinmica:
Dinmica (IsStatic=false)
! Cada instancia del clasificador tiene su propio valor o instancia para la caracterstica. ! Opcin por defecto.
Esttica (IsStatic=true)
! Hay un nico valor o instancia para todas las instancias del clasificador. ! Se muestra subrayando el nombre.
8.19
En el caso de los atributos, la Multiplicidad indica el nmero de valores simultneos que pueden existir para cada instancia de la clase.
! !
La opcin por defecto es un solo valor. En otro caso, se indica sealando entre corchetes el nmero mnimo (lower) y mximo (upper) de valores posibles: `[[<mnimo> ..] <mximo> [ {<orden> [,<unicidad>]}] `]
Donde
! ! ! ! <mnimo> es un valor entero <mximo> es un asterisco (*) o un valor entero. <orden> = { ordered | unordered } <unicidad> = { unique | nonunique }
8.20
! !
8.21
! readOnly: es de slo lectura (no modificable) ! union: es una unin derivada de sus subconjuntos ! ! ! ! !
(subsets). subsets <atributo2>: es un subconjunto de otro atributo redefines <atributo2>: redefine por herencia otro atributo. ordered: los valores simultneos de un atributo multivaluado estn ordenados secuencialmente. unique: no puede haber duplicados en un atributo multivaluado. <restriccin de atributo>: expresin que especifica una restriccin a nivel de atributo.
8.22
8.23
Operacin Es una caracterstica de comportamiento (behavioral feature) de un clasificador que especifica informacin para invocar un comportamiento asociado al clasificador. UML 2 distingue entre Operacin y Mtodo:
! ! ! !
Una operacin especifica un servicio que se puede requerir de cualquier objeto de una clase. Un mtodo es una implementacin de una operacin. Cada operacin (no abstracta) tiene un mtodo con el algoritmo ejecutable. En una jerarqua de herencia puede haber varios mtodos para la misma operacin (polimorfismo).
8.24
! donde
! <direccin> indica si es de entrada (in), salida (out), ambos (inout) o se devuelve al llamador como retorno (return). La opcin por defecto es in. ! <tipo> es el tipo de dato del parmetro. ! <multiplicidad> es similar a la de los atributos. ! <modificador> representa un modificador que afecta a la naturaleza del parmetro.
8.26
Ejemplos de
Operaciones:
nombre visibilidad y nombre nombre y parmetros nombre y tipo de retorno nombre y modificador
8.27
! redefines <operacion2>: redefine por herencia otra ! query: la operacin no cambia el estado del sistema
(consulta).
indicar tambin su semntica de concurrencia (Call Concurrency Kind) como un modificador adicional:
8.29
Responsabilidad
! !
Ejemplo: Una clase pared es responsable de saber su altura, anchura y grosor. Al ir refinando los modelos, las responsabilidades (texto libre) se traducen en el conjunto de atributos y operaciones que mejor satisfacen las responsabilidades de la clases.
AgenteDeFraudes
Responsabilidades - Determinar el riesgo de un siniestro de un cliente - Gestionar criterios de fraude especficos para cada cliente
8.30
8.31
dos clases cuando una de ellas utiliza a la otra como parmetro de una operacin.
8.32
Para precisar su naturaleza, UML incluye diversos estereotipos de dependencia entre clases y objetos:
! ! ! ! ! ! ! !
bind - para clases plantilla; el origen de la dependencia instancia al destino. derive - el origen se puede calcular a partir del destino. permit - el origen tiene visibilidad especial en el destino. instanceOf - el objeto (origen) es una instancia del clasificador (destino). instantiate - el origen crea instancias del destino. powertype - el destino es un supratipo (powertype) del origen. Un powertype es un clasificador cuyos objetos son todos los hijos posibles de un padre dado. refine - el origen est ms detallado que el destino. use - la semntica del origen depende de la parte pblica del destino.
8.33
La Generalizacin establece
una relacin con semntica es-un-tipo-de entre la clase hija (subclase) y la clase padre (superclase). En el caso de un modelo de diseo o implementacin denota una relacin de herencia.
8.34
! ! !
[UML 2 no lo tiene]
! Notacin: Restriccin {leaf} en el nombre de la clase. ! Notacin: Restriccin {root} en el nombre de la clase.
Y operaciones
! ! !
Polimrficas: Redefinen su comportamiento en varias clases hijas. Son incompletas y necesitan la redefinicin en las hijas. Abstractas: Necesitan de un complemento en las clases hijas.
! Notacin: Signatura en cursiva.
8.36
8.37
Conejo 8.38
Grupo de Generalizaciones
(generalization set)
por sexo
8.39
! Cobertura (IsCovering)
! complete => cada instancia de la superclase es obligatoriamente tambin instancia de alguna (o varias) subclases. ! incomplete => puede haber instancias de la superclase que no sean instancias en ninguna subclase.
! Solapamiento (IsDisjoint)
! disjoint => las subclases no pueden tener instancias comunes. ! overlapping => las subclases pueden tener instancias comunes.
! Notacin:
{<cobertura>,<solapamiento>}
8.40
Avin militar
Avin comercial
{ complete, overlapping }
Avin de carga
Avin de pasajeros
8.41
Agregacin
Departamento
8.42
Uno y slo uno Cero o uno Desde M hasta N (enteros naturales) Cero o varios [opcin por defecto] Cero o varios (cualquiera) Uno o muchos (al menos uno)
! Minima <>0 => restriccin de existencia. ! Mximo<>* => restriccin que limita el nmero de
Ejemplos
8.44
8.45
Navegacin en Asociaciones
! Por defecto, una asociacin en UML 2 es bidireccional =>
! Es posible navegar desde los objetos de una clase a los objetos de la otra clase.
8.46
(no se usa)
8.47
! Publica (+): opcin por defecto, sin restricciones. ! Privada (-): Los objetos de ese extremo no son
accesibles por objetos externos.
accesibles por objetos externos a la asociacin, excepto los hijos del otro extremo.
8.48
! Dado un usuario es posible ver sus objetos clave. ! Una clave es privada a un Usuario y no es visible desde el
exterior de la asociacin.
! => ! Dado un objeto GrupoUsuarios se pueden ver sus objetos Usuario (y viceversa), pero no se pueden ver los objetos Clave de dichos Usuarios.
8.49
subconjunto de objetos (suele ser uno solo) relacionados con un objeto a travs de una asociacin.
! El objeto origen, junto a los valores de los atributos del calificador, devuelven un objeto destino o un conjunto de objetos (dependiendo de la multiplicidad mxima del destino).
Cuadro
! Un Tablero de Ajedrez es una agregacin de mltiples Cuadros. ! Pero en una Fila y Columna solo hay un Cuadro.
8.51
8.52
de agregacin (todo-partes), pero con una fuerte relacin de pertenencia y vidas coincidentes entre las partes y el todo (compuesto).
8.53
agregado compuesto
1 +body Panel
+scrollbar Slider
2
+title
Header
partes
8.54
* Compaa patrn
Slo puede existir una instancia de la asociacin entre cualquier par de objetos participantes.
! En el ejemplo no se permite que una persona tenga varios trabajos para la misma compaa.
8.55
Semntica diferente?
8.56
! !
Orden (ordered): El conjunto de objetos de un extremo de una asociacin (con multiplicidad mayor que uno) estn ordenados. Unicidad: Los objetos del extremo de asociacin son nicos o no. Combinado con la anterior se pueden establecer cuatro situaciones:
! ! ! ! set bag ordered set sequence objetos nicos, sin duplicados. objetos no nicos, puede haber duplicados. nicos ordenados. ordenados con duplicados.
Cambiabilidad (readonly): Una vez aadido un enlace desde un objeto del otro extremo, no se puede modificar ni eliminar.
Polgono
1
contiene {ordered}
3..*
Punto
8.57
{xor} {subset}
+miembro 1..* Persona +director 1..1
8.58
Persona
Empresa
{ Persona.patrn= Persona.jefe.patrn }
8.59
(Template)
! Es un elemento de UML que permite definir una familia ! Incluye huecos (parmetros) para clases, objetos y
! Se representan dentro de un rectngulo discontinuo en la esquina superior derecha del smbolo de la clase.
Las clases plantillas se pueden instanciar mediante ligaduras implcitas (declarando una clase con el nombre de la plantilla) o explcitas (usando la dependencia estereotipada <<bind>>).
8.61
Clases Estereotipadas
! metaclass: sus objetos son clases. ! powertype: sus objetos son clases hijas de una clase
padre especfica. otros elementos.
! stereotype: el clasificador es un estereotipo aplicable a ! utility: clase cuyos atributos y operaciones son estticos. ! auxiliary: da soporte a otra clase mas importante. ! focus: define la lgica central para una o ms clases
auxiliares.
8.63
8.64
Los elementos de modelado que pueden tener instancias se llaman clasificadores. Aunque la clase es el clasificador ms importante, en UML 2 existen otros:
! ! ! ! ! ! !
Interfaz: Coleccin de operaciones que especifican un servicio de una clase o componente. Tipo de datos: Tipo cuyos valores no tienen identidad, incluyendo los tipos primitivos definidos (nmeros y strings), as como los tipos enumerados (booleanos, etc.). Seal: Especificacin de un estmulo asncrono enviado entre instancias. Componente: Parte fsica y reemplazable de un sistema que es conforme a y proporciona la realizacin de un conjunto de interfaces. Nodo: Elemento fsico que existe en tiempo de ejecucin y representa un recurso computacional (generalmente una mquina). Caso de uso: Descripcin de una secuencia de acciones, incluyendo variantes, que ejecuta un sistema y produce un resultado observable para un actor particular. Subsistema: Agrupacin de elementos, algunos de los cuales constituyen una especificacin del comportamiento de los otros elementos contenidos.
8.65
8.66
Interfaces 3. Interfaces Definen una lnea entre la especificacin de lo que una abstraccin hace y la implementacin de cmo lo hace. Una interfaz es una coleccin de operaciones que especifican los servicios de una clase o componente.
las vistas externa e interna de una abstraccin, haciendo posible comprenderla sin tener que entrar en los detalles de su implementacin.
8.67
Interfaces
Otros Usos:
! En sistemas grandes se pueden emplear tambin para ! Especificar un contrato para un caso de uso o un
subsistema. especificar la vista externa de un paquete o subsistema.
Interfaces
Interfaces
! Operaciones.
! Se pueden adornar con las tcnicas ya vistas.
! Relaciones.
! Puede intervenir en relaciones de generalizacin, asociacin y dependencia como lo hacen las clases. ! Adems intervienen en relaciones de realizacin.
! No especifican estructura
! => No tienen Atributos.
8.70
Interfaces
! Pre y post-condiciones
! Los clientes que necesitan usar la interfaz ser capaz de entender qu hace y cmo utilizarla, sin necesidad de indagar su implementacin.
! Colaboraciones
! Para especificar el comportamiento esperado a travs de una serie de diagramas de interaccin.
8.71
Interfaces - Realizacin
cliente proveedor
8.72
8.73
Diagramas de Clases
Diagramas de Clases
Ejemplo de
Diagrama de Clases
8.75
Diagramas de Clases
Ejemplo de
Diagrama de Clases
8.76
Diagramas de Clases
Anlisis vs Diseo
! Los adornos de las clases de diseo son ms completos
que en las clases de anlisis.
8.77
Diagramas de Clases
Los diagramas de clase complejos se pueden manejar de forma ms sencilla usando paquetes para agrupar elementos prximos.
8.78
! ! ! ! ! ! !
Elegir el tipo de clasificador (clase, interfaz, componente, etc.) que mejor se adapte a la abstraccin. Tiene aspectos tanto estructurales como de comportamiento. Tiene cohesin fuerte y acoplamiento dbil. Muestra solo lo necesario para ser usado y oculta lo dems. Evita la ambigedad en su objetivo y en su semntica. Debe dar libertad a los implementadores evitando la sobreespecificacin. Al contrario, no debe tener ambigedad en significado por estar infraespecificado.
8.79
Al modelar clases:
responsabilidades. Proporciona una distincin clara entre la especificacin de la abstraccin y su implementacin. Es comprensible y sencilla, a la vez que extensible y adaptable.
8.80
Al dibujar un clasificador:
! Mostrar slo aquellas propiedades importantes para
comprender la abstraccin en su contexto.
8.82
Al modelar relaciones elegir el tipo de relacin y los adornos que mejor se adaptan a la abstraccin dada:
! ! ! ! ! !
Usar dependencias slo cuando la relacin no sea estructural. Usar generalizacin slo cuando la relacin significa es-un-tipo-de. Intentar evitar la herencia mltiple (reemplazar por agregacin si se puede). Evitar generalizaciones cclicas. Las jerarquas de herencia no deben ser muy profundas (menos de 6 niveles) ni demasiado anchas (reducir anchura usando clases abstractas). Usar asociaciones donde existan relaciones estructurales.
! No cuando se puede representar con parmetros o variables.
8.83
Al dibujar relaciones:
oblicuas buscando
comprender una agrupacin de elementos. Evitar las asociaciones redundantes. Mostrar solo las propiedades de la relacin que son importantes para comprenderla. Elegir una versin estereotipada que muestre la mejor imagen visual de su propsito.
8.84
Al aadir notas:
! Usarlas solo para los requisitos, observaciones, revisiones
y explicaciones que no se pueden expresar en UML directamente. el seguimiento del trabajo.
Al dibujar notas:
! Los comentarios largos se deben poner en un documento
aparte y usar la nota para referir a dicho comentario.
8.85
Al extender un modelo:
! En cada proyecto la lista de estereotipos, valores ! Elegir nombres cortos y auto-explicativos para
estereotipos y valores etiquetados. necesario formalizarlas (en OCL). etiquetados y restricciones debe estar homologada, evitando que cada ingeniero vaya por libre.
! Contiene slo los elementos esenciales para comprender ! Ofrece detalles de forma consistente con el nivel de
! => Diferentes adornos en anlisis y en diseo.
! Usar notas y colores para llamar la atencin sobre ! No mostrar demasiados tipos de relaciones. En cada
diagrama suele prevalecer un tipo de relacin:
! Un diagrama para mostrar una jerarqua de generalizaciones. ! Otro diagrama para mostrar asociaciones.
8.88
! Es comprensible, proporcionando suficiente informacin ! Es manejable, facilitando informacin para guiar al usuario
8.89
8.90
abstraccin, a la que se puede aplicar operaciones y puede tener un estado (atributos). clase.
Objetos - Estado
El estado se puede identificar de forma explcita con una etiqueta entre corchetes.
8.92
Diagramas de Objetos
Contenido
! Objetos ! Enlaces ! Notas y restricciones ! Clases (a veces se muestra la abstraccin asociada a un
objeto).
8.93
Diagramas de Objetos
Ejemplo
8.94
! !
Toda instancia debe representar una manifestacin de una abstraccin (clase, componente, nodo, caso de uso, asociaciacin). Una instancia est bien estructurada si:
! Est asociada explcitamente con una abstraccin. ! Tiene un nombre nico extrado del vocabulario del dominio del problema o del dominio de la solucin.
! ! !
Incluir el nombre de la abstraccin salvo que sea obvio por el contexto. Mostrar el estereotipo y el estado solo lo necesario para comprender el objeto en su contexto. Las listas largas de atributos y sus valores deben agruparse por categoras.
8.95
! Contiene solo aquellos elementos necesarios para ! Representa una escena (un instante concreto) de la
historia representada por diagrama de interaccin.
8.96
! Usar notas y colores para resaltar las caractersticas ! Incluir los valores y el estado de los objetos cuando es
necesario para comunicar el propsito.
8.97
Modelado 6. Modelado Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estticos de un sistema:
! Vocabulario del Sistema ! Distribucin de Responsabilidades ! Semntica de una Clase ! Colaboraciones ! Esquemas de Datos ! Redes de Relaciones ! Lneas de Separacin ! Instancias
8.98
Vocabulario del Sistema Est formado por las abstracciones que son importantes para los usuarios y para los implementadores.
Cuando los modelos aumentan de tamao, las abstracciones tienden a unirse en grupos relacionados conceptual y semnticamente (paquetes).
8.99
8.101
! !
Clases muy grandes son difciles de cambiar y no muy reutilizables. Clases muy pequeas son difciles de manejar y comprender.
8.103
problema o de la implementacin de la solucin), es necesario especificar la semntica de las clases que las representan. Para ello se distingue entre:
! Especificacin de lo que hace la clase. ! Dirigida a los clientes. ! Especificacin de cmo lo hace. ! Dirigida a los implementadores.
De menor a mayor nivel de formalidad, la semntica de una clase se puede especificar mediante:
F o r ! m al i ! d a d
! !
! + ! ! !
Las responsabilidades. Un texto estructurado en una nota estereotipada (semantics) con junto a la clase. Notas incluyendo el cuerpo de cada mtodo como texto estructurado o en un lenguaje de programacin. Cada nota se une a su operacin por una dependencia. Los invariantes de la clase y las pre y post-condiciones de cada operacin. Se indican como texto estructurado en notas estereotipadas (invariant, precondition, postcondition) asociadas a la clase y operaciones mediante dependencias. Una mquina de estados para la clase. La estructura interna de la clase (nuevos diagramas en UML 2). Una colaboracin que representa a la clase. OCL para expresar los invariantes de la clase y las pre y postcondiciones de cada operacin.
8.105
Modelado - Colaboraciones
! !El todo es mayor que la suma de las partes! Adems de capturar el vocabulario del sistema, es
! Estas colaboraciones se representan mediante
diagramas de clases.
8.106
necesario modelar la forma en que los elementos del vocabulario colaboran entre s.
Modelado - Colaboraciones
2. Para cada comportamiento, identificar las clases, interfaces y otras colaboraciones que intervienen.
! Identificar tambin las relaciones entre dichos elementos.
3. Para cada comportamiento, usar escenarios para recorrer la interaccin entre los elementos.
! Durante el recorrido se descubren partes que faltaban y otras que eran incorrectas.
Rellenar los elementos con su contenido: repartir las responsabilidades entre las clases, para despus obtener los atributos y operaciones.
8.107
Modelado - Colaboraciones
8.108
Esquemas de Datos En muchos sistemas es necesario modelar objetos persistentes (objetos almacenados en un repositorio permanente o base de datos). UML permite modelar los tres tipos de esquemas que se manejan en bases de datos:
! ! !
Conceptuales (vs ER, similares al modelado del negocio) Lgicos (relacionales) Fsicos (para una tecnologa concreta)
Los diagramas de clases de UML son un superconjunto de los diagramas entidad-relacin (ER).
6. Si es posible, usar herramientas que generen el esquema fsico de forma (semi)-automtica a partir del esquema lgico.
! Visual Paradigm puede generar los esquemas SQL para diversos SGBDs.
8.111
8.112
8.113
2. Para cada una de dichas asociaciones, especificar la multiplicidad y los roles. 3. Si una de las clases es un todo comparada con las clases del otro extremo, que parecen sus partes, marcarla como una agregacin o composicin, segn la exigencia de la semntica todo-parte.
8.115
Universidad
Departamento
Estudiante
Curso
Profesor
8.116
miembro * Estudiante asiste * * 1..* Curso * 1..* ensea 1..* director Profesor
8.117
Al modelar redes complejas de relaciones la clave del xito es hacerlo de manera incremental, siguiendo los siguientes pasos:
! ! ! ! ! !
Usar los casos de uso y escenarios para guiar el descubrimiento de las relaciones. Modelar las relaciones estructurales mediante asociaciones (parte esttica). Identificar las relaciones de generalizacin/especificacin. Buscar dependencias. Para cada relacin, comenzar con las caractersticas bsicas para despus aplicar las avanzadas si es necesario. Evitar diagramas muy complejos. Hacer diferentes vistas (diagramas) resaltando en cada uno conjuntos interesantes de relaciones.
8.118
Lneas de Separacin
Las interfaces se utilizan para modelar las lneas de separacin de un sistema compuesto de componentes software (Eclipse, .NET, JavaBeans, ..). Identificar las lneas de separacin en un sistema implica identificar lneas claras de demarcacin en la arquitectura. A ambos lados de estas lneas se encontrarn componentes que pueden cambiar de forma independiente. Al reutilizar componentes se suele disponer de un conjunto de operaciones y, quizs, alguna documentacin pobre sobre ellas. Es necesario construir un modelo conceptual de su interfaz. Al crear componentes propios hay que comprender su contexto, especificando las interfaces en las que se basa y las interfaces que presenta al exterior.
8.119
Para cada interfaz, documentar su dinmica mediante pre y postcondiciones para cada operacin, y casos de uso y mquinas de estados para la interfaz como un todo.
8.120
8.121
Modelado Instancias
Modelado Instancias
Los diagramas de objetos sirven para mostrar estructuras de objetos, es decir, conjuntos interesantes de objetos concretos o prototpicos, relacionados entre s. Para modelar una estructura de objetos:
1. Identificar el comportamiento que se desea modelar. 2. Crear una colaboracin para describirlo. 3. Identificar las clases, interfaces y dems elementos y las relaciones entre ellos. 4. Considerar un escenario y congelarlo (foto fija), representando cada objeto que participa en el. 5. Mostrar el estado y los valores de los atributos de los objetos, si es necesario para comprender el escenario. 6. Mostrar los enlaces (instancias de asociacin) entre los objetos.
8.123
Modelado Instancias
8.124
! Estereotipos
! Extienden el vocabulario de UML, permitiendo definir nuevos tipos de elementos y relaciones a partir de los existentes pero especficos de un problema o dominio. ! Algunos de uso frecuente ya estn predefinidos en UML.
! Valores Etiquetados
! Extienden las propiedades de un estereotipo, permitiendo crear nueva informacin en la especificacin del estereotipo.
! Restricciones
! Especifican condiciones sobre los elementos del modelo.
8.125
Mecanismos de Extensin
especificar nueva semntica no proporcionada con los elementos estndares predefinidos en UML.
8.126
! Conjunto propio de propiedades (valores etiquetados) ! Semntica propia (restricciones) ! Notacin diferenciada (icono)
8.127
Ejemplos
<<subsistema>> Contabilidad
8.128
IComparator
Clases estereotipadas
8.129
8.130
8.131
Empleado
<<key>> dni : String nombre : String edad : int
1
Cliente
<<UniqueId>> id : String nombre : String apellido : String <<Query>> findByLastName()
8.132
restricciones o comentarios asociados a un elemento o a una coleccin de elementos. No alteran el contenido semntico del elemento al que se asocian.
8.134
Las restricciones extienden la semntica de un elemento aadiendo nuevas reglas o modificando las existentes.
8.135
Ejemplo de restricciones.
8.136
Ejemplo de restricciones.
Restricciones
{xor}
8.137
(Object Constraint Language) OCL permite definir restricciones que no se pueden expresar en diagramas UML. Ejemplo: ! Dos tablas de un mismo esquema relacional deben tener
distinto nombre.
context Table inv: tablasDistintoNombre tablas -> forAll ( t1, t2 | t1.name = t2.name implies t1 = t2) end
8.138
8.139
Mecanismos de Extensin
Ejemplo:
Un estereotipo Servidor a partir de Clase, aadindole la propiedad (valor etiquetado) Capacidad (entero) y la restriccin de que slo puede haber un tipo de servidor por sistema.
Definicin
elemento base del estereotipo denicin del estereotipo denicin del valor etiquetado
Uso
clase estereotipada
<<servidor>> ServidordeImpresion
<<servidor>>
Capacidad=50 valor etiquetado
8.140
8.141
! Estereotipos
! Con su correspondiente notacin iconos
8.142
! for Modeling QoS and Fault Tolerance Characteristics and ! for Software Radio ! for Voice !
8.143