Anda di halaman 1dari 65

INGENIERA DEL SOFTWARE I

Tema 7

Lenguaje Unificado de Modelado - UML Univ. Cantabria Fac. de Ciencias


Francisco Ruiz, Patricia Lpez

Objetivos del Tema

Presentar el estndar UML 2. Conocer sus principales caractersticas. Conocer los principales constructores del lenguaje,

as como los diversos tipos de diagramas y vistas de modelado que incluye.

Francisco Ruiz, Patricia Lpez - IS1

7.2

Contenido

Introduccin Objetivos Conceptos de Modelado

Relaciones Diagramas

Modelos Vistas Arquitecturales

Estructurales De Comportamiento

Modelo Conceptual Elementos

Reglas Mecanismos Comunes

Estructurales De Comportamiento De Agrupacin De Anotacin

Especificaciones Adornos Divisiones comunes Extensibilidad

OCL

Francisco Ruiz, Patricia Lpez - IS1

7.3

Bibliografa

Bsica
Booch, Rumbaugh y Jacobson (2006): El Lenguaje
Unificado de Modelado. 2 edicin.
Caps. 2 y 7.

Complementaria
Booch, Rumbaugh y Jacobson (2006): El Lenguaje
Unificado de Modelado. 2 edicin.
Caps. 4, 5 y 6.

Rumbaugh, Jacobson y Booch (2007): El Lenguaje


Cap. 3.

Unificado de Modelado. Manual de Referencia. 2 edicin.

Francisco Ruiz, Patricia Lpez - IS1

7.4

Bibliografa

Estndares UML y OCL Webs


www.uml.org Mltiples enlaces e informaciones sobre UML:
http://www.cetus-links.org/oo_uml.html

Nuevas caractersticas del UML 2


http://www.epidataconsulting.com/tikiwiki/tikiread_article.php?articleId=31

Diagramas de UML 2 (con Visual-Paradigm)


http://www.visual-paradigm.com/VPGallery/diagrams/index.html

Francisco Ruiz, Patricia Lpez - IS1

7.5

Introduccin: Importancia del 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 permiten abordar la complejidad de los sistemas

Francisco Ruiz, Patricia Lpez - IS1

7.6

Representacin de software mediante cdigo


package codemodel; public class Guitarist extends Person implements MusicPlayer { Guitar favoriteGuitar; public Guitarist (String name) {super(name);} // A couple of local methods for accessing the class's properties public void setInstrument(Instrument instrument) { if (instrument instanceof Guitar) { this.favoriteGuitar = (Guitar) instrument; }else { System.out.println("I'm not playing that thing!"); } } public Instrument getInstrument( ) {return this.favoriteGuitar;} }

Representa slo la lgica e ignora el resto El ser humano lo interpreta muy lentamente No facilita la reutilizacin ni la comunicacin
7.7

Francisco Ruiz, Patricia Lpez - IS1

Representacin mediante un lenguaje natural


Guitarist is a class that contains six members: one static and five non-static. Guitarist uses, and so needs an instance of, Guitar; however, since this might be shared with other classes in its package, the Guitar instance variable, called favoriteGuitar, is declared as default. Five of the members within Guitarist are methods. Four are not static. One of these methods is a constructor that takes one argument, and instances of String are called name, which removes the default constructor. Three regular methods are then provided. The first is called setInstrument, and it takes one parameter, an instance of Instrument called instrument, and has no return type. The second is called getInstrument and it has no parameters, but its return type is Instrument. The final method is called play. The play method is actually enforced by the MusicPlayer interface that the Guitarist class implements. The play method takes no parameters, and its return type is void.

Es ambigua y confusa Es lenta de interpretar Difcil de procesar

Francisco Ruiz, Patricia Lpez - IS1

7.8

Representacin mediante un lenguaje de modelado visual

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
7.9

Francisco Ruiz, Patricia Lpez - IS1

Introduccin

UML = Unified Modeling Language


Es un lenguaje de modelado visual de propsito general orientado a objetos.

Impulsado por el Object Management Group www.omg.org

Independiente de cualquier fabricante comercial Combina notaciones provenientes de varios tipos de modelado:

Orientado a Objetos Datos Componentes Flujos de Trabajo (Workflows)

Francisco Ruiz, Patricia Lpez - IS1

7.10

Introduccin

Francisco Ruiz, Patricia Lpez - IS1

7.11

Introduccin
Rumbaugh Booch Odell Shlaer-Mellor
Object life cycles

Jacobson Meyer
Pre- and Post-conditions

UML
State Charts

Harel

Gamma et. al.


Frameworks, patterns, notes

Embly
Singleton classes

Wirfs-Brock Fusion
Operation descriptions, message numbering Responsabilities

Francisco Ruiz, Patricia Lpez - IS1

7.12

Introduccin

Lenguaje de Modelado UML

Lenguaje cuyo vocabulario y reglas se centran en la


representacin conceptual y fsica de un sistema (Booch, Jacobson y Rumbaugh).

Estndar para escribir los planos del software. = Notacin + Reglas (Sintcticas, Semnticas) UML ofrece vocabulario y reglas para crear y leer
modelos bien formados. No ofrece un mtodo.

Francisco Ruiz, Patricia Lpez - IS1

7.13

Introduccin

UML es slo un lenguaje

Independiente del Proceso Pero su uso ptimo aconseja procesos dirigidos por

casos de uso, centrados en la arquitectura, iterativos e incrementales Proceso Unificado de Desarrollo (RUP)

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..)
Son como los distintos planos de una casa (estructura-cimientos, albailera, fontanera, electricidad, ...)

Francisco Ruiz, Patricia Lpez - IS1

7.14

Introduccin

Cundo puede utilizarse UML? En sistemas software en diversos dominios:

Sistemas de informacin empresariales Bancos y servicios financieros Telecomunicaciones Transporte Defensa e industria aeroespacial Comercio Electrnica mdica mbito Cientfico Servicios basados en Web y tambin, sistemas que no son software

Francisco Ruiz, Patricia Lpez - IS1

7.15

Introduccin Inconvenientes de UML


No es una metodologa. Adems de UML, hace falta una gua metodolgica de cmo desarrollar software con OO. No cubre todas las necesidades de especificacin de un proyecto software.
No define los documentos textuales

Faltan ejemplos elaborados en la documentacin. Hay un cierto monopolio en torno a UML y OMG (libros, certificaciones, etc.).
Francisco Ruiz, Patricia Lpez - IS1 7.16

Introduccin

Tendencias de Futuro
Extensiones de UML
SysML - Systems Modeling Language (SysML, www.sysml.org)

Generacin automtica de cdigo a partir de modelos


Model-Driven Engineering (MDE)

Extendiendo UML mediante perfiles


MARTE Modeling and Analysis of Real-Time Embedded Systems

Entornos avanzados basados en metamodelado


Eclipse Modeling Framework (EMF)

Modelado y generacin de cdigo en dominios especficos


Domain-Specific Modeling (DSM, www.dsmforum.org)

Francisco Ruiz, Patricia Lpez - IS1

7.17

Objetivos

UML es un lenguaje de modelado visual que


sirve para

visualizar, especificar, construir y documentar

Sistemas Independientemente de la metodologa de anlisis


y diseo (orientada a objetos)
Francisco Ruiz, Patricia Lpez - IS1 7.18

Objetivos - Visualizar

Detrs de cada smbolo en UML hay una semntica bien definida.

Basada en un metamodelo estndar MOF-compliant.

Trasciende a lo que puede ser representado en un lenguaje de programacin. Es ms que un montn de smbolos grficos Modelo explcito, que facilita la comunicacin.

E m ple a do

N m in a
U su a ri o C a l cu l a r N m i n a

C alc u lar

E m ple a do

F i jo

Te m p oral

Francisco Ruiz, Patricia Lpez - IS1

7.19

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.

Francisco Ruiz, Patricia Lpez - IS1

7.20

10

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).

Ingeniera Directa Modelo UML Ingeniera Inversa CDIGO

Francisco Ruiz, Patricia Lpez - IS1

7.21

Objetivos - Documentar

UML cubre toda la documentacin de un sistema: Arquitectura del sistema y sus detalles (diseo) Expresar requisitos y pruebas Modelar las actividades de planificacin y gestin
de versiones.

Importancia en el mantenimiento

Francisco Ruiz, Patricia Lpez - IS1

7.22

11

Conceptos de Modelado

Sistema

Coleccin de elementos, posiblemente divididos en subsistemas, organizados para lograr un propsito. Est descrito por un conjunto de modelos. Simplificacin completa y autoconsistente de la realidad, creado para comprender mejor un sistema. 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 Representacin grfica de un conjunto de elementos normalmente mostrado como grafo conexo de nodos (elementos) y arcos relaciones).
7.23

Modelo

Vista (Arquitectural)

Diagrama

Francisco Ruiz, Patricia Lpez - IS1

Conceptos de Modelado - Modelos

Un modelo captura las propiedades estructurales


Es una abstraccin de dicho sistema, considerando un
cierto propsito.

(esttica) y de comportamiento (dinmicas) de un sistema.

El modelo describe completamente aquellos aspectos del


sistema que son relevantes al propsito del modelo, y a un apropiado nivel de detalle.

Francisco Ruiz, Patricia Lpez - IS1

7.24

12

Conceptos de Modelado - Modelos

Un proceso de desarrollo de software debe ofrecer un conjunto de modelos que permitan expresar el producto desde cada una de las perspectivas de inters. El cdigo fuente del sistema es el modelo ms detallado del sistema (y adems, es ejecutable). Sin embargo, se requieren otros modelos. Cada modelo es completo desde un punto de vista del sistema. Sin embargo, existen relaciones de trazabilidad entre los diferentes modelos.

Francisco Ruiz, Patricia Lpez - IS1

7.25

Conceptos de Modelado - Modelos

Los modelos a usar vienen determinados por la metodologa empleada. En Rational Unified Process (RUP)

De Casos de Uso del Negocio (Business Use-Case Model) De Objetos del Negocio (Business Object Model) De Casos de Uso (Use-Case Model) De Anlisis (Analysis Model) De Diseo (Design Model) De Despliegue (Deployment Model) De Datos (Data Model) De Implementacin (Implementation Model) De Pruebas (Test Model)

Francisco Ruiz, Patricia Lpez - IS1

7.26

13

Diagramas

Un diagrama es la representacin grfica de un conjunto de elementos de modelado (parte de un modelo).

A menudo se dibujan como un grafo conexo de nodos (elementos) y arcos (relaciones).


Use Case Use Case de Diagramas Diagrams Diagrams Casos de Uso State State de Diagramas Diagrams Diagrams Clases State State de Diagramas Diagrams Diagrams Objetos State State de Diagramas Diagrams Diagrams Componentes
Component Component Diagrams Diagramas de Diagrams

Use Case Use Case de Diagramas Diagrams Diagrams Secuencia Scenario Scenario de Diagramas Diagrams Diagrams Interaccin Scenario Scenario de Diagramas Diagrams Diagrams Estados
Francisco Ruiz, Patricia Lpez - IS1

Modelos

Diagramas de Actividad

Despliegue

7.27

Conceptos de Modelado - Vistas Arquitecturales

Durante el desarrollo de un sistema intensivo en software se requiere que el sistema sea visto desde varias perspectivas. Diferentes usuarios miran el sistema de formas diferentes en momentos diferentes. La arquitectura del sistema, clave para poder manejar estos puntos de vista diferentes, puede describirse mejor a travs de vistas arquitecturales interrelacionadas.

Proyecciones de la organizacin y estructura del sistema, centradas en un aspecto particular.

No se requiere una vista que contenga la semntica completa de la aplicacin. La semntica reside en el modelo.
7.28

Francisco Ruiz, Patricia Lpez - IS1

14

Conceptos de Modelado - Vistas Arquitecturales Las 4 +1 Vistas Arquitecturales


vocabulario, funcionalidad ensamblado del sistema, gestin de la configuracin

Vista de diseo
comportamiento

Vista de implementacin Vista de casos de uso Vista de despliegue


topologa del sistema, distribucin, entrega, instalacin
7.29

Vista de interaccin
rendimiento, escalabilidad, capacidad de proceso
Francisco Ruiz, Patricia Lpez - IS1

Conceptos de Modelado - Vistas Arquitecturales

Vista de Casos de Uso


Captura la funcionalidad del sistema tal y como es Comprende los casos de uso que describen el
sistema software. percibido por los usuarios finales, analistas y encargados de pruebas. comportamiento asociado a dicha funcionalidad.

En esta vista no se especifica la organizacin real del Los diagramas que le corresponden son:
Aspectos estticos: diagramas de casos de uso. Aspectos dinmicos: diagramas de interaccin, de estados y de actividades.
Francisco Ruiz, Patricia Lpez - IS1 7.30

15

Conceptos de Modelado - Vistas Arquitecturales

Vista de Diseo
Captura las clases, interfaces y colaboraciones que forman
el vocabulario del problema y su solucin.

Soporta, principalmente, los requisitos funcionales del Los diagramas que le corresponden son:

sistema (servicios que el sistema debe proporcionar a sus usuarios finales).


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.

Francisco Ruiz, Patricia Lpez - IS1

7.31

Conceptos de Modelado - Vistas Arquitecturales

Vista de Interaccin

Captura el flujo de control entre las diversas partes del


sistema, incluyendo los posibles mecanismos de concurrencia y sincronizacin. Abarca en especial requisitos no funcionales como el rendimiento, escalabilidad y capacidad de procesamiento. Los diagramas que le corresponden son los mismos que la vista de diseo:
Aspectos estticos: diagramas de clases y de objetos. Aspectos dinmicos: diagramas de interaccin, de estados y de actividades.

Pero atendiendo ms las clases activas que controlan el


sistema y los mensajes entre ellas.

Francisco Ruiz, Patricia Lpez - IS1

7.32

16

Conceptos de Modelado - Vistas Arquitecturales

Vista de Implementacin
Captura los artefactos que se utilizan para ensamblar y
poner en produccin el sistema software real.

Se centra en:
La configuracin de las distintas versiones de los archivos fsicos, Correspondencia entre clases y ficheros de cdigo fuente, Correspondencia entre componentes lgicos y artefactos fsicos.

Los diagramas que le corresponden son:


Aspectos estticos: diagramas de componentes (especialmente la versin de artefactos) y de estructura compuesta. Aspectos dinmicos: diagramas de interaccin, de estados y de actividades.

Francisco Ruiz, Patricia Lpez - IS1

7.33

Conceptos de Modelado - Vistas Arquitecturales

Vista de Despliegue
Captura las caractersticas de instalacin y ejecucin
del sistema.

Contiene los nodos y enlaces que forman la topologa Se ocupa principalmente de la distribucin, entrega e Los diagramas que le corresponden son:

hardware sobre la que se ejecuta el sistema software. instalacin de las partes que forman el sistema software real.
Aspectos estticos: diagramas de despliegue. Aspectos dinmicos: diagramas de interaccin, de estados y de actividades.

Francisco Ruiz, Patricia Lpez - IS1

7.34

17

Conceptos de Modelado - Vistas Arquitecturales

Cada vista puede existir de forma independiente. Pero a la vez interactan entre s:
Los nodos (vista de despliegue) contienen componentes
(vista de implementacin).

Dichos componentes representan la realizacin (software


real) de las clases, interfaces, colaboraciones y clases activas (vistas de diseo y de interaccin).

Dichos elementos de las vistas de diseo e interaccin

representan el sistema solucin a los casos de uso (vista de casos de uso) que expresan los requisitos.

Francisco Ruiz, Patricia Lpez - IS1

7.35

En resumen
Modelo
captura Estructura del sistema
(caractersticas estticas)

Comportamiento del sistema


(caractersticas dinmicas)

organizado en

visualizadas en

Vistas Arquitecturales
Vista de Casos de Uso Vista de Diseo Vista de Interaccin Vista de Implementacin Vista de Despliegue

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
7.36

Francisco Ruiz, Patricia Lpez - IS1

18

Modelo UML de un sistema

Por tanto, el modelo UML de un sistema consiste en:


Un conjunto de elementos de modelado que definen la

estructura y funcionalidad del sistema y que se agrupan en una base de datos nica. La presentacin de esos conceptos a travs de mltiples diagramas con el fin de introducirlos, editarlos, y hacerlos comprensibles. Los diagramas pueden agruparse en vistas, cada una enfocada a un aspecto particular del sistema.

La

gestin de un modelo UML requiere una herramienta especfica que mantenga la consistencia del modelo.
7.37

Francisco Ruiz, Patricia Lpez - IS1

Modelo Conceptual

Aprender a aplicar UML de modo eficaz comienza por conocer y comprender un modelo conceptual del lenguaje (metamodelo). El modelo conceptual de UML incluye tres tipos de elementos principales:

Bloques de construccin de UML


Elementos (estructurales, de comportamiento, de agrupacin, de anotacin), Relaciones, Diagramas

Reglas que dictan cmo pueden combinarse estos bloques


Sintcticas y semnticas

Mecanismos comunes que se aplican a lo largo del lenguaje


Especificaciones, adornos, divisiones comunes, mecanismos de extensibilidad.

Francisco Ruiz, Patricia Lpez - IS1

7.38

19

Elementos

Los elementos de UML son abstracciones que


Son los bloques bsicos de construccin orientada a

constituyen los ciudadanos de primera clase en un modelo.


objetos. Se utilizan para construir modelos bien formados.

Hay cuatro tipos de elementos:


Estructurales De Comportamiento De Agrupamiento. De Anotacin.

Francisco Ruiz, Patricia Lpez - IS1

7.39

Elementos - Estructurales

Son los nombres (sujetos) de los modelos UML. En su mayora, son las partes estticas de un modelo. Reciben el nombre colectivo de clasificadores. En UML 2 existen los siguientes tipos:

Clase Interfaz Colaboracin Caso de Uso Objeto

Clase activa Componente Artefacto Nodo

Representan cosas conceptuales o lgicas (seis primeros) o elementos fsicos (dos ltimos).

Francisco Ruiz, Patricia Lpez - IS1

7.40

20

Elementos - Estructurales

Clase
Una clase es una descripcin de un conjunto de objetos
que comparten los mismos atributos, operaciones, relaciones y semntica. del sistema que se est desarrollando.

Las clases se pueden utilizar para capturar el vocabulario Una clase puede implementar una o ms interfaces.

Francisco Ruiz, Patricia Lpez - IS1

7.41

Elementos - Estructurales

Clase
La clase es la unidad bsica que encapsula toda la
informacin de un Tipo de Objeto (un objeto es una instancia de una clase).

Responsabilidades de una clase:


Contrato o una obligacin de una clase. Se pueden expresar en el extremo inferior de la caja que representa la clase.

Especializaciones de clase: Actores, Seales, Utilidades.


Francisco Ruiz, Patricia Lpez - IS1 7.42

21

Elementos estructurales

Objeto
Un objeto representa una instancia de una clase en un
determinado contexto

miCuenta:Cuenta

Francisco Ruiz, Patricia Lpez - IS1

7.43

Elementos - Estructurales

Interfaz
Coleccin de operaciones que especifican un servicio de
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.


7.44

Francisco Ruiz, Patricia Lpez - IS1

22

Elementos Estructurales

Interfaz
Se declaran igual que las clases con <<interface>>
encima del nombre.

Una interfaz proporcionada por una clase se puede


Visual Paradigm for UML Standard Edition(Universidad de Cantabria)

representar como una circunferencia unida a la clase, y una interfaz requerida como una semi-circunferencia.
<<Interface>> IVentana +abrir() +cerrar() +mover() +dibujar()

Visual Paradigm for UML Standard Edition(Universidad de Cantabria)

<<Interface>> nombre interfaz +operaciones()

Ventana IVentana IDibujo

Francisco Ruiz, Patricia Lpez - IS1

7.45

Elementos - Estructurales

Caso de Uso
Descripcin de un conjunto de secuencias de acciones que
ejecuta un sistema y que produce un resultado observable que es de inters para un actor particular. comportamiento.

Se emplea para estructurar los aspectos de Un caso de uso es realizado por una colaboracin.
Realizar pedido

Francisco Ruiz, Patricia Lpez - IS1

7.46

23

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

Francisco Ruiz, Patricia Lpez - IS1

7.47

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()

Especializaciones de clase activa: Procesos, Hilos.


Francisco Ruiz, Patricia Lpez - IS1 7.48

24

Elementos - Estructurales

Componente

Parte modular del diseo de un sistema que oculta su

implementacin tras un conjunto de interfaces externas. Define su comportamiento en base a interfaces requeridas y ofertadas La implementacin de un componente puede expresarse conectando partes y conectores.
Las partes pueden incluir componentes ms pequeos.

FormularioDePedido

Francisco Ruiz, Patricia Lpez - IS1

7.49

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

Especializaciones de artefacto: Aplicaciones, Documentos,


Archivos, Bibliotecas, Pginas, Tablas.
Francisco Ruiz, Patricia Lpez - IS1 7.50

25

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.


Visual Paradigm for UML Standard Edition(Universidad de Cantabria)

Servidor

Francisco Ruiz, Patricia Lpez - IS1

7.51

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


Francisco Ruiz, Patricia Lpez - IS1

conjunto de objetos que interactan ciclo de vida de un objeto flujo entre pasos, sin mirar qu objeto ejecuta cada paso
7.52

26

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. de objetos, o una operacin individual.
Mensajes, Acciones y Enlaces (conexiones entre objetos).

Sirven para modelar el comportamiento de una sociedad Adems de a los objetos implicados, involucran a:
dibujar

Francisco Ruiz, Patricia Lpez - IS1

7.53

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. individual o una colaboracin de clases.
Estados, Transiciones (flujo de un estado a otro), Eventos (que disparan una transicin) y Actividades (respuesta a una transicin)

Sirven para especificar el comportamiento de una clase Involucran a:


Esperando

Francisco Ruiz, Patricia Lpez - IS1

7.54

27

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

El smbolo es el mismo que para estado. Se distinguen por


el contexto.

Francisco Ruiz, Patricia Lpez - IS1

7.55

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

Y varias especializaciones (subtipos de paquetes):


Frameworks, Modelos

Francisco Ruiz, Patricia Lpez - IS1

7.56

28

Elementos De Agrupacin

Paquete
Mecanismo de propsito general para organizar el propio
diseo (las clases organizan construcciones de implementacin). comportamiento y otros paquetes. tiempo de desarrollo).

Un paquete puede incluir elementos estructurales, de Un paquete es puramente conceptual (slo existe en

N o m b re d e p a q ue te

Francisco Ruiz, Patricia Lpez - IS1

7.57

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.

Francisco Ruiz, Patricia Lpez - IS1

7.58

29

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:

Y una especializacin (subtipo de nota):


Requisito.

Nota

Francisco Ruiz, Patricia Lpez - IS1

7.59

Elementos De Anotacin

Nota
Smbolo para mostrar restricciones y comentarios
textual (comentario) o formal (restriccin).
Devolver una copia del mismo objeto antes de modificarlo

asociados a un elemento o coleccin de elementos.

Se usan para aquello que se muestra mejor en forma

ClaseA modifica()

Francisco Ruiz, Patricia Lpez - IS1

7.60

30

Relaciones

Una relacin es una conexin entre elementos


estructurales.

Existen cuatro tipos de relaciones en UML2:


Dependencia Asociacin Generalizacin Realizacin
Agregacin Composicin
Francisco Ruiz, Patricia Lpez - IS1 7.61

Hay dos tipos especiales de asociacin:

Relaciones

Dependencia
Relacin semntica en la cual un cambio a un elemento
(independiente) puede afectar a la semntica del otro elemento (dependiente).
Ventana Evento

Caso frecuente: uso entre clases


Una clase utiliza a otra como argumento en la signatura de una operacin.

Especializaciones: Refinamiento (refine), Traza (trace),


extensin (extend), inclusin (include),
<<trace>>
7.62 Francisco Ruiz, Patricia Lpez - IS1

31

Relaciones

Asociacin
Relacin estructural entre clases que describe un conjunto
de enlaces (conexiones entre objetos que son instancias de las clases).
En general es simtrica. 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

Francisco Ruiz, Patricia Lpez - IS1

7.63

Relaciones

Asociacin
Indican que los objetos estn relacionados durante un
periodo de tiempo continuado

Ejemplo de clase de asociacin y asociacin reflexiva.


tutor
0..1

Estudiante autor 1 * tutorizado

prcticaEntregada *

Prctica

Calificacin

Francisco Ruiz, Patricia Lpez - IS1

7.64

32

Relaciones

Agregacin y Composicin
Modelar objetos complejos en base a relaciones todo
parte.

Agregacin
Relacin dinmica: el tiempo de vida del objeto incluido es independiente del objeto agregado. El objeto agregado utiliza al incluido 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.
Francisco Ruiz, Patricia Lpez - IS1 7.65

Relaciones

Agregacin y Composicin
Ejemplos.
Curso
* *

Alumno

Agregacin (por referencia)

Composicin (por valor)

Francisco Ruiz, Patricia Lpez - IS1

7.66

33

Relaciones

Generalizacin
Relacin de especializacin/generalizacin en la que el Las subclases (hijos) comparten la estructura y el
comportamiento de la superclase (padre).
Trabajador

elemento especializado (hijo) extiende a la especificacin del elemento generalizado (padre).

Directivo
Francisco Ruiz, Patricia Lpez - IS1

Administrativo

Obrero
7.67

Relaciones

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.

Francisco Ruiz, Patricia Lpez - IS1

7.68

34

Relaciones

Realizacin
Relacin semntica entre clasificadores, donde un Se pueden encontrar en dos casos:
Clases o componentes - realizan -> interfaces. Colaboraciones - realizan -> casos de uso.
<<Interface>> IVentana +abrir() +cerrar() +mover() +dibujar()
7.69

clasificador especifica un contrato que otro clasificador garantiza que cumplir.

Ventana

Francisco Ruiz, Patricia Lpez - IS1

Relaciones

Jerarquas de Relaciones
Motor 1..4 Piloto 1..2 Vendedor de billetes 1

1 Avin 1 n n Vuelo

n 1 n

n Reserva

1 Avin militar Avin comercial Lnea area

Avin de carga Francisco Ruiz, Patricia Lpez - IS1

Avin de pasajeros 7.70

35

Relaciones

Ejemplo con generalizaciones, asociacin y dependencia.

Francisco Ruiz, Patricia Lpez - IS1

7.71

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.

Francisco Ruiz, Patricia Lpez - IS1

7.72

36

Diagramas

UML 2 incluye 13 Tipos de Diagramas: Estructurales De Comportamiento


(ESTTICA) (DINMICA)

Clases Objetos Componentes Despliegue Paquetes Estructura Compuesta


nuevo en UML 2.0
Francisco Ruiz, Patricia Lpez - IS1

Casos de Uso Estados Actividades Interaccin


Secuencia Comunicacin Tiempos Revisin de Interacciones

7.73

Diagramas

Estructurales
: elementos de especificacin, sin factores temporales

Comportamiento
Actividades Estados Casos de Uso Interaccin

: comportamiento de un sistema /proceso de negocio

Clases Componentes Despliegue Objetos Estructura Compuesta Paquetes

Interaccin
: comportamiento con nfasis en la interaccin entre objetos

Francisco Ruiz, Patricia Lpez - IS1

Comunicacin (colaboracin) Secuencia Revisin de Interacciones Tiempos

7.74

37

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 Colaboracin Objetos Paquetes Nodos, Artefactos
7.75

Francisco Ruiz, Patricia Lpez - IS1

Diagramas - Estructurales

De Clases:

Muestran un conjunto de clases, interfaces y colaboraciones, as como sus relaciones. Son los diagramas ms comunes en el anlisis y diseo del 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).

Abarcan la vista de diseo esttica de un sistema.


Con clases activas cubren la vista de interaccin esttica.
E m pleado

F i jo

Tem poral

Francisco Ruiz, Patricia Lpez - IS1

7.76

38

Diagramas - Estructurales

De Clases:

Principalmente, un diagrama de clases contiene:


Clases (con atributos, operaciones y visibilidad). Relaciones: Dependencia, Generalizacin, Asociacin, Agregacin y Composicin.

Francisco Ruiz, Patricia Lpez - IS1

7.77

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

Francisco Ruiz, Patricia Lpez - IS1

7.78

39

Diagramas - Estructurales

De Componentes:

Describen la estructura del software mostrando la organizacin y las dependencias entre un conjunto de componentes. Representan 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. Muestran las opciones de realizacin, incluyendo cdigo fuente, binario y ejecutable, scripts, DLLs, tablas de datos, etc.

Francisco Ruiz, Patricia Lpez - IS1

7.79

Diagramas - Estructurales

De Componentes:

Ejemplo.

Francisco Ruiz, Patricia Lpez - IS1

7.80

40

Diagramas - Estructurales

De Despliegue:

[distribucin]

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.

N odo

Algunos autores identifican una variante llamada diagramas de artefactos.


7.81

Francisco Ruiz, Patricia Lpez - IS1

Diagramas - Estructurales

De Despliegue:

Ejemplo.
Servidor Central
Acceso a BD Control y Anlisis

Rutinas de Conexin

Terminal de Consulta Punto de Venta


Gestin de Cuentas Rutinas de Conexin Rutinas de Conexin

Interfaz de Terminal Interfaz de Terminal

Francisco Ruiz, Patricia Lpez - IS1

7.82

41

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.

Francisco Ruiz, Patricia Lpez - IS1

7.83

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.

Francisco Ruiz, Patricia Lpez - IS1

7.84

42

Diagramas - Estructurales

De Paquetes:

Una clase de un paquete puede aparecer en otro paquete por la importacin a travs de una relacin de dependencia entre paquetes
Customers

C ustomers

Otra Cl as e

<<access>>

CheckingAccount
(f rom Banking)

Banking

Banking

CheckingAccount

Francisco Ruiz, Patricia Lpez - IS1

7.85

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.

Francisco Ruiz, Patricia Lpez - IS1

7.86

43

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

Forma de Modelar la Dinmica


Organizar los comportamientos Ordenacin temporal de los mensajes Organizacin estructural de los objetos y envan y reciben mensajes Estado cambiante de objetos dirigidos por eventos Flujo de control de actividades Tiempo real de los mensajes y estados Vista general de las interacciones
7.87

Estados Actividades Tiempos Revisin de Interacciones

Francisco Ruiz, Patricia Lpez - IS1

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

Francisco Ruiz, Patricia Lpez - IS1

7.88

44

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

Consultar Extracto Cliente Realizar transferencia

Francisco Ruiz, Patricia Lpez - IS1

7.89

Diagramas De Comportamiento

De Estados:

Muestran mquinas de estados, que constan de:


estados, transiciones, eventos y actividades.

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
Francisco Ruiz, Patricia Lpez - IS1 7.90

45

Diagramas De Comportamiento

De Estados:

Estados y Transiciones:

Evento [condicin] / Accin

B
Tanto el evento como la accin se consideran instantneos

Francisco Ruiz, Patricia Lpez - IS1

7.91

Diagramas De Comportamiento

De Estados:

Ejemplo.
alta b aja n m e r o_ p rs ta m o s = 0

sin pr stam o s
Socio nmero : i nt nombre : char[50] nmero_ prestamo s : int = 0 alta() baja() prestar(c digo_libro : int, fecha : date) devolver(cdi go_libro : int, fecha : date)

pres tar

d e vol ve r [ n m e ro_p r st a m o s = 1 ]

n m e ro _p r s t a m os > 0 c o n pr s ta m os pres tar

d e vo lve r[ n m e ro_ p r s t a m o s > 1 ]

Francisco Ruiz, Patricia Lpez - IS1

7.92

46

Diagramas De Comportamiento

De Estados:

Generalizacin de estados:
Para reducir la complejidad, es posible formar estados compuestos (superestado) formados por agregacin de estados ms simples (subestados). En cada estado compuesto el objeto estar en alguno de los estados de cada uno de los subestados componentes (concurrencia de estados).
Operating

Regiones (concurrentes)

Processing Idle Working

Testing Cheking
Francisco Ruiz, Patricia Lpez - IS1

HandlingError
7.93

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.

Francisco Ruiz, Patricia Lpez - IS1

7.94

47

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

Actividad entry/ MostrarMensajeBienvenida() do/ EscribirMilPrimerosPrimos() exit/ LeerHora()

[ Hora<13 ]

Dar saludo matutino entry/ Mostrar("Buenos das")

[ Hora>=13 ]

Dar saludo vespertino


Estado final

entry/ Mostrar("Buenas tardes")

Francisco Ruiz, Patricia Lpez - IS1

7.95

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

Francisco Ruiz, Patricia Lpez - IS1

7.96

48

Diagramas De Comportamiento

De Actividad:

Ejemplo con roles (swimlines).


P a s a j e ro V endedo r A ir line

S o lic it a r p a s a je

V e r if ic a r e x is t e n c ia v u e lo

D a r d e t a lle s v u e lo

I n f o r m a r a lt e r n a t i v a s y p r e c io s S e le c c io n a r v u e lo

S o lic it a r pago P agar p a s a je

R e s e rv a r pla z as C o n f ir m a r p la z a re s e rv a d a

E m it ir b i ll e t e

Francisco Ruiz, Patricia Lpez - IS1

7.97

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
7.98

Francisco Ruiz, Patricia Lpez - IS1

49

Diagramas De Comportamiento

De Secuencia:

Es un diagrama de interaccin que resalta la ordenacin temporal de los mensajes. 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
Francisco Ruiz, Patricia Lpez - IS1 7.99

Diagramas De Comportamiento

De Secuencia:

Ejemplo.

: Encargado

: WInP rstam os

:Socio

:Video

: Prstamo

prestar(video, socio) verificar situacin socio verificar situacin video regi strar prstamo e ntregar re cibo

Francisco Ruiz, Patricia Lpez - IS1

7.100

50

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. Muestran un conjunto de roles, enlaces entre ellos y los mensajes enviados y recibidos por las instancias que interpretan dichos roles. Se usan para modelar el comportamiento dinmico de un caso de uso.

Clase 1

llamada()

Clase2

En versiones anteriores a UML 2 se llamaban de colaboracin.

Francisco Ruiz, Patricia Lpez - IS1

7.101

Diagramas De Comportamiento

De Comunicacin:

Ejemplo.

:Socio

:Video 2: verificar situacin socio

1: prestar(video, socio) :W InPrstamos 5: entregar recibo : Encargado

3: verificar situacin video

4: registrar prstamo

:Prstamo

Francisco Ruiz, Patricia Lpez - IS1

7.102

51

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.

Son una forma especial de diagramas de secuencia.

Francisco Ruiz, Patricia Lpez - IS1

7.103

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.

Tambin llamados Visin Global de Interacciones

Francisco Ruiz, Patricia Lpez - IS1

7.104

52

Diagramas

Jerarqua de diagramas en UML 2

Francisco Ruiz, Patricia Lpez - IS1

7.105

Reglas

Los bloques de construccin de UML no pueden

combinarse de cualquier manera. Como cualquier lenguaje, UML tiene unas reglas que especifican a qu debe parecerse un modelo bien formado.

Semnticamente autoconsistente y que est en


armona con todos sus modelos relacionados.

Francisco Ruiz, Patricia Lpez - IS1

7.106

53

Reglas

UML tiene reglas sintcticas y semnticas para:


Nombres: Cmo llamar a los elementos, relaciones y
diagramas. nombre.

Alcance: El contexto que da significado especfico a un Visibilidad: Cmo se pueden ver y utilizar unos nombres
por otros.

Integridad: Cmo se relacionan apropiada y


consistentemente unos elementos con otros. dinmico.

Ejecucin: Qu significa ejecutar o simular un modelo

Francisco Ruiz, Patricia Lpez - IS1

7.107

Reglas

Los modelos construidos durante el desarrollo de un sistema

tienden a evolucionar, y pueden ser vistos por diferentes usuarios de formas diferentes y en momentos diferentes.

Por estas razones, en la prctica es comn construir modelos que no estn bien formados:

Abreviados: Ciertos elementos se ocultan para simplificar la vista. Incompletos: Pueden estar ausentes ciertos elementos. Inconsistentes: No se garantiza la integridad del modelo.

Tales modelos incorrectos llegan a convertirse en bien formados a medida que se avanza el proceso.
7.108

Francisco Ruiz, Patricia Lpez - IS1

54

Mecanismos Comunes

Un edificio es ms simple y armonioso si todo el se

ajusta a un patrn de caractersticas comunes (estilo colonial). Igual ocurre con UML, que tiene cuatro mecanismos comunes que se aplican de forma consistente a travs de todo el lenguaje:

Especificaciones Adornos Divisiones comunes Extensibilidad


Francisco Ruiz, Patricia Lpez - IS1 7.109

Mecanismos Comunes - Especificaciones

UML no es slo un lenguaje grfico. Detrs de la notacin grfica de cada elemento hay una especificacin que proporciona una explicacin textual de 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.

Francisco Ruiz, Patricia Lpez - IS1

7.110

55

Mecanismos Comunes - Especificaciones

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)

Francisco Ruiz, Patricia Lpez - IS1

7.111

Mecanismos Comunes - Adornos

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.
de los aspectos ms importantes del elemento.

La notacin bsica proporciona una representacin visual La especificacin incluye otros detalles, muchos de los
cuales se pueden incluir como adornos grficos o textuales.

Francisco Ruiz, Patricia Lpez - IS1

7.112

56

Mecanismos Comunes - Adornos

Ejemplo de Adornos:
Notacin bsica de una clase:
Nombre, atributos, operaciones.

Adornos:
Es abstracta o no, visibilidad de los atributos y operaciones, tipos de los atributos, multiplicidad,

Francisco Ruiz, Patricia Lpez - IS1

7.113

Mecanismos Comunes - Divisiones

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.
7.114

Francisco Ruiz, Patricia Lpez - IS1

57

Mecanismos Comunes - Divisiones

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.
7.115

Francisco Ruiz, Patricia Lpez - IS1

Mecanismos Comunes - Divisiones

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.

Francisco Ruiz, Patricia Lpez - IS1

7.116

58

Mecanismos Comunes - Extensibilidad

Mecanismos de Extensin en UML:


Estereotipos (Stereotypes) => Para aadir nuevos

bloques de construccin Valores Etiquetados (Tagged Values) => Para modificar o caracterizar la especificacin de los nuevos bloques de construccin Restricciones (Constraints) => Cambiar o aadir una semntica particular a un elemento de modelado
OCL (Object Constraint Language)

Permiten extender UML de manera controlada para poder


expresar todos los matices posibles de todos los modelos en todos los dominios en cualquier momento.

Francisco Ruiz, Patricia Lpez - IS1

7.117

Mecanismos Comunes - Extensibilidad

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

Se pueden asociar smbolos especficos a los bloques de


construccin estereotipados.
Francisco Ruiz, Patricia Lpez - IS1 7.118

59

Utilizacin de estereotipos

UML 2 proporciona estereotipos de componente para modelar sistemas y subsistemas.

Francisco Ruiz, Patricia Lpez - IS1

7.119

Mecanismos Comunes - Extensibilidad

Valor Etiquetado
Extiende las propiedades de un estereotipo de UML, Ejemplo
Aadir versin y autor mediante la creacin del estereotipo <<conAutorVersion>> y asocindole una nota con los dos valores etiquetados.
<<conAutorVersion>>

permitiendo aadir nueva informacin en la especificacin del estereotipo.

ColaDeEventos

aadir() eliminar() vaciarCola()


Francisco Ruiz, Patricia Lpez - IS1

<<conAutorVersion>> version=3.2 autor=frg

7.120

60

Mecanismos Comunes - Extensibilidad

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>>

ColaDeEventos

aadir() eliminar() vaciarCola()

{ordered}

Para especificar restricciones de forma precisa se usa OCL (Object Constraint Language).
7.121

Francisco Ruiz, Patricia Lpez - IS1

Mecanismos Comunes - Extensibilidad

Francisco Ruiz, Patricia Lpez - IS1

7.122

61

OCL

Object Constraint Language 2.0 Complemento a UML.


Lenguaje para escribir expresiones formales acerca de
modelos UML.

Usos:
Especificacin de invariantes en clases y tipos. Especificacin de invariantes de tipo para Estereotipos. Describir pre- y post-condiciones en Operaciones. Describir condiciones de guarda. Especificar destinatarios para mensajes y acciones. Especificar restricciones en Operaciones. Especificar reglas de derivacin para atributos.
7.123

Francisco Ruiz, Patricia Lpez - IS1

OCL

Ejemplo

Francisco Ruiz, Patricia Lpez - IS1

7.124

62

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 context c:Compaa inv suficientesEmpleados: c.nmeroDeEmpleados > 50
{self. nmeroDeEmpleados > 50}

Compaa

Francisco Ruiz, Patricia Lpez - IS1

7.125

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
Francisco Ruiz, Patricia Lpez - IS1 7.126

63

OCL

Valores iniciales y derivados

Sintaxis
context NombreTipo::NombreAtributo: Tipo init: - alguna expresin representando el valor inicial context NombreTipo::NombreRolAsociacin: Tipo derive: - alguna expresin representando la regla de derivacin

Ejemplos
context Persona::estaEnParo: Boolean init: true derive: if self.empleador->notEmpty() false else true end if

Francisco Ruiz, Patricia Lpez - IS1

7.127

OCL

Definiciones
Ejemplo
context Persona def: ingresos : Integer = self.puesto.sueldo->sum() def: apodo : String = Gallito rojo

Francisco Ruiz, Patricia Lpez - IS1

7.128

64

OCL

Navegacin y combinacin de expresiones


Ejemplos
a) Los casados tienen al menos 18 aos de edad
context Persona inv: self.esposa->notEmpty() implies self.esposa.edad >= 18 and self.esposo->notEmpty() implies self.esposo.edad >= 18

b) Una compaa tiene como mucho 50 empleados


context Compana inv: self.empleado->size() <= 50

Francisco Ruiz, Patricia Lpez - IS1

7.129

65

Anda mungkin juga menyukai