Está en la página 1de 52

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Anexo 1

Breve descripcin de UML

245

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Anexo 1: Breve Descripcin de UML


ndice Visin general de UML #lementos #lementos estructurales #lementos de comportamiento #lementos de agrupacin #lementos de anotacin &elaciones (iagramas (iagrama de casos de uso (iagrama de clases (iagrama de ob*etos (iagrama de secuencias (iagrama de colaboracin (iagrama de estados (iagrama de actividades (iagrama de componentes (iagrama de despliegue -a.uetes !" !$ !$ %1 % % %' %% %$ )" "% ") "$ $+ $) ,+ , ,!

246

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Visin general de UML

UML es una gram/tica para expresar dise0os de so1t2are orientado a ob*etos3 4us siglas signi1ican5 en espa0ol5 Lengua*e Uni1icado de Modelado3 6o es la 7nica notacin .ue existe5 pero es el est/ndar actual del llamado Ob*ect Management 8roup 9OM8:3 -or tanto5 conviene saber cmo expresarse en este lengua*e5 advirtiendo .ue los lengua*es son din/micos ; .ue5 a veces5 no se utili<an de la misma 1orma por di1erentes autores3 6osotros aprovec=aremos UML para pro1undi<ar en los conceptos del so1t2are orientado a ob*etos3

UML se expresa a trav>s de elementos de construccin5 de relaciones ; de diagramas .ue contienen elementos ; relaciones3 Conocer esta estructura general a;uda a la comprensin del lengua*e en su con*unto ; 1acilita prescindir de los detalles5 =asta .ue no sean necesarios3

247

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Elementos ?a; cuatro tipos de elementos en UML #lementos estructurales3 #lementos de comportamiento3 #lementos de agrupacin3 #lementos de anotacin3

Elementos estructurales Los elementos estructurales son la parte est/tica de los modelos de UML3 &epresentan cosas .ue son conceptuales o materiales3 ?a; siete tipos de elementos estructurales: clases5 inter1aces5 colaboraciones5 casos de uso5 clases activas5 componentes ; nodos3 Clases: una clase es una descripcin de un con*unto de ob*etos .ue comparten los mismos atributos5 operaciones5 relaciones ; sem/ntica3 8r/1icamente una clase se representa como un rect/ngulo5 dividido en tres <onas .ue contienen el nombre5 los atributos ; las operaciones3

Nombre Clase -atributos +operaciones()

@nter1aces: una inter1a< es una coleccin de operaciones .ue especi1ican un servicio de una clase o componente5 mostrando el comportamiento visible externamente de ese elemento3 Una inter1a< contiene slo las especi1icaciones de las operaciones5 es decir su
interface NombreInterfaz NombreInterfaz

signatura5 pero no la implementacin3 8r/1icamente las inter1aces se representan con una 1igura en 1orma de piruleta5 o como una clase con la eti.uetaAAinter1aceBB3

248

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Colaboracin: una colaboracin de1ine una interaccin ; es una sociedad de roles ; otros elementos .ue colaboran para proporcionar un comportamiento cooperativo ma;or .ue la suma de los comportamientos de sus elementos3 -or lo tanto5 las colaboraciones tienen tanto dimensin estructural como de comportamiento3 Una clase dada puede participar en varias colaboraciones3 #stas colaboraciones representan5 pues5 la implementacin de patrones .ue 1orman un sistema3 8r/1icamente una colaboracin se representa como una elipse de borde discontinuo3

Nombre colaboraci n

Caso de uso: un caso de uso es una descripcin de un con*unto de secuencias de acciones .ue un sistema e*ecuta ; .ue produce un resultado observable de inter>s particular3 Un caso de uso se utili<a para estructurar los aspectos de comportamiento en un modelo3 Un caso de uso es reali<ado por una colaboracin3 8r/1icamente un caso de
Nombre!"aso!#e uso

uso se representa como una elipse3

Clase activa: una clase activa es una clase cu;os ob*etos tienen uno o m/s procesos o =ilos de e*ecucin ;5 por lo tanto5 pueden dar origen a actividades de control3 Los ob*etos de una clase activa representan elementos cu;o comportamiento es concurrente con otros elementos3 8r/1icamente una clase activa se representa como una clase pero con lCneas m/s gruesas3
Nombre!clase
-!atributos +operaciones

249

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Componente: un componente es una parte 1Csica ; reempla<able de un sistema3 #n un sistema se pueden encontrar di1erentes tipos de componentes de despliegue5 tales como componentes COMD o EavaBeans5 asC como componentes .ue sean arte1actos del proceso de desarrollo5 tales como arc=ivos de cdigo 1uente3 Un componente representa tCpicamente el empa.uetamiento 1Csico de di1erentes elementos lgicos5 como clases5 inter1aces ; colaboraciones3 8r/1icamente un componente se representa como un rect/ngulo con dos pesta0as3

componente

6odo: un nodo es un elemento 1Csico .ue existe en tiempo de e*ecucin ; representa un recurso computacional5 .ue por lo general dispone de algo de memoria ;5 con 1recuencia5 capacidad de procesamiento3 Un con*unto de componentes puede residir en un nodo ; tambi>n migrar de un nodo a otro3 8r/1icamente un nodo se representa como un cubo3

Nodo

25$

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Elementos de comportamiento Los elementos de comportamiento son las partes din/micas de los modelos3 &epresentan comportamiento en el tiempo ; en el espacio3 ?a; dos tipos de elementos de comportamiento: interacciones ; m/.uinas de estados3 @nteracciones: una interaccin es un comportamiento .ue comprende un con*unto de mensa*es intercambiados entre un con*unto de ob*etos5 dentro de un contexto particular para alcan<ar un propsito especC1ico3 #l comportamiento de una sociedad de ob*etos o una operacin individual puede especi1icarse mediante una interaccin3 Una interaccin involucra otros elementos5 inclu;endo mensa*es5 secuencias de accin 9el comportamiento invocado por un mensa*e: ; enlaces 9conexiones entre ob*etos:3 8r/1icamente5 un mensa*e se muestra como una lCnea dirigida eti.uetada con el nombre de su operacin3

operaci n()

M/.uinas de estados: una m/.uina de estados especi1ica las secuencias de estados por las .ue pasa un ob*eto o una interaccin durante su vida en respuesta a eventos3 #l comportamiento de una clase individual o una colaboracin de clases puede especi1icarse con una m/.uina de estados3 Una m/.uina de estados involucra otros elementos5 inclu;endo estados5 transiciones 9el 1lu*o de un estado a otro:5 eventos 9.ue disparan una transicin: ; actividades 9la respuesta a una transicin:3 8r/1icamente un estado se representa como un rect/ngulo de es.uinas redondeadas5 inclu;endo su nombre ; sus subestados si los tiene3

esta#o

25%

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Elementos de agrupacin Los elementos de agrupacin son las partes organi<ativas de los modelos de UML5 es decir5 las ca*as en las .ue puede descomponerse un modelo3 4lo =a; un elemento de agrupacin: el pa.uete3 -a.uetes: un pa.uete es un mecanismo de propsito general para organi<ar los elementos en grupos3 Los pa.uetes son puramente conceptuales5 slo existen en tiempo de desarrollo3 Un pa.uete puede contener elementos estructurales5 elementos de comportamiento e incluso otros pa.uetes3 8r/1icamente un pa.uete se representa como una carpeta3

Paquete

Elementos de anotacin Los elementos de anotacin son la parte explicativa de los modelos de UML3 4on comentarios .ue se pueden aplicar para describir5 clari1icar ; =acer observaciones sobre cual.uier elemento de un modelo3 #l principal elemento de anotacin es la nota3 6otas: una nota es simplemente un sCmbolo para mostrar restricciones ; comentarios *unto a un elemento o una coleccin de elementos3 8r/1icamente una nota se representa como un rect/ngulo con la es.uina doblada3

"omentario

252

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Relaciones

?a; cuatro tipos de relaciones en UML: dependencia5 generali<acin5 asociacin ; reali<acin3 (ependencia Una dependencia es una relacin sem/ntica entre dos elementos5 en la cual un cambio a un elemento 9el elemento independiente: puede a1ectar a la sem/ntica del otro elemento 9el elemento dependiente:3 8r/1icamente5 una dependencia se representa como una lCnea discontinua dirigida5 .ue inclu;e a veces una eti.ueta3

Asociacin Una asociacin es una relacin estructural .ue describe un con*unto de enlaces5 los cuales son conexiones entre ob*etos3 La agregacin es un tipo especial de asociacin5 .ue representa una relacin estructural entre un todo ; sus partes3 8r/1icamente5 una asociacin se representa como una lCnea continua5 posiblemente dirigida5 .ue a veces inclu;e una eti.ueta5 ; a menudo inclu;e otros adornos5 como la multiplicidad ; los nombres de rol3 La agregacin se representa mediante un rombo situado en la parte del todo3
Asociaciones ; agregaciones

8enerali<acin

25&

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Una generali<acin es una relacin de especiali<acin Fgenerali<acin en la cual los ob*etos del elemento especiali<ado 9el =i*o: pueden sustituir a los ob*etos del elemento general 9el padre:3 (e esta 1orma5 el =i*o comparte la estructura ; el comportamiento del padre3 8r/1icamente5 una relacin de generali<acin se representa como una lCnea continua con un tri/ngulo apuntando al padre3

&eali<acin Una reali<acin es una relacin sem/ntica entre clasi1icadores5 en donde un clasi1icador especi1ica un contrato .ue otro clasi1icador garanti<a .ue cumplir/3 4e pueden encontrar relaciones de reali<acin en dos sitios: entre inter1aces ; las clases ; componentes .ue las reali<an5 ; entre los casos de uso ; las colaboraciones .ue los reali<an3 8r/1icamente5 una relacin de reali<acin se representa como una lCnea discontinua con una punta de 1lec=a vacCa3

254

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagramas Un diagrama es la representacin gr/1ica de un con*unto de elementos5 en general visuali<ado como un gra1o conexo de nodos 9elementos: ; arcos 9relaciones:3 Los diagramas se dibu*an para visuali<ar un sistema desde di1erentes perspectivas5 de 1orma .ue un diagrama es una pro;eccin de un sistema3 -ara todos los sistemas5 excepto los m/s triviales5 un diagrama representa una vista resumida de los elementos .ue constitu;en un sistema3 #n teorCa5 un diagrama puede contener cual.uier combinacin de elementos ; relaciones3 #n la pr/ctica5 sin embargo5 slo surge un pe.ue0o n7mero de combinaciones5 las cuales son consistentes con las vista m/s 7tiles .ue comprenden la ar.uitectura de un sistema con gran cantidad de so1t2are3 -or esta ra<n5 UML inclu;e nueve de estos diagramas: 13 (iagrama de casos de uso3 3 (iagrama de clases3 '3 (iagrama de ob*etos3 !3 (iagrama de secuencias3 %3 (iagrama de colaboracin3 )3 (iagrama de estados3 "3 (iagrama de actividades3 $3 (iagrama de componentes3 ,3 (iagrama de despliegue3

255

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Mecanismos de extensi ilidad

UML proporciona un lengua*e est/ndar para escribir planos so1t2are5 pero no es posible .ue un lengua*e cerrado sea siempre su1iciente para expresar todos los matices posibles de todos los modelos en todos los dominios ; en todos los momentos3 -or esta ra<n5 UML proporciona tres mecanismos para extender el lengua*e de manera controlada3 #stos mecanismos permiten con1igurar ; extender UML a las necesidades de un pro;ecto ; adaptarse a nuevas tecnologCas de so1t2are3 Los mecanismos de extensin de UML son: #stereotipos3 Valores eti.uetados3 &estricciones3

Estereotipos

Un estereotipo extiende el vocabulario de UML5 permitiendo crear nuevos tipos de blo.ues de construccin .ue deriven de los existentes pero sean especC1icos a un problema3 -or e*emplo5 si se est/ traba*ando en un lengua*e de programacin como Eava o CDD5 a menudo ser/ necesario modelar las excepciones3 #n estos lengua*es5 las excepciones son simplemente clases5 aun.ue se tratan de 1ormas mu; especiales3 6ormalmente slo se permitir/ .ue sean lan<adas ; capturadas5 nada m/s3 -ara modelar las excepciones se puede crear un estereotipo de una clase como muestra la 1igura3
#stereotipos
e'ception Nombre!e'cepci n

#l nuevo estereotipo AAexceptionBB ser/ tratado como un blo.ue b/sico de construccin3

256

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Valores etiquetados

Un valor eti.uetado extiende las propiedades de un blo.ue de construccin de UML5 permitiendo a0adir nueva in1ormacin en la especi1icacin de ese elemento3 -or e*emplo5 si se est/ traba*ando en un producto .ue atraviesa muc=as versiones a lo largo del tiempo5 se .uerr/ registrar la versin ; el autor de ciertas abstracciones crCticas3 La versin ; el autor no son conceptos primitivos de UML3 -ueden ser a0adidos a cual.uier blo.ue de construccin introduciendo nuevos valores eti.uetados en dic=o blo.ue3 -or e*emplo5 la 1igura muestra la clase Cola#ventos en la .ue se =an introducido los valores eti.uetados versin ; autor3

ColaEventos ()ersi n!*!&+2, autor!*!-."/ a0a#ir(!) 1uitar(!) )aciar(!)

Valores eti.uetados

Restricciones

Una restriccin extiende la sem/ntica de un blo.ue de construccin de UML5 permitiendo a0adir nuevas reglas o modi1icar las existentes3 -or e*emplo5 podrCamos restringir la clase Cola#ventos para .ue todas las adiciones se =iciesen en orden5 a0adiendo una restriccin .ue lo indi.ue explCcitamente como muestra la 1igura3
&estricciones
ColaEventos ()ersi n!*!&+2, autor!*!-."/ a0a#ir(!) 1uitar(!) )aciar(!) (or#ena#o/

257

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

!asos de Uso

Los casos de uso son una t>cnica de modeli<acin de re.uisitos 1uncionales .ue 1acilitan la comunicacin entre los desarrolladores5 los clientes ; los usuarios 1inales del sistema3 4u lengua*e sencillo es comprensible por todos los implicados en el proceso de desarrollo de un sistema so1t2are3 Los casos de uso5 en su con*unto5 describen los distintos usos .ue se le .uiere dar al sistema3 -or e*emplo5 extraer dinero5 ingresar dinero ; consultar saldo5 en un ca*ero autom/tico3 Cada uno de ellos constitu;e un Caso de Uso3

Diagrama de casos de uso

#l diagrama de casos de uso especi1ica el comportamiento global del sistema ; su interaccin con el entorno3 Muestra los servicios o 1unciones del sistema ; los roles de los elementos del entorno con los .ue interact7an3 -or e*emplo5 el rol de usuario de un sistema3 A estos roles de los elementos del entorno se les denomina actores3 Observe .ue se distinguen los roles5 no los elementos en sC3 Cada servicio .ue el sistema deba reali<ar se modela como un caso de uso ; cada rol de los elementos del entorno del sistema se modela como un actor3 8r/1icamente un caso de uso se representa con una elipse ; un actor se representa con un monigote5 independientemente de su naturale<a3 La 1igura muestra el diagrama de casos de uso del ca*ero autom/tico5 ;a citado3
Cajero Automtico
2'traer!3inero

In4resar!3inero

"liente

"onsultar!5al#o

258

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

#n el diagrama de casos de uso5 se delimitan las 1ronteras del sistema mediante una ca*a3 Los elementos .ue .ueden 1uera de la ca*a 1orman parte del entorno3 4us roles5 es decir5 los actores nunca son parte del sistema5 aun.ue interact7en con >l3 Los actores ; los casos de uso se relacionan mediante asociaciones3 Una relacin de asociacin entre un actor ; un caso de uso indica .ue existe comunicacin entre ellos ; .ue pueden intercambiar in1ormacin en ambos sentidos3 #s posible .ue el n7mero de casos de uso .ue necesitemos para modelar un sistema sea demasiado grande para mostrarse en un 7nico diagrama sin perder visibilidad ; comprensibilidad3 #n ese caso5 el diagrama se puede organi<ar agrupando los casos de uso en pa.uetes3

Actores

Los actores5 como se mencion5 representan los distintos roles .ue los elementos del entorno desempe0an respecto al sistema3 Un actor representa a todos los elementos .ue desempe0an el mismo rol3 #n el e*emplo del ca*ero autom/tico5 el actor Cliente representa a todos los clientes del banco .ue pueden utili<ar el ca*ero3 Un mismo elemento puede desempe0ar varios roles distintos5 es decir5 un elemento puede actuar como distintos actores en 1uncin del uso del sistema en cada momento3 #s importante observar .ue los caso de uso est/n asociados con los actores5 ; no con los elementos concretos3 4upongamos por e*emplo5 .ue los empleados del banco pueden utili<ar el sistema so1t2are del ca*ero para consultar su estado ; reali<ar estadCsticas sobre su uso3 GendrCamos entonces un nuevo actor del sistema5 #mpleado5 relacionado con dos nuevos casos de uso5 Consultar #stado ; &eali<ar #stadCsticas3 4i los empleados del banco son adem/s clientes del banco5 podrCan tambi>n utili<ar el ca*ero como el resto de los clientes5 para sacar o ingresar dinero ; consultar sus cuentas3 #sto .uiere decir .ue
259

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

los empleados del banco actuar/n unas veces como el actor #mpleado ; otras como el actor Cliente3 -ero5 no implica .ue el actor #mpleado est> relacionado con los casos de uso #xtraer (inero5 @ngresar (inero ; Consultar 4aldo3

Especificacin de un caso de uso

#l comportamiento de un caso de uso se especi1ica describiendo la secuencia de acciones .ue el sistema debe llevar a cabo para proporcionar un servicio3 #sta secuencia de acciones5 =abitualmente denominada 1lu*o de eventos5 debe escribirse de 1orma .ue sea lo su1icientemente clara como para .ue alguien a*eno al sistema pueda entenderlo 1/cilmente3 #l est/ndar UML no se compromete con La especi1icacin de un caso de uso3 Los autores de UML solamente dan unas cuantas recomendaciones sobre el contenido de la especi1icacin ; la 1orma en .u> debe escribirse3 -ara los autores de UML5 la especi1icacin de un caso de uso deberCa incluir al menos la siguiente in1ormacin: Cmo ; cu/ndo empie<a ; acaba el caso de uso3 Cu/ndo el sistema interact7a con los actores ; .u> ob*etos intercambian3 Hlu*o de eventos b/sico ; 1lu*os alternativos de comportamiento3

4iguiendo estas recomendaciones proponemos la siguiente plantilla para escribir la especi1icacin de un caso de uso3 #sta plantilla adem/s de las recomendaciones de UML inclu;e otras caracterCsticas recomendadas por A3 CocIburnJK5 .ue consideramos mu; 7tiles para la plani1icacin ; gestin del riesgo del pro;ecto3 "om re o t#tulo3 Descripcin: breve descripcin textual del caso de uso3 #n esta descripcin deberCa describirse cmo empie<a el caso de uso ; .u> evento lo dispara3 Actores: enumeracin de los actores .ue participan en el caso de uso3
26$

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

$recondiciones: condiciones .ue debe tener el sistema antes de e*ecutar el caso de uso3 $oscondiciones: condiciones .ue debe tener el sistema despu>s de e*ecutar el caso de uso3 #s recomendable incluir las condiciones en caso de >xito ; en caso de 1allo del caso de uso3 %lu&o de Eventos $rincipal: descripcin de la interaccin entre los actores ; el sistema en condiciones normales5 sin considerar ninguna excepcin ni anomalCa en la e*ecucin del caso de uso3 %lu&os de Eventos Alternativos: descripcin de la interaccin entre los actores ; el sistema en condiciones excepcionales3 !asos de Uso Relacionados3 Re'uisitos "o %uncionales Relacionados3 $rioridad3 %recuencia( Riesgo asociado al caso de uso( #l siguiente e*emplo muestra la especi1icacin del caso de uso #xtraer (inero3 "om re o t#tulo: #xtraer (inero3 Descripcin: #l cliente solicita al ca*ero la cantidad .ue .uiere retirar3 #l ca*ero comprueba si el cliente dispone de esa cantidad en su cuenta ; si es asC se la entrega3 Antes de reali<ar la operacin el cliente debe ser validado3 -ara ello5 el cliente introduce en el ca*ero su tar*eta ; su n7mero de -@63 #l cliente tiene tres intentos para introducir el -@6 correcto3

26%

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Actores: Cliente3 $recondiciones: 6inguna $ostcondiciones: En caso de )xito: el cliente obtiene la cantidad de dinero .ue =a solicitado5 la operacin .ueda registrada ; su saldo actuali<ado3 En caso de *allo: 4i el cliente introduce un n7mero de -@6 errneo tres veces5 su tar*eta .ueda invalidada3 4i el cliente cancela la operacin no =a; ninguna postcondicin3 %lu&o de Eventos $rincipal: 13 #l cliente introduce la tar*eta en el ca*ero3 3 #l ca*ero solicita el n7mero de -@63 '3 #l cliente introduce el n7mero de -@63 !3 #l ca*ero comprueba el n7mero de -@6 %3 4i el -@6 es correcto5 el ca*ero solicita la cantidad a retirar3 )3 #l cliente introduce la cantidad a retirar3 "3 #l ca*ero comprueba si el cliente dispone de esa cantidad en su cuenta ; si =a; su1iciente dinero en el ca*ero3 $3 4i el cliente dispone de esa cantidad ; el ca*ero tiene su1iciente dinero5 el ca*ero actuali<a la cuenta del cliente5 registra la operacin5 le entrega la tar*eta ; el dinero al cliente ; acaba el caso de uso3 %lu&os de Eventos Alternativos: '3a3 #l cliente puede cancelar la operacin3 #l ca*ero le devuelve la tar*eta ; el caso de uso acaba
262

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

%3a3 %3b3 )3a3 $3a

4i el -@6 introducido no es correcto ; el cliente a7n no =a consumido los tres intentos se vuelve al paso 3 4i el -@6 introducido no es correcto ; el cliente ;a =a consumido los tres intentos5 el ca*ero invalida la tar*eta ; el caso de uso acaba3 #l cliente puede cancelar la operacin3 #l ca*ero le devuelve la tar*eta ; el caso de uso acaba3 4i el cliente no tiene esa cantidad disponible en su cuenta o el ca*ero no tiene su1iciente dinero5 se in1orma al cliente ; se vuelve al paso %3

!asos de Uso Relacionados3 Re'uisitos "o %uncionales Relacionados3 $rioridad: Alta3 %recuencia: Alta3 Riesgo asociado al caso de uso: Medio(

Relaciones entre casos de uso

Los casos de uso pueden organi<arse mediante las relaciones de uso 9o inclusin:5 extensin ; generali<acin entre ellos3 Uso #sta relacin signi1ica .ue un caso de uso5 llamado base5 incorpora explCcitamente el comportamiento de otro caso de uso3 #l caso de uso incorporado nunca se encuentra aislado3 #s instanciado slo como parte de alg7n caso de uso base .ue lo utili<a3 La relacin de uso se representa como una dependencia estereotipada con la eti.ueta AAusaBB3

26&

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

La relacin de uso se utili<a para delegar un comportamiento5 com7n a varios casos de uso 9los casos de uso base:5 a un slo caso de uso3 #n el e*emplo del ca*ero autom/tico todos los casos de uso tienen un comportamiento com7n: el cliente debe validarse antes de retirar dinero5 ingresar dinero o consultar el saldo de su cuenta3 #n lugar de incluir este comportamiento en cada caso de uso5 como =icimos cuando escribCamos la especi1icacin de #xtraer (inero5 podemos agruparlo en un nuevo caso de uso Validar Cliente3 Los casos de uso #xtraer (inero5 @ngresar (inero ; Consultar (inero utili<ar/n el caso de uso Validar Cliente3 La 1iguraL muestra el diagrama de casos de uso del ca*ero empleando las relaciones de uso3

Cajero Automtico

2'traer!3inero

uses uses

6ali#ar!7suario

In4resar!3inero uses "liente "onsultar!5al#o

La relacin de uso debe indicarse explCcitamente en el 1lu*o de eventos de la especi1icacin del caso base3 -or e*emplo5 el 1lu*o de eventos principal de la especi1icacin del caso de uso #xtraer (inero deberCa escribirse de esta 1orma: %lu&o de Eventos $rincipal: 13 Usa Validar Cliente3 3 #l ca*ero solicita la cantidad a retirar3 '3 #l cliente introduce la cantidad a retirar3 !3 #l ca*ero comprueba si el cliente dispone de esa cantidad en su cuenta ; si =a; su1iciente dinero en el ca*ero3 %3 4i el cliente dispone de esa cantidad ; el ca*ero tiene su1iciente dinero5 el ca*ero actuali<a la cuenta del cliente5 registra la operacin ; le entrega el dinero al cliente3
264

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Extensin La relacin de extensin se utili<a para modelar la parte de un caso de uso .ue puede considerarse como un comportamiento opcional3 (e esta 1orma se separa el comportamiento opcional del obligatorio3 #sta relacin se representa como una dependencia estereotipada como AAextiendeBB3

e'ten#s "aso!.ase 2'tensi n

Los puntos de extensin pueden indicarse en el diagrama con una eti.ueta en la relacin de extensin5 indicando en el 1lu*o de eventos del caso base la locali<acin del punto de extensin3 Generalizacin La relacin de generali<acin entre casos de uso es como la generali<acin entre clases3 4igni1ica .ue el caso de uso =i*o =ereda el comportamiento ; el signi1icado del caso de uso padre3 #l =i*o puede a0adir o rede1inir el comportamiento del padre ; puede ser colocado en cual.uier lugar donde apare<ca el padre3 4upongamos .ue el ca*ero autom/tico pudiese validar al cliente de dos 1ormas distintas: comprobando el -@6 de la tar*eta o examinando la retina3 #l caso de uso padre Validar Usuario podrCa tener dos casos de uso =i*os especiali<ados Comprobar -@6 ; #xaminar &etina3 La relacin de generali<acin se representa igual .ue la generali<acin entre clases5 con una lCnea continua con la punta de 1lec=a vacCa3

"aso!8eneral

"aso!2spec9fico 265

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Relaciones entre actores

Los actores slo pueden tener entre ellos relaciones de generali<acin3 4e pueden de1inir categorCas generales de actores ; especiali<arlos mediante relaciones de especiali<acin3 La relacin de generali<acin entre actores se representa igual .ue la generali<acin entre clases ; entre casos de uso5 con una lCnea continua con la punta de 1lec=a vacCa3

-ctor!8eneral

-ctor!2spec9fico

266

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagrama de clases

Un diagrama de clases muestra las clases .ue componen el sistema ; las relaciones .ue existen entre ellos3 #ste diagrama se utili<a para modelar la vista de dise0o estructural de un sistema3 Los diagramas de clases adem/s5 pueden contener pa.uetes3

Clases

Una clase es la de1inicin de un con*unto de ob*etos .ue comparten los mismos atributos5 operaciones5 relaciones ; sem/ntica3 Las clases se representan gr/1icamente con una ca*a dividida en tres <onas: en la <ona superior se escribe el nombre de la clase5 en la <ona central los atributos ; en la in1erior las operaciones3 #n algunas ocasiones5 para simpli1icar el diagrama5 las clases se representan con una ca*a .ue contiene slo el nombre3

Nombre Clase -atributos +operaciones() Nombre Clase

-ara especi1icar .ue una clase es abstracta5 es decir .ue contiene al menos una operacin abstracta5 se escribe el nombre de la clase en cursiva3 #l n7mero de instancias .ue pueden crearse de una clase es su multiplicidad3 8eneralmente la multiplicidad de una clase es ilimitada5 en un sistema suele =aber muc=as instancias u ob*etos de una clase e*ecut/ndose3 4in embargo5 a veces es necesario restringir a un n7mero determinado el n7mero de instancias de una clase3 #n estos casos5 la multiplicidad se escribe en la es.uina superior derec=a de la clase3 UML permite especi1icar dos caracterCsticas importantes de los elementos 9atributos ; operaciones: de una clase: la visibilidad ; el alcance3
267

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Visibilidad: los elementos de una clase pueden ser p7blicos5 protegidos o privados3 Los elementos p7blicos son visibles para los ob*etos de todas las clases del sistema3 Un elemento p7blico va precedido del signo D3 Los elementos protegidos slo son visibles dentro de la clase ; de las clases =i*as3 Un elemento protegido va precedido del signo N3 Los elementos privados solamente son visibles dentro de la clase3 Un elemento privado va precedido del signo M3

Alcance: se pueden especi1icar dos niveles de alcance: @nstancia: cada instancia de la clase tiene su propio valor del elemento3 Clase: slo =a; un valor del elemento para todas las instancias de la clase3 9#l alcance de clase es e.uivalente al uso de OstaticP en CDD ; Eava:3 -ara indicar .ue un elemento tiene alcance de clase se subra;a3

Atri utos La sintaxis de un atributo en UML es: JvisibilidadK nom re JmultiplicidadK J:tipoK JQ valor inicialK JRpropiedadesSK La visibilidad5 como se explic anteriormente5 indica si el atributo es p7blico5 protegido o privado3 La multiplicidad de un atributo es el n7mero de instancias del atributo .ue se pueden crear3 4e especi1ica mediante una expresin encerrada entre corc=etes3 -or e*emplo: impresora J133%K: @mpresora indica .ue pueden existir de 1 a % instancias del atributo impresora3 La multiplicidad suele utili<arse para especi1icar vectores de atributos3
268

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Las propiedades prede1inidas para los atributos son: changeable: no =a; restricciones para cambiar el valor del atributo3 addOnly: esta propiedad slo se aplica a los atributos de multiplicidad ma;or .ue uno3 @ndica .ue5 un valor asignado no se puede borrar ni modi1icar5 slo se permite a0adir nuevos valores al atributo3 frozen: no se puede modi1icar el valor del atributo3

+peraciones La sintaxis de una operacin en UML es: JvisibilidadK nom re J9lista de par/metros:K J:tipo de retornoK JRpropiedadesSK La visibilidad indica si la operacin es p7blica5 protegida o privada3 -ara especi1icar .ue una operacin es abstracta se escribe el nombre en cursiva3 Una operacin abstracta no tiene implementacin5 slo tiene cabecera3 La implementacin la proporcionan las clases =i*as rede1iniendo la operacin3 La sintaxis de un par/metro es: JdireccinK nom re J:tipoK JQ valor por omisinK La direccin de un par/metro puede tomar tres valores: in: par/metro de entrada3 out: par/metro de salida3 in/out: par/metro de entrada ; salida3

Las propiedades prede1inidas para una operacin son:

269

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

leaf: la operacin no puede ser rede1inida en las clases =i*as3 isQuery: la e*ecucin de la operacin no modi1ica el estado del sistema3 sequential: la sem/ntica ; la integridad del ob*eto no se pueden garanti<ar en presencia de m7ltiples 1lu*os de control3 Los ob*etos invocadores de la operacin deben coordinarse para .ue en el ob*eto slo =a;a un 7nico 1lu*o al mismo tiempo3

guarded: la operacin tiene guardas3 La sem/ntica e integridad del ob*eto se garanti<an en presencia de m7ltiples 1lu*os de control5 tratando secuencialmente todas las llamadas a las operaciones con guardas del ob*eto3

concurrent: la sem/ntica ; la integridad del ob*eto se garanti<an en presencia de m7ltiples 1lu*os tratando la operacin como atmica3

Las propiedades sequential5 guarded ; concurrent slo se emplean cuando existe concurrencia5 en presencia de ob*etos activos5 procesos o =ilos3

Relaciones

Una clase puede tener una relacin consigo misma5 indicando .ue los ob*etos de esa clase est/n conectados entre sC3 Las relaciones se dibu*an con una lCnea5 empleando un tipo distinto de lCnea para cada tipo de relacin o un sCmbolo especC1ico3

Dependencia

Cuando ob*etos de una clase utili<an ob*etos de otra clase existe una relacin de dependencia entre sus clases respectivas3 #sta relacin se representa en el diagrama de clases con una 1lec=a discontinua en el sentido del elemento .ue se usa3 Las clases5 cu;os ob*etos usan los de otra clase5 dependen de la especi1icacin de la clase usada3 4i cambia la especi1icacin5 =abr/ .ue =acer cambios en las clases .ue la usan3

27$

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Las dependencias generalmente se utili<an para indicar .ue una clase utili<a a otra como argumento en alguna operacin o sus ob*etos utili<an alguna de las operaciones de la otra clase3

LectorTarjeta

Tarjeta

4e puede poner nombre a las dependencias para me*orar la comprensin del diagrama5 pero generalmente no es necesario3

Asociacin

Una asociacin es una relacin estructural3 #sta relacin expresa .ue se puede navegar desde los ob*etos de una clase =asta los ob*etos de la otra clase3 La asociacin se representa con una lCnea continua3

Cliente

Persona

Las asociaciones se suelen emplear para indicar .ue una clase contiene un atributo de la otra clase3 #n UML se puede especi1icar el nombre de una asociacin5 el rol de cada clase ; su multiplicidad o cardinalidad3

Clave

Usuario

Una asociacin es5 en principio5 bidireccional3 Cuando se .uiere limitar la navegacin en un slo sentido se dibu*a una 1lec=a .ue indi.ue explCcitamente el sentido permitido3 -or e*emplo5 en la 1igura los ob*etos de la clase Clave pueden acceder a los de la clase Usuario5 pero no al rev>s3 Una asociacin entre dos clases es una relacin entre iguales5
27%

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

conceptualmente ninguna de las clases tiene m/s importancia .ue otra3 4in embargo5 a veces conviene destacar .ue una de las clases es un OtodoP del .ue la otra clase 1orma OparteP3 A esta relacin OtodoFpartesP se le llama agregacin simple3 8r/1icamente se representa con un rombo vacCo en el extremo de la clase OtodoP3

iblioteca

Libro

La agregacin simple slo es una relacin conceptual5 no tiene implicaciones en el comportamiento de las clases3 #xiste otro tipo de agregacin5 la composicin o agregacin compuesta3 La composicin es tambi>n una relacin OtodoFpartesP5 pero con 1uertes implicaciones de comportamiento3 La composicin liga la existencia de las partes al todo: si el todo desaparece tambi>n desaparecen sus partes3 8r/1icamente se representa con un rombo relleno en el extremo de la clase OtodoP3

Libro

Estado Libro

Generalizacin

La generali<acin o =erencia expresa una relacin entre una clase gen>rica ; una o varias clases especC1icas3 A la clase gen>rica se le llama clase madre ; a las clases especC1icas =i*as3 La generali<acin indica .ue las =i*as =eredan los atributos5 operaciones ; relaciones de la clase madre 9slo se =eredar/n los elementos .ue sean p7blicos o protegidos:3 Las =i*as pueden rede1inir los elementos .ue =eredan del padre ; a0adir sus propios atributos5 operaciones ; relaciones3 8r/1icamente5 la generali<acin se representa con una lCnea continua acabada en una punta de 1lec=a vacCa3

272

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

!i"ura ;color +#ibu:ar() +borrar()

#ectn"ulo -punto% -punto2 +#ibu:ar()

Circulo -centro -ra#io +#ibu:ar()

Trian"ulo -punto% -punto2 -punto& +#ibu:ar()

UML permite especi1icar =erencias m7ltiples5 es decir .ue una clase =erede el comportamiento de varias clases madre3 -ero5 =a; .ue tener cuidado con el uso de la =erencia m7ltiple3 A1ortunadamente no todos los lengua*es permiten su implementacin3

Interfaces y realizaciones

A las clases abstractas puras5 es decir5 a las clases .ue no contienen ninguna implementacin5 se les llama inter1aces3 #n UML una inter1a< es una coleccin de operaciones .ue sirven para especi1icar los servicios de una clase o un componente3 Una inter1a< slo contiene las cabeceras de las operaciones5 no su implementacin3 9Una inter1a< de UML se corresponde con una clase virtual pura de CDD ; con una Ointer1aceP de Eava:3 8r/1icamente una inter1a< se puede representar de 1orma expandida como una clase estereotipada con la eti.ueta AAinter1aceBB o5 en su 1orma abreviada5 con una 1igura en 1orma de piruleta3

interface NombreInterfaz

NombreInterfaz

27&

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

#n los diagramas de clases se suele utili<ar la 1orma expandida para representar las inter1aces3 La 1orma abreviada generalmente se usa en los diagramas de componentes3 ?a; dos relaciones .ue pueden existir entre una clase ; una inter1a<: la dependencia ; la reali<acin3 La dependencia entre una clase ; una inter1a< tiene el mismo signi1icado ; representacin .ue entre dos clases5 indica .ue la clase usa la inter1a<3 -ara .ue una inter1a< se pueda usar =ace 1alta .ue otra clase implemente las operaciones .ue la inter1a< especi1ica3 A esta relacin entre la inter1a< ; la clase .ue la implementa se le llama reali<acin3 La reali<acin indica .ue la clase implementa todas las operaciones de la inter1a<3 8r/1icamente la reali<acin se representa como una generali<acin con la lCnea discontinua3

$bjetivo -i# -posicion-ctual +establecer<osici n() +establecer6eloci#a#() +posici n2spera#a() interface $bservador +actualizar()

#astreador%e$bjetivo +actualizar()

274

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagrama de o &etos

Un diagrama de ob*etos muestra un con*unto de ob*etos ; sus relaciones en un instante de tiempo determinado3 -uede verse como una 1otogra1Ca del sistema .ue muestra el estado de los ob*etos en ese instante3 La representacin gr/1ica de un ob*eto en UML es igual .ue la de una clase pero con el nombre subra;ado3 -ara mostrar el estado de un ob*eto5 se indica el valor de sus atributos ; sus ob*etos agregados3 La 7nica relacin entre ob*etos .ue se puede representar en UML es el enlace3 Un enlace indica una conexin entre dos ob*etos3 (os ob*etos pueden estar conectados si existe una asociacin o una dependencia entre las clases .ue instancian3

c!=!"ompa09a

#%!=!3epartamento nombre!=!5trin4!*!>6entas>

#2!=!3epartamento nombre!=!5trin4!*!>I+3>

p!=!<ersona nombre!=!5trin4!*!>?rancisco> I3@2mplea#o!=!unsi4ne#!lon4(i#l)!*!&42% car4o!=!5trin4!*!>3irector!#e!6entas>

Los diagramas de ob*etos pueden contener pa.uetes ;5 cuando se .uiere mostrar la clase .ue =a; detr/s de cada instancia5 tambi>n pueden contener clases3

275

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagramas de interaccin

Los diagramas de interaccin muestran comportamientos parciales del sistema5 describiendo la secuencia de mensa*es .ue intercambian los ob*etos para llevar a cabo una tarea3 Algunos autores llaman a este tipo de diagramas escenarios5 .ui</s por.ue representan escenas del comportamiento del so1t2are3 Cada diagrama slo re1le*a un aspecto concreto de un comportamiento particular del sistema ; no el comportamiento global3 -or tanto5 los diagramas de interaccin muestran una visin 1ragmentada de la din/mica del sistema3 #n UML existen dos tipos de diagramas de interaccin: los diagramas de secuencia ; los diagramas de colaboracin3 Ambos son e.uivalentes5 la di1erencia entre ellos est/ en los aspectos .ue resaltan3 Los diagramas de secuencia destacan el orden temporal de los mensa*es5 mientras .ue los diagramas de colaboracin destacan la organi<acin estructural de los ob*etos3

Diagrama de secuencias

Los diagramas de secuencias se =an convertido en una de las representaciones m/s populares de UML debido a su simplicidad ; capacidad de expresin3 4u >xito radica en .ue es mu; sencillo dibu*arlos ;5 a7n m/s importante5 es mu; 1/cil interpretarlos correctamente3

276

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

c="liente

DDcreateEE() =Aransaccion establecer-cciones(a,!#,!o)

p=<ro'BC3."

establece6alores(#,!&+4)

establece6alores(a,!>"C>) F'ito()

#estroB()

Los ob*etos .ue participan en la interaccin se dibu*an en la parte superior del diagrama =ori<ontalmente3 Los ob*etos se representan igual .ue las clases pero con el nombre subra;ado3 (eba*o de cada ob*eto se dibu*a una lCnea vertical discontinua llamada lCnea de vida3 #sta lCnea indica el tiempo de existencia del ob*eto3 Los mensa*es se representan con una 1lec=a desde la lCnea de vida del ob*eto .ue envCa el mensa*e =acCa la lCnea de vida del ob*eto .ue lo recibe3 La eti.ueta de la 1lec=a indica la operacin del ob*eto receptor .ue se invoca5 inclu;endo los par/metros3 4i la operacin devuelve alg7n valor se dibu*a una 1lec=a discontinua apuntando =acia el ob*eto emisor5 eti.uetada con el nombre del valor de retorno3 8eneralmente5 los ob*etos .ue participan en una interaccin existen durante todo el tiempo .ue dura dic=a interaccin3 4iendo asC5 los ob*etos se sit7an en la parte superior ; sus lCneas de vida se prolongan a lo largo de todo del diagrama3 4in embargo5 tambi>n pueden crearse ; destruirse ob*etos durante la interaccin3 La creacin ; la destruccin de un ob*eto se indican mediante mensa*es estereotipados con AAcreateBB ;
277

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

AAdestro;BB respectivamente3 Cuando un ob*eto es creado durante la interaccin5 se sit7a en el diagrama alineado con el mensa*e de creacin ; no en la parte superior3 La destruccin de un ob*eto se muestra dibu*ando una x grande al 1inal de su lCnea vida3 Los rect/ngulos .ue aparecen sobre las lCneas de vida de los ob*etos se llaman 1ocos de control3 #l 1oco de control representa el perCodo de tiempo durante el cual el ob*eto est/ e*ecutando una accin ; tiene el control del sistema3 #n los diagramas de secuencias5 los caminos alternativos de una bi1urcacin se pueden representar con mensa*es separados .ue parten del mismo punto3 -ero5 esta 1orma de representar las bi1urcaciones =ace menos comprensibles los diagramas3 #n general5 los diagramas de secuencia no re1le*an alternativas o bi1urcaciones3 4i existe un camino alternativo se representa en otro diagrama de secuencia3 #l inconveniente de esta decisin es .ue re.uiere un n7mero ma;or de diagramas5 pero resultan m/s comprensibles3 Adem/s5 tiene la virtud de independi<ar un camino de otro3 AsC se puede dise0ar un camino ; despu>s el otro5 sin modi1icar lo .ue ;a est/ =ec=o3 -ara el so1t2are evolutivo5 es una cualidad importante3 Los diagramas de secuencias se utili<an principalmente para modelar la vista de dise0o din/mica5 o de comportamiento5 del sistema3 Aun.ue5 debido a su >xito5 tambi>n es 1recuente utili<arlos para describir los 1lu*os de eventos de los casos de uso3 Diagrama de cola oracin

Un diagrama de colaboracin es un diagrama de interaccin .ue resalta la organi<acin estructural de los ob*etos .ue envCan ; reciben los mensa*es3 #ste tipo de diagrama muestra un con*unto de ob*etos5 enlaces entre ellos ; los mensa*es .ue intercambian3 Un diagrama de colaboracin es un gra1o5 donde los nodos del gra1o son los ob*etos ; los arcos son los enlaces3 Un enlace es una instancia de una asociacin o una dependencia entre clases3 4e representa con una lCnea continua .ue une los dos ob*etos3

278

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

c="liente

%=!DDcreateEE 2=!establecer-cciones(a,#,o) &=!DD#estroBEE

=Aransaccion

p=<ro'BC3." 2+%=!establecer6alores(#,&+4) 2+2=!establecer6alores(a,>"C>)

Los mensa*es se escriben *unto a los enlaces5 indicando el sentido con una 1lec=a .ue apunta =acia al ob*eto receptor ; numer/ndolos para expresar el orden temporal3 4e pueden representar mensa*es anidados utili<ando la numeracin decimal de (e2e; 91 es el primer mensa*e5 131 es el primer mensa*e dentro del mensa*e 15 13 es el segundo mensa*e dentro del mensa*e 15333: Las iteraciones se representan anteponiendo al n7mero del mensa*e el sCmbolo T3 Opcionalmente5 se puede a0adir una expresin .ue indi.ue =asta cuando se repite la iteracin3 -ara modelar una bi1urcacin5 el n7mero de secuencia del mensa*e se precede de una cl/usula de condicin3 Los caminos alternativos de una bi1urcacin tendr/n el mismo n7mero de secuencia3 -ero5 cada camino debe ser distinguible de 1orma 7nica por una condicin .ue no se solape con las otras3

279

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagrama de estados #n UML los diagramas de estados se utili<an para modelar el comportamiento de un ob*eto dirigido por eventos3 Aun.ue tambi>n pueden utili<arse para mostrar el comportamiento del sistema global o de subsistemas3 Un diagrama de estados modela la vida de un ob*eto mediante una m/.uina de estados3 Cada estado representa una situacin durante la cual el ob*eto satis1ace alguna condicin5 reali<a alguna actividad o espera alg7n evento3 Los estados se dibu*an con una ca*a con las es.uinas redondeadas3 4e pueden de1inir dos estados especiales: #stado inicial: indica el punto de comien<o de la e*ecucin de la m/.uina de estados3 4e representa con un cCrculo negro3 #stado 1inal: indica la terminacin de la e*ecucin de la m/.uina de estados3 4e representa con un cCrculo negro dentro de un cCrculo blanco3 Las transiciones entre estados se dibu*an con una 1lec=a continua desde el estado origen al estado destino3 #n cada transicin se puede especi1icar: #vento de disparo: es el evento cu;a recepcin por el ob*eto cuando se encuentra en el estado origen provoca la transicin el estado destino3 -or e*emplo5 en la Higura 15 el evento rec=a<ado dispara la transicin del estado Con1irmar cr>dito a Cancelar -edido3 Condicin de guarda: es una expresin booleana .ue se eval7a cuando se recibe el evento disparador3 La transicin solamente se dispara si la expresin toma el valor verdadero3 Las condiciones de guarda se escriben entre corc=etes a continuacin del evento de disparo3 -or e*emplo: en la transicin Opedido recibido JprecioBlCmiteKP5 de la Higura 15 pedido recibido indica el evento de disparo ; JprecioBlCmite K la condicin de guarda3
28$

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Accin: es una computacin atmica .ue se e*ecuta cuando se dispara la transicin3 Las acciones son atmicas5 es decir5 no pueden ser interrumpidas por ning7n evento ;5 por lo tanto se e*ecutan =asta su terminacin3 Una accin puede ser una llamada a una operacin5 el envCo de una se0al5 la creacin de un ob*eto5333 Las acciones se escriben5 precedidas del sCmbolo OFP5 a continuacin del evento de disparo ; de la guarda3 -or e*emplo: en la transicin aprobadoFcargarCuenta9 : de la 1igura5 aprobado indica el evento de disparo ; cargarCuenta9: la accin .ue se e*ecuta cuando se reali<a la transicin3

A las transiciones en las cuales el estado origen ; el destino son el mismo se les llama autotransiciones3

estado inicial evento

a4ota#o(pro#ucto)Greno)ar5tocH(pro#ucto)

autotransicin

pe#i#o!recibi#o!IprecioDl9miteJ

<rocesar!<e#i#o

estado final

2speran#o

LL?i4

guarda accin

pe#i#o!recibi#o!IprecioEl9miteJ

estado transicin

aproba#oGcar4ar"uenta()

"onfirmar!"rF#ito

recKaza#o

"ancelar!<e#i#o

!aracter#sticas Avan,adas Utili<ando solamente las caracterCsticas b/sicas de los estados ; las transiciones se puede modelar la ma;orCa de los comportamientos de los ob*etos3 4in embargo5 las
28%

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

m/.uinas de estados de UML tienen varias caracterCsticas avan<adas .ue pueden a;udar a modelar comportamientos comple*os3 #n UML los estados pueden incluir: Acciones de entrada ; salida: acciones atmicas .ue se e*ecutan siempre .ue se entra o se sale del estado3 Las acciones de entrada se eti.uetan con el evento especial entry ; las de salida con exit3 Gransiciones internas: transiciones .ue se mane*an sin cambiar de estado3 Las transiciones internas son ligeramente di1erentes de las autotransiciones3 Una autotransicin implica salir del estado ; volver a entrar en >l3 -or lo tanto5 primero se e*ecuta la accin de salida del estado5 despu>s la accin de la transicin ; por 7ltimo la accin de entrada al estado3 #n cambio5 en una transicin interna no se abandona el estado ; slo se e*ecuta la accin asociada a la transicin3 Actividades: con*unto de acciones .ue reali<a el ob*eto mientras se encuentra en ese estado3 Una accin no puede ser interrumpida por un evento5 pero una actividad sC3 A di1erencia de las transiciones internas5 las actividades no son disparadas por ning7n evento externo3 4e eti.uetan con el evento especial do3 #ventos di1eridos: lista de eventos .ue no se mane*an en este estado5 sino .ue se posponen ; se a0aden a una cola para ser mane*ados por el ob*eto en otro estado3 Los eventos di1eridos se eti.uetan con la accin especial defer3

282

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Mastrean#o
accin de entrada accin de salida transicin interna actividad evento diferido

entrBGacti)arNo#o(enMastreo) e'itGacti)arNo#o(noMastreo) nue)oCb:eti)oGrastrea#or+-#1uirir(!) #oGse4uirCb:eti)o autoAestG#efer

Adem/s5 en UML los estados de una m/.uina pueden contener subestados o estados anidados3 A un estado .ue contiene subestados se le llama estado compuesto3 Los estados compuestos se representan igual .ue los simples5 pero contienen en su interior una m/.uina de estados .ue describe el 1lu*o de control entre los subestados3 Las transiciones de entrada a un estado compuesto pueden activar el propio estado compuesto o uno de sus subestados3 -ara activar el estado compuesto es necesario .ue la m/.uina de subestados tenga de1inido un estado inicial3 #n tal caso5 cuando se dispara una transicin de entrada al estado compuesto5 se e*ecuta la accin de entrada ; el 1lu*o de control pasa al subestado inicial3 4i no se de1ine un subestado inicial5 las transiciones de entrada deben dirigirse a los subestados ; no al estado compuesto3 Cuando se dispara una transicin de entrada a un subestado5 primero se e*ecuta la accin de entrada del estado compuesto5 a continuacin el 1lu*o de control pasa al subestado ; se e*ecuta su accin de entrada3 Las transiciones de salida pueden tener como origen el estado compuesto o un subestado3 4i el origen es un subestado5 cuando se dispara la transicin se e*ecuta primero la accin de salida del subestado5 a continuacin la accin del estado compuesto ; por 7ltimo la accin asociada a la transicin3 4i el origen de la transicin de salida es el estado compuesto5 cuando se dispara la transicin se interrumpe la e*ecucin de la m/.uina anidadaU e*ecut/ndose primero la accin de salida del subestado .ue tuviese el control en ese momento5 despu>s la del estado compuesto ; por 7ltimo la accin asociada a la transicin3

28&

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

estado compuesto
llama#a col4ar en)iar

Inacti)o

Mecibien#o
cabeceraCQ

"onecta#o

<rocesan#o

)erificaci nCQ

Aransmisi n

Oimpian#o
entrBG!#escol4ar e'itG!#esconectar

subestado

Cada ve< .ue se dispara una transicin de entrada a un estado compuesto5 la m/.uina de estados anidada comien<a de nuevo su e*ecucin en el estado inicial3 4in embargo5 en algunas ocasiones puede resultar 7til .ue la m/.uina recuerde el 7ltimo estado en el .ue se encontraba ; comience su e*ecucin desde ese estado3 -ara modelar este tipo de comportamiento UML introduce los estados de =istoria3 Un estado de =istoria se representa con un cCrculo con el sCmbolo ?3

estado de historia

"opia3e5e4uri#a# Cr#en
consulta

Meco4er

"opiar
transicin inicial

Oimpiar

#l estado de =istoria debe tener una 7nica transicin de salida =acia otro subestado3 La primera ve< .ue se activa el estado compuesto5 a7n no =a; =istoria5 ; se e*ecuta esta transicin3 4i se dispara una transicin de salida5 el estado de =istoria recordar/ el 7ltimo estado .ue estaba e*ecut/ndose en la m/.uina antes de salir del estado compuesto3 A partir de ese momento ;a =a; =istoria3 Cuando se produ<ca una nueva transicin de entrada el control pasar/ al 7ltimo estado activo3
284

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Los estados compuestos pueden contener subestados concurrentes3 4i todos los subestados son secuenciales5 el estado compuesto contendr/ slo una m/.uina anidada3 4i existen subestados concurrentes5 el estado compuesto contendr/ varias m/.uinas5 una por cada tado concurrente3

divisin Subestados concurrentes

Inacti)o
unin

mantener

Nantenimiento <ruebas <robar! perifFricos -uto#ia4nosis


Ino!continuarJ

Nane:oCr#enes 2spera

tecla<ulsa#a IcontinuarJ

Cr#en

Cuando se activa un estado compuesto .ue contiene subestados concurrentes5 el 1lu*o de control se divide en tantos 1lu*os como m/.uinas anidadas =a;a3 Las m/.uinas se e*ecutar/n en paralelo mientras el estado compuesto est> activo3 4i una de las m/.uinas llega a su estado 1inal5 espera en ese estado a .ue todas las dem/s acaben de e*ecutarse3 Cuando todas las m/.uinas =an alcan<ado su estado 1inal5 el control vuelve a unirse en un 7nico 1lu*o3 Las m/.uinas de subestados concurrentes no pueden contener estados de =istoria3

285

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagrama de actividades Los diagramas de actividades de UML son similares a los diagramas de 1lu*o tradicionales3 8eneralmente se utili<an para modelar 1lu*os de traba*o o para describir detalladamente una operacin3 #n UML los diagramas de actividades son un caso particular de los diagramas de estado .ue muestran un 1lu*o de control3 #n estos diagramas los estados representan actividades o acciones3 Una accin es una operacin atmica indivisible .ue no puede ser interrumpida durante su e*ecucin3 Una actividad es una operacin no atmica .ue puede descomponerse en otras actividades o acciones ; .ue puede ser interrumpida durante su e*ecucin3 8r/1icamente no =a; ninguna di1erencia entre un estado de actividad ; un estado de accin5 ambos se representan con una ca*a de bordes redondeados3 -ara indicar el estado inicial ; 1inal de la actividad global se utili<an los mismos sCmbolos .ue en los diagramas de estado: un cCrculo negro para el estado inicial ; un cCrculo negro dentro de un cCrculo blanco para el estado 1inal3 Cuando se completa la actividad o la accin de un estado5 el 1lu*o de control pasa inmediatamente al estado siguiente3 La transicin de un estado a otro se indica con una 1lec=a continua3 Como en un cual.uier diagrama de 1lu*o se pueden especi1icar bi1urcaciones dibu*/ndolas con un rombo3 Una bi1urcacin tiene una transicin de entrada ; dos o m/s transiciones de salida3 #n cada transicin de salida se escribe una expresin entre corc=etes5 llamada guarda5 .ue indica las condiciones ba*o las .ue se sigue esa transicin3 Las guardas deben cubrir todas las condiciones posibles de salida para .ue el 1lu*o de control no se interrumpa en ning7n caso3 -ero5 para evitar ambigedades en el 1lu*o de control5 las guardas no deben solaparse3

286

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

2stablecer!pe#i#o

Ipe#i#o!RnicoJ Isuscripci nJ

"ar4ar!tar:eta!#e!crF#ito

"ar4ar!a!la!cuenta

#n un diagrama de actividades5 es posible especi1icar 1lu*os de control concurrentes3 La unin ; la divisin de estos 1lu*os se indican mediante barras de sincroni<acin3 Una barra de sincroni<acin se representa con una lCnea continua anc=a .ue une varios 1lu*os concurrentes en uno slo5 o divide un 7nico 1lu*o en varios =ilos concurrentes3

287

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

5olicitar!pro#ucto

<rocesar!pe#i#o

2'traer!art9culos

2n)iar!<e#i#o

Mecibir!pe#i#o

?acturar!al!cliente

<a4ar!factura

"errar!pe#i#o

Cuando se modelan 1lu*os de traba*o de organi<aciones5 resulta mu; 7til dividir el diagrama de actividades en grupos .ue se correspondan con las distintas divisiones o unidades de la organi<acin3 (entro de cada grupo se encontrar/n las actividades de las .ue es responsable cada unidad3 #n UML5 a estos grupos se les denomina calles por.ue el aspecto del diagrama recuerda a una pista de atletismo dividida en calles3 Aun.ue no es mu; 1recuente5 se pueden incluir en el diagrama los ob*etos implicados en el 1lu*o de control3 Los ob*etos se unen con una dependencia a la actividad .ue los crea5 modi1ica o destru;e3 A este uso de los ob*etos ; las relaciones de dependencia se le denomina 1lu*o de ob*etos3 (eba*o del nombre del ob*eto5 se puede mostrar el estado del ob*eto con un nombre entre corc=etes ; el valor de sus atributos en un compartimento3

288

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

"liente

6entas

-lmacFn

5olicitar!pro#ucto

<rocesar!pe#i#o 2'traer!art9culos o=<e#i#o Ien!pro4resoJ 2n)iar!pe#i#o

o=<e#i#o Icompleta#oJ Mecibir<e#i#o ?acturar!al!cliente

<a4ar!?actura

b=?actura Iimpa4a#aJ

b=?actura Ipa4a#aJ

"errar!pe#i#o

289

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagrama de componentes #n UML los componentes representan elemento 1Csicos del sistema5 por e*emplo e*ecutables5 p/ginas ?GML5 librerCas5 tablas5 1ic=eros5 etc3 8r/1icamente5 un componente se dibu*a mediante una ca*a con pesta0as3

Componente

Un diagrama de componentes muestra la organi<acin ; las dependencias entre un con*unto de componentes3 Los diagramas de componentes pueden contener pa.uetes para organi<ar los elementos3 Los componentes se comunican mediante inter1aces3 #s decir5 un componente o1rece sus servicios a los dem/s exportando inter1aces ; los otros componentes acceden a sus servicios importando estas inter1aces3 La exportacin de una inter1a< se puede representar de dos 1ormas3 4i se utili<a la 1orma expandida de la inter1a< para =acer explCcitas sus operaciones5 la exportacin se representa como una relacin de reali<acin3 Higura 13 4in embargo5 en los diagramas de componentes5 lo m/s 1recuente es utili<ar la 1orma simpli1icada de la inter1a< 9la piruleta: ; representar la exportacin mediante una lCnea continua .ue une el componente a la inter1a<33 Higura importacin de una inter1a< se representa mediante una relacin de dependencia3 3 La

interface $bservador%eIma"en +actualizarImagen()

ima"en&java

componente&java

Higura 13

29$

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

ima"en&java

Cbser)a#or 3e!Ima4en

componente&java

Higura 3 UML de1ine cinco estereotipos est/ndar aplicables a los componentes: executable: especi1ica un componente .ue se puede e*ecutar en un nodo 9arc=ivos 3#V#:3 library: especi1ica una librerCa de ob*etos est/tica o din/mica 9(LL:3 table: especi1ica una tabla de una base de datos3 file: especi1ica un 1ic=ero .ue puede contener cdigo 1uente o datos3 document: especi1ica un documento3

Muc=as =erramientas de modelado proporcionan iconos especC1icos para representar estos estereotipos3 #stos iconos no 1orman parte del est/ndar UML como tal5 pero su uso est/ tan extendido entre la comunidad de usuarios .ue pueden considerarse un est/ndar Ode 1actoP3 Adem/s5 las =erramientas tambi>n suelen incluir estereotipos para modelar aplicaciones Web .ue a7n no 1orman parte de UML5 pero posiblemente estar/n incorporados en prximas versiones3 8eneralmente5 cuando se utili<an estos estereotipos5 no se muestran las inter1aces en el diagrama3 #n su lugar5 se utili<a una notacin simpli1icada5 dibu*ando las dependencias directamente del componente .ue importa la inter1a< =acia el componente .ue la exporta3

fin#+Ktml

in#e'+Ktml find&e'e

29%

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Diagrama de despliegue Los diagramas de despliegue modelan la topologCa del =ard2are sobre el .ue se e*ecuta el sistema so1t2are3 #ste tipo de diagramas suele utili<arse para modelar sistemas distribuidos o sistemas empotrados3 #n los sistemas monolCticos5 generalmente5 resultan innecesarios3 Un diagrama de despliegue muestra la con1iguracin de los nodos del sistema3 #n UML5 un nodo es un elemento 1Csico .ue existe en tiempo de e*ecucin ; representa un recurso computacional .ue5 generalmente5 tiene alguna memoria ;5 a menudo5 capacidad de procesamiento3 ?abitualmente los nodos representan procesadores ; dispositivos =ard2are3 8r/1icamente5 un nodo se dibu*a como un cubo3 Las conexiones 1Csicas entre los nodos se representan mediante relaciones de asociacin3

terminal

servidor

unidad #AI%

consola

Higura 1

Los diagramas de despliegue pueden contener pa.uetes para organi<ar los nodos3 Cuando se modela la topologCa de los sistemas distribuidos ; empotrados5 es importante especi1icar la distribucin 1Csica de los componentes so1t2are sobre los nodos3 A menudo5 resulta 7til visuali<ar esta distribucin en el diagrama de despliegue3 -ara ello5 UML proporciona dos alternativas:
292

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

a0adir a cada nodo un compartimento adicional con la lista de los componentes .ue se e*ecutan sobre >l3 Higura 3 incluir en el diagrama de despliegue los componentes ; conectar5 cada nodo con los componentes .ue se e*ecutan sobre >l5 mediante una relacin de dependencia3 Higura '3

terminal %esplie"a user&e'e

servidor %esplie"a dbadmin&e'e

unidad #AI%

consola %esplie"a admin&e'e confi"&e'e

Higura 3

user&e'e

terminal

servidor

unidad #AI%

admin&e'e consola

dbadmin&e'e confi"&e'e

Higura '3

29&

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

$a'uetes Un pa.uete es un mecanismo de propsito general para organi<ar elementos en grupos3 8r/1icamente se representa como una carpeta3

((Nombre ))

Los pa.uetes se utili<an para organi<ar los elementos de los diagramas en grupos a los .ue se puede dar un nombre ; mane*ar como un con*unto3 4i estamos desarrollando una aplicacin trivial5 probablemente podremos representar todo el sistema en un diagrama .ue contenga unos cuantos elementos ; resulte 1/cil de entender e interpretar3 -ero5 en un sistema comple*o5 el n7mero de elementos ; de relaciones necesarias para modelar el sistema completo puede exceder la capacidad =umana de comprensin3 -or esta ra<n se agrupan los elementos en pa.uetes ; el contenido de cada pa.uete se muestra en un diagrama distinto3 Los pa.uetes pueden tener relaciones de dependencia ; generali<acin3 La relacin de dependencia indica .ue los elementos de un pa.uete utili<an o importan los elementos del pa.uete del .ue dependen3 La generali<acin entre pa.uetes es similar a la generali<acin entre clases5 los pa.uetes =i*os =eredan los elementos del pa.uete padre3 La generali<acin entre pa.uetes suele utili<arse para especi1icar 1amilias de pa.uetes3 #xisten dos estereotipos de la relacin de dependencia entre pa.uetes5 AAimportBB ; AAaccessBB3 Ambos especi1ican .ue el pa.uete origen tiene acceso a los elementos del pa.uete destino3 La di1erencia es .ue AAimportBB a0ade al espacio de nombres del origen el contenido del destino5 evitando la cali1icacin de nombres3

294

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

Aplicacion

I*U

I*U +indo,s

I*U -ac

Higura 13 &elaciones entre pa.uetes Los pa.uetes deben agrupar elementos cercanos sem/nticamente ; .ue suelen cambiar *untos5 tratando de minimi<ar las dependencias entre pa.uetes3 (e esta 1orma se 1acilita el mantenimiento ; la evolucin del sistema3 Ante un cambio en el sistema5 las modi1icaciones a1ectar/n principalmente a los elementos de un pa.uete3 Aun.ue =abr/ .ue revisar todos los pa.uetes .ue tengan alguna dependencia con el pa.uete .ue se =a modi1icado3 UML permite mostrar explCcitamente el contenido de un pa.uete3 #n este caso5 el nombre del pa.uete se coloca en la pesta0a de la carpeta3 9#n la pr/ctica no suele mostrarse el contenido de los pa.uetes de esta 1orma5 sino .ue se accede al contenido de cada pa.uete mediante =erramientas so1t2are:3 8eneralmente5 los elementos de un pa.uete son p7blicos3 -ero UML admite la posibilidad de controlar la visibilidad de los elementos de un pa.uete del mismo modo .ue se controla la visibilidad de los atributos ; las operaciones dentro de una clase3 Un elemento de un pa.uete puede ser: -7blico: visibles en cual.uier pa.uete .ue importe el pa.uete .ue lo contiene3 -rotegido: slo es visible dentro del pa.uete .ue lo contiene ; de sus =i*os3
295

Curso de OO dirigido por la introduccin de ambigedad

Anexo 1: Breve descripcin de UML

-rivado: slo es visible dentro del pa.uete .ue lo contiene3

La notacin para especi1icar la visibilidad de los elementos de un pa.uete es la misma .ue se usa para las clases: un elemento p7blico va precedido del sCmbolo -5 un elemento va precedido del sCmbolo . ; un elemento privado va precedido del sCmbolo / 3 -or de1ecto los elementos de un pa.uete se consideran p7blicos3

296

También podría gustarte