UML Diagramas de clases y de secuencia

65
7/21/2019 UML Diagramas de clases y de secuencia http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 1/65 Los diagramas de clases y secuencias del UML

description

Taller de Ingeniería de software - Magister en Tecnologías de Información y Gestión 2011 - PUC

Transcript of UML Diagramas de clases y de secuencia

Page 1: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 1/65

Los diagramas declases y secuencias del

UML

Page 2: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 2/65

Los diagramas de clases puedenincluir diversos niveles de

detalle

2

Un diagrama de clases describe, porlo menos, los tipos de objetos —clases— 

que hay en un sistema y las relacionesentre ellos.

P.ej., la próxima diapositiva muestra un

diagrama de clases que representa unmodelo del dominio de cursos, alumnosy proesores en una universidad.

Page 3: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 3/65

!

"urso

#lumno

Proesor

Lista#lumnos

Proesor$ull%ime

ProesorPart%ime

&s'dictado'por

&s'supervisado'por

t('compuesta

'por

#dministra

Page 4: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 4/65

)

"uando usamos un diagrama de clases

para representar planos de diseño desoftware, el diagrama resultante sellama habitualmente diagrama declases del diseño *+"+.

Page 5: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 5/65

-

P.ej., la próxima diapositiva muestra un+"+ basado en el modelo de dominio

anteriormuestra los atributos de las clases

*tambi/n pueden mostrarse en el modelo

de dominio0muestra las multiplicidades de las

asociaciones *tambi/n pueden mostrarse enel modelo de dominio0muestra la navegabilidad de las

asociaciones0t1picamente, no muestra los nombres de

las asociaciones.

Page 6: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 6/65

"urso

#lumno

Proesor

Lista#lumnos Proesor

$ull%imeProesorPart%ime

código

vacantescr/ditos

nombre

n3mero

cantidadetapa

nombre

departamento

o4cina

proyectoscomit/s

empresa

5 6..2

7..6

55

6

57..6

Page 7: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 7/65

8

Los +"+9s m(s detallados incluyen,adem(s, lo siguientelas operaciones *o m/todos de las clases

:sólo los nombres o las 4rmas completas0los nombres de los roles que desempe;an

las clases en un extremo de una asociacióncon respecto a la clase en el otro extremo

*en lugar de los nombres de lasasociaciones.

Page 8: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 8/65

<

P.ej., la próxima diapositiva muestraestas propiedades para una porción del+"+ anterior

muestra las operaciones agregarAlumno( ),aumentarVacantes( ), ordenarXprioridad( ),ordenarAlafebeticamente( )0muestra que la clase ListaAlumnos 

desempe;a el rol de alumnos inscritos conrespecto a la clase Curso.

Page 9: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 9/65

=

"urso

Lista#lumnos

código >tringvacantes ?nteger

cr/ditos ?nteger

cantidad ?ntegeretapa ?nteger

agregar#lumno* #lumno @ooleanaumentarAacantes* delta ?nteger ?nteger

ordenarBprioridad* #lumnoC5Dordenar#lab/ticamente*

7..66

alumnos?nscritos

Page 10: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 10/65

Las clases se representanpor rect(ngulos *o cajas

67

"ada clase tiene uno, dos o trescompartimientos

nombre :obligatorio *el de m(s arriba0

atributos :opcional *el que sigue0

operaciones *o métodos :opcional *el dem(s abajo0 si aparece, tambi/n tiene queaparecer el compartimiento de los atributos,aunque puede aparecer vac1o.

Page 11: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 11/65

#tributos y operaciones puedenincluir inormación adicional al

nombre

66

Los atributos pueden incluir los tipos dedatosp.ej., código !tring , vacantes "nteger  .

Las operaciones pueden incluir lo siguientetipo de dato del resultado producido por la

operación0

nombre y tipo de dato de los par(metros de laoperación :si se especi4ca los par(metros, losnombres son, nuevamente, opcionales0p.ej., agregarAlumno( Alumno ) #oolean , o

agregarAlumno( a Alumno ) #oolean

Page 12: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 12/65

Eotación UML para los atributos

FvisibilidadG FnombreG FtipoGFmultiplicidadG H Fdefault G IF propert%&stringGJ

normalmente, la visibilidad es privada *' amenos que se muestre otra cosa *K, p3blica0el F propert%&stringG m(s com3n es

'readnl%, es decir, sólo para lectura0la multiplicidad se puede usar para indicar lapresencia opcional de un valor, o el n3merode objetos que puede haber en un atributo *si

es una colección de objetos. 62

Page 13: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 13/65

&l +"+ tambi/n muestra lasrelaciones entre las clases

6!

ay dos grandes tipos de relacionesentre clasesasociaciones :denotadas por l1neas o

echas, sus extremos pueden indicar roles ymultiplicidades0

generali*aciones *o +erencia :denotadaspor un tri(ngulo *∆, en cuyo v/rticesuperior descansa la clase madre.

Page 14: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 14/65

6)

&n UML, atributos y asociaciones son dosormas de representar las propiedades

cuyos valores est(n almacenados *no sonm/todos en los objetos

*en NN las llamamos simplemente atributos0

los atributos son las propiedades cuyosvalores est(n almacenados mediantesubobjetos :en general, son de tipos

simples "nteger , !tring, etc0las asociaciones son las propiedades cuyos

valores est(n almacenados mediantereerencias :en general, son otros objetos.

Page 15: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 15/65

6-

"urso

código >tring

vacantes ?ntegercr/ditos ?nteger

Proesor

Lista#lumnos

cantidad ?ntegeretapa ?nteger

nombre >tring

departamento >tring

5 6..2

7..6

6

"urso

código >tringvacantes ?ntegercr/ditos ?ntegerinstructor Proesoralumnos?nscritos

Lista#lumnos

las propiedades de un curs

mostradas como asociacio

las propiedades de un curso

mostradas como atributos

instructor

alumnosinscritos

Page 16: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 16/65

Las propiedades :atributos yasociaciones: tienen nombres

6

&l nombre de los atributos es obligatorioopcionalmente, se puede mostrar el tipo de

datos *o clase, la multiplicidad, etc.

&l nombre en las asociaciones es opcionalen un +"+, normalmente se indica el rol que

desempe;an las instancias de la clase en unextremo de la asociación con respecto a lasinstancias de la clase en el otro extremo0p.ej., un ,rofesor  es el instructor  de un Curso,

y una ListaAlumnos contiene los alumnos

inscritos en un Curso.

Page 17: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 17/65

Las asociaciones puedentener multiplicidades

68

Multiplicidad cu(ntos objetos pueden participar

simult(neamente en la asociación.

P.ej., en el +"+ anterior6 :una lista de alumnos pertenece a un

curso0

6..2 :un curso puede tener uno o dosproesores05 *o 7..5 :un proesor puede dictar cursos, y

no hay un l1mite superior para el n3mero de

cursos dictados *cero o m(s.

Page 18: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 18/65

Las asociaciones puedenre4narse

6<

Oelación de agregación *Universidad '

Proesoreses un tipo de relación algo vaga del todo

con sus partes0el todo usa los servicios de sus partes0una parte puede ser compartida por varios

todosQ.

Page 19: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 19/65

6=

Oelación de composición *Universidad '

$acultadestambi/n relaciona al todo con sus partes,

pero de manera m(s estrecha y precisa0las partes no tienen vida independiente

uera del todo0cada parte pertenece a lo m(s a un todo.

Page 20: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 20/65

27

Universidad Proesor

 Agregación una -niversidad es unaagregación de (est.formada por) varios profesores /ue

traba0an para la univer& sidad1 los profesores pueden traba0ar para otrasuniversidades2

proesor

5

Universidad $acultad

Composición una -niversidad es unacomposición de variasfacultades /ue son parte de la

universidad1 las facultades no

acultad

5

Page 21: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 21/65

Las asociaciones en un +"+ sonhabitualmente unidireccionales

26

>ólo importa el rol que desempe;a laclase en el extremo con la punta deecha con respecto a la clase de

partida, y no vice versa.

Page 22: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 22/65

22

P.ej., en la próxima diapositivapara un curso es importante el proesor que

lo dicta y la lista de alumnos inscritos :,rofesor y ListaAlumnos son propiedades deCurso0para un proesor, o una lista de alumnos, el

curso no est( representado como unapropiedad :Curso no es una propiedad de,rofesor ni de ListaAlumnos.

Page 23: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 23/65

2!

"urso

#lumno

Proesor

Lista#lum

nos Proesor$ull%ime

ProesorPart%ime

código

vacantescr/ditos

nombre

n3mero

cantidadetapa

nombre

departamento

o4cinaproyectoscomit/s

empresa

5 6..2

7..6

5

5

6

57..6

L operaciones l

Page 24: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 24/65

Las operaciones son lasacciones

que una clase sabe llevar a cabo

2)

"orresponden a las responsabilidadesque tiene una claseen NN, las llamamos m/todos.

La especi4cación de una operación enun +"+ incluye lo siguiente *diapositivasR = y 28nombre *obligatorio0lista de par(metros *opcional0tipo de datos del valor de retorno

*opcional.

U generali*ación d

Page 25: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 25/65

Usamos generali*ación cuandohay dierencias pero tambi/n

similitudes

2-

Propiedades tanto de proesores ull

time como part time *próximadiapositivanombre, departamento, y ormas para

obtener su cali4cación docente y citarlo areunión.

Page 26: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 26/65

2

Propiedades sólo de proesores parttimela empresa en que trabajan ull time, y una

orma para renovarles el contrato.

Propiedades sólo de proesores ull timeo4cina que ocupan, proyectos y comisiones

en que participan, y una orma paraasignarles alumnos.

Page 27: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 27/65

28

Proesor

Proesor$ull%ime ProesorPart%ime

nombre >tring

departamento >tring

o4cina >tringproyectos Proyecto C5Dcomit/s >tring C5D

empresa >tring

evaluacion+ocente* ?ntegercitarOeunión *$echa, ora, lugar >tring @oolean

asignar#lumno*#lumno

@oolean

renovar"ontrato*$echa @oolean

Page 28: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 28/65

?ncluimos las similitudesen una clase general

2<

Propiedades de la *superclase ,rofesor los atributos nombre y departamento0la operaciones evaluacion4ocente y

citar5eunión.

Page 29: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 29/65

S y de4nimos subclases

2=

Las subclases tienen sus propiaspropiedades, pero también tienen laspropiedades de la superclase

toda instancia de ,rofesor6ulltime estambi/n, por de4nición, una instancia de,rofesor 0un ,rofesor6ulltime es un tipo especial de

,rofesor 0todo lo que es v(lido para ,rofesor :

asociaciones, atributos, m/todos: tambi/n

lo es para ,rofesor6ulltime.

7erencia l i

Page 30: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 30/65

7erencia es el mecanismo queimple'menta la generaliTación

en sotare

!7

Oecordemos el principio de sustituibilidaddeber1amos poder sustituir un ,rofesor6ulltime, o

un ,rofesor&,arttime, en cualquier ragmento decódigo que requiera un ,rofesor , y todo deber1auncionar bien0si escribimos código suponiendo que tengo un

,rofesor , podemos usar libremente cualquier

subclase de ,rofesor 0el ,rofesor6ulltime puede responder a ciertos

m/todos dieren'temente de otro ,rofesor , porpolimor4smo, pero el que hace la llamada no

deber1a tener que preocuparse por la dierencia.

U diagrama de secuencia

Page 31: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 31/65

Un diagrama de secuencia describe cómo colaboran grupos

de objetos

!6

+escribe el comportamiento de un

escenario *de un caso de usomuestra los objetos, o las instancias, que

participan en el escenario y los mensajes

que son pasados entre estos objetos0es un diagrama de objetos, no de clases.

Page 32: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 32/65

!2

Aeamos primero un caso particularlos diagramas de secuencia del sistema 

*+>>s muestran la inter'acción entre dosobjetos un actor principal particular :unobjeto: y el >istema :otro objeto.

Luego veremos el caso m(s general.

Page 33: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 33/65

&l diagrama de secuenciadel sistema del UML

33

Un 4!! muestra lo siguiente, para unescenario particular de un caso de usoel actor principal que interact3a con el

>istema0el >istema *como una caja negra0los eventos generados por los actores, como

mensajes al >istema0el orden de estos eventos, por su posición

relativa0

el ujo del tiempo, que transcurre hacia abajo.

emp o escenar o pr nc pa

Page 34: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 34/65

emp o escenar o pr nc padel

caso de uso ,rogramar Cursos

34

8l Coordinador 4ocente indica /ue /uiereiniciar la programación de cursos2 8lCoordinador 4ocente especi9ca la información

necesaria para programar un curso (p2e02:código: nombre del profesor: n;mero devacantes)2 8l !istema con9rma /ue el curso/uedó programado2 8l Coordinador 4ocente

repite el paso anterior para cada curso /ue/uiere programar2 8l Coordinador 4ocenteindica /ue terminó2 8l !istema muestra la lista

de cursos programados2

Page 35: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 35/65

&jemplo +>> para unescenario del caso de

uso ,rogramar Cursos

35

>istema "oordinador+ocente

iniciarProgramaciónde"ursos*

progamar"urso* código, proesor, vacantes, S

con4rmación

terminarProgramaciónde"ursos*

lista de cursos programados

loop Chay m(s cursos que programarD

Page 36: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 36/65

  un+> sobre procesamiento de

órdenes

!

Aeamos ahora el caso m(s general deun diagrama de secuencia *+>, a trav/sde un ejemplo.

Page 37: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 37/65

!8

 %enemos una orden de compra yllamamos a una de sus operaciones :calc,recio: para calcular su precio

primero, la orden necesita determinar elprecio de cada una de sus l1neas :calc,recio#ase: que depende de lacantidad de productos :obtCantidad: y

del precio unitario del producto de cadal1nea :obt,roducto y obt,recio0luego, la orden debe calcular el descuento

total, que depende del cliente :

obt"nfo4escuento.

cto

Page 38: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 38/65

!<

calcPrecio*

obt"antidad*

obtProducto*

obtPrecio*

calcPrecio@ase*

calc+escuento*

obt?no+escuento*

unProducto

Nrden Lineacto

Producto

"liente

Page 39: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 39/65

!=

+iagrama de clases correspondienteal diagrama de secuencia

de la diapositiva anterior

"liente

obt?no+escuento*

Nrden

calcPrecio* calcPrecio@ase* calc+escuento

*

Producto

obtPrecio*

L1nea

obt"antidad* obtProducto*

(

Page 40: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 40/65

Un +> *b(sico casi nonecesita explicación

)7

&l diagrama anterior muestra losiguiente

cada objeto participante, con una l1nea devida vertical :el tiempo avanTa bajandopor la l1nea0las operaciones llamadas :mensajes

enviados de unos objetos a otros0 yel orden de los mensajes :leyendo el

diagrama de arriba a abajo.

Page 41: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 41/65

)6

Los mensajes enviados a un objetodeben correspon-der a lasoperaciones defnidas en la clase

del objeto.

cto

Page 42: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 42/65

mensaje

“encon-

trado”

)2

calcPrecio* obt"antidad*

obtProducto*

obtPrecio*

calcPrecio@ase*

calc+escuento*

obt?no+escuento*

unProducto

línea

de vida

barra de

activación

objeto participante

retorno

mensaje a

 sí mismo   mensaje

Nrden Linea

"lientecto

Producto

Page 43: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 43/65

)!

&s (cil ver lo siguienteuna instancia de rden env1a los mensajes

obtCantidad y obt,roducto a una instancia

de Linea0la orden llama a un m/todo de s1 misma,

calc4escuento, y /ste env1a el mensajeobt"nfo4escuento a una instancia deCliente.

Page 44: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 44/65

))

Pero no todo se muestra igualmentebienla secuencia de mensajes obtCantidad,

obt,roducto, obt,recio y calc,recio#ase tiene que ejecutarse para cada l1nea de laorden :esto no puede deducirse deldiagrama anterior0

hay que agregar inormación adicional aldiagrama, a costa de su simplicidad.

L +> t l ti id d

Page 45: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 45/65

Los +>s muestran la actividadde los objetos participantes

)-

"ada l1nea de vida tiene una barra de

activación *o varias, opcionalmuestra cu(ndo el objeto participante est(

activo0

corresponde a la ejecución de un m/tododel objeto.

Page 46: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 46/65

S y sus nombres

)

Poner nombres a los objetos permite

correlacionarlosp.ej., la llamada obt,roducto retorna

un,roducto :el mismo nombre, y por lotanto el mismo participante, que el objetoun,roducto al que se env1a la llamadaobt,recio.

L +> d t

Page 47: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 47/65

Los +>s pueden mostrarvalores de retorno

)8

Los retornos de las llamadas son

opcionalesincluirlos cuando agreguen inormación0p.ej., el diagrama muestra sólo el retorno

de la llamada obt,roducto, para explicitar la

correspondencia entre el productoretornado y el producto al que se le env1a elmensaje obt,recio a continuación.

Page 48: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 48/65

S y mensajes sin una uente

)<

&l primer mensaje, calc,recio, no tieneun participante que lo haya enviadoproviene de una uente indeterminada0se conoce como un mensa0e encontrado 

*found message.

L bj t d 1 l b

Page 49: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 49/65

Los objetos podr1an colaborarm(s descentraliTadamente

)=

&n la próxima diapositiva, la orden le pidea cada l1nea que calcule su propio precio.

La l1nea, a su veT, le traspasa el

problema del c(lculo al producto mismole pasa como par.metro la cantidad de

unidades.

Para calcular el descuento, la orden llamaa un m/todo del clientecomo el cliente necesita inormación de la

orden, hace una llamada reentrante 

*obtValor#ase a la orden.

unaNrd

Page 50: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 50/65

-7

calcPrecio*

calcPrecio*

obtAalor+escontado* unaNrden

obtPrecio* cantidad

obtAalor@ase*

valor+escontado

mensajes con

 parámetros

en Nrden

Linea Producto

"liente

+i d l di t

Page 51: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 51/65

-6

+iagrama de clases correspondienteal diagrama de secuencia

de la diapositiva anterior

"liente

obtAalor+esccon'

tado* Nrden

Nrden

calcPrecio* obtAalor@ase*

Producto

obtPrecio* ?nteger

L1nea

calcPrecio*

Los +>s muestran claramente

Page 52: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 52/65

Los +>s muestran claramentecómo interact3an los

participantes

-2

Los diagramas de las diaps. R )2 y R -7muestran dos ormas dierentes deinteracción entre los mismos cuatroobjetos participantes.

Vsta es su ortaleTa m(s importante

las llamadas entre objetos se venclaramente0dan una buena idea de cu(les objetos

hacen qu/.

b

Page 53: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 53/65

S pero no son muy buenos paramostrar detalles algoritmicos

-!

Los +>s no son tan buenos para mostrardetalles de algoritmos :hay queagregar 4guras adicionalesp.ej., comportamiento condicional o

repetitivo.

Un +> puede mostrar

Page 54: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 54/65

Un +> puede mostrarcreación de objetos

-)

Las próximas diaps. muestran el *miniescenario de ,agar en eectivo para un

sistema de PdA, en que participaninstancias de Ca0a, Venta y ,ago.

La instancia de ,ago es creada durantela ejecución del escenario —creación de

 participantes.

Page 55: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 55/65

--

pagar* eectivo

crear* eectivo

pagar* eectivo

mensajede creación

"aja Aenta

Pago

y comportamiento

Page 56: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 56/65

S y comportamientocondicional

-

la creación de un pago se puede hacerdepender de si el eectivo *entregadopor el cliente es mayor o igual al totalde la venta —comportamiento

condicional.

Page 57: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 57/65

-8

pagar* eectivo

crear* eectivo

pagar* eectivo

alt

C else D

C eectivo W totalAenta D

marco

custodias

operador

 separación de fragmentos

"aja Aenta

Pago

Los marcos de interacción son

Page 58: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 58/65

Los marcos de interacción sonormas de destacar una región

de un +>

-<

La región es dividida en fragmentoscada ragmento tiene un operador  y puede

tener una custodia *una condición.

Page 59: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 59/65

-=

P.ej.,para mostrar comportamiento condicional

*diapositiva R -8, usamos el operador alt  con dos o m(s ragmentos, y ponemoscondiciones mutuamente excluyentes encada custodia :sólo una puede serverdadera y sólo el ragmentocorrespondiente se ejecuta0para mostrar repetición *próxima

diapositiva, usamos el operador loop conun ragmento y la custodia es la condiciónde la repetición.

+irector

 +irector  "oordinad

Page 60: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 60/65

7

progr"ursos* progr"ursos* cursosEuevos*Sproposicion*p

proposicion*p asignar"odigo*p

revisar*p

corregirProp*p corregirProp*p

proposicion*pproposicion*p

crear*p

cursoEuevo*p

revisar*p

loop Cp no est( aprobadoD

+irectorde

Pregrado

de+ocenci

a

orde

+ocencia

Proesor

+iagrama de clases

+irectorPregra

Page 61: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 61/65

+iagrama de clasescorrespondiente

al diagrama desecuencia de ladiapositiva anterior

+irectorPregrado

cursoEuevo

* Programa crear* Programa

Proesor

cursosEuevos*

corregirProp

* Programa

Programa

+irector+ocencia

progr"ursos* proposición* Programa revisar* Programa

"oordinador+ocencia

progr"ursos* proposición* Programa asignar"ódigo

* Programa

alt M3ltiples ragmentos

Page 62: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 62/65

2

alt   M3ltiples ragmentosalter'nativos0 sólo aqu/lcuya custodia es verdadera

se ejecutar(.opt   Npcional0 elragmento se ejecuta sólosi la custodia es verdadera

:equivale a alt  con unaalternativa.

loop  "iclo0 el ragmentopuede ejecutarse varias

veces y la custodia indica lacondición de la repetición.

 par   Paralelismo0 cadaragmento corre en

paralelo.

ref   Oeerencia a unrag'mento que apareceen otro diagrama.

strict   Los mensajes enel ragmento est(ntotalmente ordenados:sólo hay una traTa deejecución consisten'tecon el ragmento.

criticalRegion  &lragmento debe sertratado como atómico yno puede serintercalado con otrasocurrencias de eventos.

Page 63: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 63/65

!

inscribir* a prerrequisitos* a

alt C a satisace prerrequisitos D

C a no satisace prerrequisitos D

vacantes* a

alt C sección tiene vacantes D

C else D consulta* a

alt C proesor autoriTa D

C else D

aceptado*

aceptado*

rechaTado*

rechaTado*

#lumno >ección Proesor

La diapositiva anterior muestra el +> del

Page 64: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 64/65

La diapositiva anterior muestra el +> delproceso de inscripción de un alumno enuna sección de un cursoel alumno, a, solicita la inscripción a lasección, y /sta veri4ca el cumplimiento de losprerrequisitos0

si el alumno tiene los prerrequisitos, entoncesla sección veri4ca la disponibilidad devacantes0si hay vacantes, el alumno es admitido0 de locontrario, se consulta al proesor, que puedeautoriTar o no0si el alumno no tiene los prerrequisitos, es

rechaTado.)

Page 65: UML Diagramas de clases y de secuencia

7/21/2019 UML Diagramas de clases y de secuencia

http://slidepdf.com/reader/full/uml-diagramas-de-clases-y-de-secuencia 65/65

inscribir* a prerrequisitos* a

alt C a satisace prerrequisitos D

C a no satisace prerrequisitos D

vacantes* a

alt C sección tiene vacantes D

C else D consulta* a

alt C proesor autoriTa D

C else D

aceptado*

aceptado*

rechaTado*

rechaTado*

#lumno >ección Proesor