diagramas de interaccidiagramas de interacciónónlcdiaz/adoo2007-3/diagramasinter... · diagramas...

Post on 05-Feb-2018

227 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Diagramas de InteracciDiagramas de Interacciónón

InteracciónInteracciónInteracciónInteracción

EsEs unun comportamientocomportamiento queque comprometecomprometeunun conjuntoconjunto dede mensajesmensajes intercambiadosintercambiadosentreentre unun conjuntoconjunto dede objetosobjetos dentrodentro dede ununcontextocontexto parapara lograrlograr unun propósitopropósitoUnUn mensajemensaje eses lala especificaciónespecificación dede unaunacomunicacióncomunicación entreentre objetosobjetos enen lala queque sesetransmitetransmite informacióninformación concon lala expectativaexpectativadede queque lala actividadactividad sese llevelleve aa cabocabo

Aspectos comunes enAspectos comunes eninteraccióninteracción

ObjetosObjetos:: ParticipantesParticipantes enen lala interaccióninteracciónObjetosObjetos:: ParticipantesParticipantes enen lala interaccióninteracciónRolesRoles:: JugadosJugados porpor loslos objetosobjetosEnlacesEnlaces:: ConexiónConexión semánticasemántica entreentre

objetosobjetosMensajesMensajes:: ComunicaciónComunicación entreentre objetosobjetosSecuenciaciónSecuenciación:: OrdenOrden dede loslos mensajesmensajesSecuenciaciónSecuenciación:: OrdenOrden dede loslos mensajesmensajes

Diagramas de InteracciónDiagramas de InteracciónDiagramas de InteracciónDiagramas de Interacción

MuestraMuestra lala interaccióninteracción entreentre loslosobjetosobjetos concon sussus relacionesrelaciones yy loslosjj yymensajesmensajes queque puedenpueden enviarenviar entreentreellosellosellosellos

DiagramasDiagramas dede SecuenciaSecuenciaDiDi dd C l b ióC l b ióDiagramasDiagramas dede ColaboraciónColaboración

UnUn mensajemensaje eses lala invocacióninvocación dede ununjjmétodométodo

Diagramas de InteracciónDiagramas de InteracciónDiagramas de InteracciónDiagramas de Interacción

ModelanModelan loslos aspectosaspectos dinámicosdinámicos deldelsistemasistemaSirvenSirven parapara visualizar,visualizar, especificar,especificar,construirconstruir yy documentardocumentar lala dinámicadinámicaconstruirconstruir yy documentardocumentar lala dinámicadinámicadede unauna sociedadsociedad particularparticular dede objetosobjetos

ModelanModelan unun flujoflujo dede controlcontrolparticularparticular dede unun casocaso dede usousoparticularparticular dede unun casocaso dede usouso

Diagramas de InteracciónDiagramas de InteracciónDiagramas de InteracciónDiagramas de Interacción

M tM t i t iói t ióMuestraMuestra unauna interacción,interacción, quequeconsisteconsiste enen unun conjuntoconjunto dede objetosobjetos yylaslas relacionesrelaciones entreentre ellos,ellos, incluyendoincluyendoloslos mensajesmensajes queque debendeben serserenviadosenviados..EsEs unun macromacro--algoritmoalgoritmo descritodescritoss uu ac oac o a go t oa go t o desc todesc tográficamentegráficamenteSonSon modelosmodelos dinámicosdinámicos quequeSonSon modelosmodelos dinámicosdinámicos quequedescribendescriben cómocómo loslos objetosobjetoscolaborancolaboran entreentre sísícolaborancolaboran entreentre sísí..

Tipos de Diagramas deTipos de Diagramas deInteracciónInteracción

DiDi dd S iS iDiagramasDiagramas dede SecuenciaSecuenciaEnfatizaEnfatiza elel tiempotiempo queque indicaindica elel ordenordendede loslos mensajesmensajesEsEs útilútil parapara describirdescribir escenariosescenarios dondedondeexisteexiste interaccióninteracción concon elel usuariousuarioEsEs utilizadoutilizado parapara mostrarmostrar elel diseñodiseñodetalladodetallado dede unun procedimientoprocedimiento (método)(método)

DiagramaDiagrama dede colaboracióncolaboraciónggEnfatizaEnfatiza lala organizaciónorganización estructuralestructural dedeloslos objetosobjetos queque envíanenvían yy recibenrecibenjj qq yyinformacióninformación

Tipos de Diagramas deTipos de Diagramas deInteracciónInteracción

DiagramasDiagramas dede EstadoEstadoMuestraMuestra loslos posiblesposibles estadosestados dede ununMuestraMuestra loslos posiblesposibles estadosestados dede ununobjetoobjeto yy laslas transicionestransiciones queque causacausa ununcambiocambio enen elel estadoestadocambiocambio enen elel estadoestado

DiagramasDiagramas dede ActividadActividadMuestraMuestra unun flujoflujo dede actividadesactividadesinvolucradasinvolucradas enen unun simplesimple procesoproceso

Propiedades ComunesPropiedades ComunesPropiedades ComunesPropiedades Comunes

RolesRoles uu objetosobjetosComunicacionesComunicaciones oo EnlacesEnlacesComunicacionesComunicaciones oo EnlacesEnlacesMensajesMensajes

PuedenPueden contenercontener notasnotas ooPuedenPueden contenercontener notasnotas oorestriccionesrestricciones

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de Secuencia

DiagramaDiagrama dede interaccióninteracción queque destacadestacalala ordenaciónordenación temporaltemporal dede loslosppmensajesmensajesSeSe caracterizancaracterizan porpor::SeSe caracterizancaracterizan porpor::

LíneaLínea dede vidavidaLíneaLínea discontinuadiscontinua verticalverticalRepresentaRepresenta lala existenciaexistencia dede unun objetoobjeto aa lololargolargo dede unun periodoperiodo dede tiempotiempo

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de Secuencia

SeSe caracterizancaracterizan porpor::ElEl focofoco dede controlcontrol eses unun rectángulorectánguloggdelgadodelgado yy estrechoestrecho queque representarepresenta elelperiodoperiodo durantedurante elel cualcual elel objetoobjetopp jjdesarrolladesarrolla unauna acciónacciónMensajesMensajes:: SeSe representarepresenta concon unaunaMensajesMensajes:: SeSe representarepresenta concon unaunaflechaflecha entreentre líneaslíneas dede vidavida.. LaLa puntapunta sesedirigedirige alal receptorreceptor queque eses elel queque poseeposee eleldirigedirige alal receptorreceptor queque eses elel queque poseeposee elelmétodométodo..

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de Secuencia Diagrama de Secuencia

DetallaDetalla cómocómo laslas operacionesoperaciones sonsonllevadasllevadas aa cabo,cabo, quéqué mensajesmensajes sonson,, qq jjenviadosenviados yy cuándocuándo..EsEs unauna representaciónrepresentación queque muestramuestraEsEs unauna representaciónrepresentación queque muestra,muestra,enen determinadodeterminado escenarioescenario dede ununcasocaso dede uso,uso, loslos eventoseventos generadosgeneradosporpor actoresactores externos,externos, susu ordenorden yy loslospp yyeventoseventos internosinternos deldel sistemasistema..

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de Secuencia

M tM t ll i t iói t ió dd j tj t ddMuestraMuestra lala interaccióninteracción dede unun conjuntoconjunto dedeobjetosobjetos enen unauna aplicaciónaplicación aa travéstravés deldeltiempotiempotiempotiempo..LaLa creacióncreación dede loslos diagramasdiagramas dedesecuenciasecuencia dependedepende dede lala formulaciónformulación dedesecuenciasecuencia dependedepende dede lala formulaciónformulación dedeloslos casoscasos dede usousoUnUn diagramadiagrama dede secuenciasecuencia sese modelamodelaUnUn diagramadiagrama dede secuenciasecuencia sese modelamodelaparapara cadacada casocaso dede uso,uso, estoesto es,es, eleldiagramadiagrama dede secuenciasecuencia capturacaptura eleldiagramadiagrama dede secuenciasecuencia capturacaptura elelcomportamientocomportamiento deldel casocaso dede usouso..

Diagramas de SecuenciaDiagramas de SecuenciaDiagramas de SecuenciaDiagramas de Secuencia

Tomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de Secuencia

E táE tá i di d dd dd ll titiEstánEstán organizadosorganizados dede acuerdoacuerdo alal tiempo,tiempo,queque avanzaavanza haciahacia lala parteparte dede inferiorinferior enen eleldiagramadiagramadiagramadiagrama..LosLos objetosobjetos involucradosinvolucrados enen lala operaciónoperaciónsonson listadoslistados dede izquierdaizquierda aa derechaderecha dedesonson listadoslistados dede izquierdaizquierda aa derechaderecha dedeacuerdoacuerdo aa cuandocuando tomantoman parteparte enen lalasecuenciasecuenciasecuenciasecuencia..LaLa dimensióndimensión verticalvertical representarepresenta eleltiempotiempo yy lala dimensióndimensión horizontalhorizontaltiempotiempo yy lala dimensióndimensión horizontalhorizontalrepresentarepresenta lala interaccióninteracción dede objetosobjetos..

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaMuestran,Muestran, parapara unun escenarioescenario específicoespecífico dede ununMuestran,Muestran, parapara unun escenarioescenario específicoespecífico dede ununcasocaso dede usouso::

loslos eventoseventos queque generangeneran loslos actoresactores externosexternoselel ordenorden dede loslos eventoseventoseventoseventos entreentre loslos sistemassistemas

LosLos sistemassistemas sese tratantratan comocomo cajascajas negrasnegrasDebeDebe realizarserealizarse unun DSDS parapara elel escenarioescenarioprincipalprincipal dede éxitoéxito deldel casocaso dede uso,uso, yy loslosescenariosescenarios alternativosalternativos complejoscomplejos oofrecuentesfrecuentesfrecuentesfrecuentesNoNo eses necesarionecesario crearcrear unun DSDS parapara todostodos

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de Secuencia

MensajeMensajeMensajeMensaje

RepresentadoRepresentado comocomo unauna línealínea sólidasólidadirigidadirigida desdedesde elel objetoobjeto queque emiteemite elelmensajemensaje haciahacia elel objetoobjeto queque lolo ejecutaejecuta..ConstaConsta dede::

OperaciónOperaciónNúmero de secuencia (opcional)Número de secuencia (opcional)Argumentos de la operaciónArgumentos de la operaciónValor de retorno de la operaciónValor de retorno de la operaciónFlecha de retorno de mensaje (opcional)Flecha de retorno de mensaje (opcional)

MensajeMensajeMensajeMensaje

EspecificaciónEspecificación deldel tipotipo dede mensajemensaje ::sincrónico,sincrónico, asincrónicoasincrónico..,,EspecificaciónEspecificación dede creacióncreación óódestruccióndestrucción (la(la creacióncreación sese muestramuestradestruccióndestrucción (la(la creacióncreación sese muestramuestracomocomo unun corrimientocorrimiento deldel objetoobjeto haciahacia

))abajo)abajo)CondiciónCondiciónCondiciónCondiciónIteraciónIteración

Mensaje a “Self” o “this”Mensaje a “Self” o “this”Mensaje a Self o thisMensaje a Self o this

:Registro

Msj1()Limpiar()

Creación de ObjetosCreación de ObjetosCreación de ObjetosCreación de ObjetosLos objetos creados

i t t itú

:Registro :Ventarecientemente se sitúan a su altura de creación

Realizarpago(dineroEntregado)

:PagoCreate(dineroEntregado)

Autorizar()

La línea de vida muestra laDuración de la vida de unDuración de la vida de un Objeto en el diagrama

Destrucción de objetosDestrucción de objetosDestrucción de objetosDestrucción de objetos

:Venta

:PagoCreate(dineroEntregado)

Autorizar()

El mensaje estereotipado con “destroy” y la X indica la destrrucción explícita del objeto

“Destroy()”

Mensajes condicionalesMensajes condicionalesMensajes condicionalesMensajes condicionales

:Foo :Bar:Foo :Bar

[color = rojo] calcular()

Mensaje1()

Mensajes CondicionalesMensajes CondicionalesMutuamente ExclusivosMutuamente Exclusivos

:A :BMensaje1()

:C

[x>15] calcular()

[x<10] calcular()

Iteración para un ÚnicoIteración para un ÚnicoMensajeMensaje

:Simulador :Aleatorio

* [i=1..N]: Num:=SiguienteEnt() EjecutarSimulación()

Iteración Sobre una SerieIteración Sobre una Seriede Mensajesde Mensajes

:Simulador :Aleatorio :Programador:Simulador :Aleatorio

Horas:=SiguienteEnt() EjecutarSimulación()

:Programador

Trabajar(horas)

*[i:=1..N]

Comer()

Iteración sobre unIteración sobre unMultiobjetoMultiobjeto

:Venta :LíneaDeVenta:Venta

T=getTotal()

:LíneaDeVenta

*:st:=getSubTotal()

Invocación EstáticaInvocación EstáticaInvocación EstáticaInvocación Estática

Mensaje a una clase o una Invocación a un método estático

:Foo :java.util.collections

Lista:=sincronizedList(UnaLista)

Mensaje1()

No subrayada o sub ayada→ es una clase

Diagrama de Secuencia Diagrama de Secuencia --EjercicioEjercicio

DesdeDesde unauna GUIGUI sese envíaenvía solicitasolicitaunauna reservaciónreservación aa unauna cadenacadena dedehoteles,hoteles, lala cadenacadena dede hoteleshoteles aa susu,,vezvez envíaenvía lala solicitudsolicitud alal hotelhotel queque elelusuariousuario deseadesea sisi elel hotelhotel tienetieneusuariousuario desea,desea, sisi elel hotelhotel tienetienehabitaciones,habitaciones, hacehace unauna reservaciónreservación

nana confirmaciónconfirmaciónyy unauna confirmaciónconfirmación..

Diagrama de Secuencia Diagrama de Secuencia ––Tipos de mensajeTipos de mensaje

LosLos mensajesmensajes puedenpueden serser::SincrónicosSincrónicos:: sese envíaenvía elel mensajemensaje yy seseesperaespera hastahasta queque hayahaya unauna respuestarespuesta..((waitwait))AsincrónicosAsincrónicos:: permitepermite enviarenviar mensajesmensajespp jjadicionalesadicionales mientrasmientras elel originaloriginal estáestásiendosiendo procesadoprocesado.. ((nowaitnowait))pp (( ))

Diagrama de Secuencia Diagrama de Secuencia ––MensajesMensajes

Sí b lSí b l Si ifi dSi ifi dSímboloSímbolo SignificadoSignificadoMensaje simple, sincrónicoMensaje simple, sincrónicoó asincrónicoó asincrónicoMensaje simple de retornoMensaje simple de retornoj pj p(opcional)(opcional)Mensaje sincrónico (call)Mensaje sincrónico (call)Mensaje sincrónico (call)Mensaje sincrónico (call)

Diagrama de Secuecia Diagrama de Secuecia ––mensaje mensaje asíncronoasíncrono--EjercicioEjercicio

UU ff li itli it di ó tidi ó tiUnaUna enfermeraenfermera solicitasolicita unun examenexamen diagnósticodiagnóstico aaunun laboratoriolaboratorio médicomédico.. HayHay dosdos mensajesmensajesasíncronosasíncronos desdedesde lala enfermeraenfermera,, preguntarpreguntar aa,, p gp gMedicalLabMedicalLab parapara reservarreservar unauna fechafecha parapara elelexamenexamen yy preguntarpreguntar aa InsuranceCompanyInsuranceCompany paraparaqueque apruebeapruebe elel examenexamen ElEl ordenorden enen elel cualcual loslosqueque apruebeapruebe elel examenexamen.. ElEl ordenorden enen elel cualcual loslosmensajesmensajes sonson enviadosenviados oo completadoscompletados esesirrelevanteirrelevante (el(el unouno nono esperaespera hastahasta queque elel otrootroregrese)regrese)..SiSi elel examenexamen eses aprobadoaprobado porporInsuranceCompanyInsuranceCompany lala enfermeraenfermera programaráprogramará elelInsuranceCompanyInsuranceCompany,, lala enfermeraenfermera programaráprogramará elelexamenexamen enen lala fechafecha suministradasuministrada porpor MedicalLabMedicalLab..

Diagrama de Secuencia Diagrama de Secuencia ––VisibilidadVisibilidad

El objeto al que se le envía elEl objeto al que se le envía elEl objeto al que se le envía el El objeto al que se le envía el mensaje (mensaje (AA) debe ser visible por el ) debe ser visible por el objeto que envía el mensaje (objeto que envía el mensaje (BB) y) yobjeto que envía el mensaje (objeto que envía el mensaje (BB) y ) y el mensaje debe corresponder a un el mensaje debe corresponder a un método de método de AA..

Diagrama de ClaseDiagrama de ClaseDiagrama de ClaseDiagrama de ClaseCursoCurso

--nombre:intnombre:int

++BuscarEstudiante:StringBuscarEstudiante:StringDescuentoDescuento

--nombre: Stringnombre: String1 0 *++TieneDescuento:BooleanTieneDescuento:Boolean++AgregarEstudiante:voidAgregarEstudiante:void

gg--porcentaje: intporcentaje: int

+TieneDescuento:Boolean+TieneDescuento:Boolean

1 0..

1

0..*NotaNota

--puntuación:intpuntuación:intEstudianteEstudiante

--código:intcódigo:intdi i tdi i t

0..*Corresponde ←

--promedio:intpromedio:int

+Estudiante+Estudiante+DeEstudiante:Estudiante+DeEstudiante:Estudiante+DeDatos:String+DeDatos:String+DePromedio:int+DePromedio:int+Agregar:void+Agregar:void

Diagrama de Secuencia Diagrama de Secuencia ––VisibilidadVisibilidad

AA creacrea aa BB.. EnEn elel ejemploejemplo objCursoobjCurso creacrea elel objEstobjEst,,yaya queque lolo conoceconoce yy lolo agregaagrega aa lala coleccióncolección dedeyaya queque lolo conoceconoce yy lolo agregaagrega aa lala coleccióncolección dedeestudiantesestudiantes

A:ObjCurso

Curso:ObjEst1:AgregarEstudiante(CodEst Promest)

:CollEstudiantes

EstudianteGUI

Bj

Estudiante

1:AgregarEstudiante(CodEst,Promest) Estudiante1.1 :constructor

1.2 :AgregarObjEst):void

Diagrama de Secuencia Diagrama de Secuencia ––VisibilidadVisibilidad

ExisteExiste unauna relaciónrelación dede asociaciónasociaciónentreentre lala claseclase AA yy lala claseclase BB,, AA puedepuedeinvocarinvocar métodosmétodos dede BB.. EnEn elel ejemploejemploj pj psese puedepuede apreciarapreciar queque loslos objetosobjetos sólosóloenvíanenvían mensajesmensajes aa loslos objetosobjetos quequeenvíanenvían mensajesmensajes aa loslos objetosobjetos quequeconocenconocen dede acuerdoacuerdo alal diagramadiagrama dedeclasesclasesclasesclases

Diagrama de Secuencia Diagrama de Secuencia –– RelaciónRelacióncon el Diagrama de Clasescon el Diagrama de Clases

Un diagrama de secuencia sirve para Un diagrama de secuencia sirve para g pg pReconocer qué objetos pueden Reconocer qué objetos pueden interactuar en el diagrama de secuenciainteractuar en el diagrama de secuenciainteractuar en el diagrama de secuenciainteractuar en el diagrama de secuenciaReconocer los métodos posiblesReconocer los métodos posiblesC l t l di d lC l t l di d lCompletar el diagrama de clasesCompletar el diagrama de clasesReconocer más métodos de una claseReconocer más métodos de una claseCrear asociaciones entre clasesCrear asociaciones entre clases

Diagramas de SecuenciaDiagramas de SecuenciaDiagramas de SecuenciaDiagramas de Secuencia

Se pueden representar condicionales Se pueden representar condicionales y buclesy buclesyyExisten operadores de controlExisten operadores de control

Obj1: Clase1 Obj2: Clase2

Mensaje1()con [cond]

Mensaje2()

Diagramas de secuenciaDiagramas de secuenciaDiagramas de secuenciaDiagramas de secuencia

O d d t lO d d t lOperadores de controlOperadores de controlEjecución opcional: Ejecución opcional:

O tO tOptOptElEl cuerpocuerpo deldel operadoroperador dede controlcontrol sese ejecutaejecuta sisi unaunacondicióncondición dede guardaguarda eses ciertacierta cuandocuando sese entraentra enen elel

ddoperadoroperadorEjecuciónEjecución condicionalcondicional

altaltaltaltElEl cuerpocuerpo deldel operadoroperador sese dividedivide enen variasvariassubregionessubregiones concon líneaslíneas discontínuasdiscontínuas horizontaleshorizontalesCadaCada s bregións bregión sese consideraconsidera comocomo nana ramarama dede lalaCadaCada subregiónsubregión sese consideraconsidera comocomo unauna ramarama dede lalacondicióncondiciónCadaCada subregiónsubregión tienetiene unauna condicióncondición dede guardaguardaSóloSólo sese ejecutaejecuta unauna subregiónsubregiónExisteExiste tambiéntambién lala etiquetaetiqueta [else][else]

Diagramas de SecuenciaDiagramas de SecuenciaDiagramas de SecuenciaDiagramas de Secuencia

Operadores de controlOperadores de controlEjecuciónEjecución paralelaparalela::jj pp

parparElEl cuerpocuerpo deldel operadoroperador sese dividedivide enen variasvariasElEl cuerpocuerpo deldel operadoroperador sese dividedivide enen variasvariassubregionessubregiones concon líneaslíneas discontinuasdiscontinuashorizontaleshorizontalesCadaCada subregiónsubregión representarepresenta unauna ejecuciónejecuciónenen paraleloparalelo dede maneramanera concurrenteconcurrenteLaLa concurrenciaconcurrencia nono implicaimplica ejecuciónejecuciónfísicamentefísicamente simultáneasimultánea.. SignificaSignifica queque laslasaccionesacciones nono estánestán coordinadascoordinadas p edenp edenaccionesacciones nono estánestán coordinadascoordinadas yy puedenpuedenejecutarseejecutarse enen cualquiercualquier ordenorden

Diagramas de SecuenciaDiagramas de SecuenciaDiagramas de SecuenciaDiagramas de Secuencia

Operadores de controlOperadores de controlEjecución en bucle (iterativa):Ejecución en bucle (iterativa):j ( )j ( )

looplooploop (min,max)loop (min,max)loop (min,max) loop (min,max) Una condición de guarda aparece sobre Una condición de guarda aparece sobre una línea de vida dentro del cuerpouna línea de vida dentro del cuerpoppSe ejecuta el cuerpo del bucle mientras la Se ejecuta el cuerpo del bucle mientras la guarda sea verdaderaguarda sea verdadera

Diagramas de SecuenciaDiagramas de SecuenciaDiagramas de SecuenciaDiagramas de Secuencia

Tomado de “El l j ifi d dlenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagrama de SecuenciaDiagrama de SecuenciaDiagrama de SecuenciaDiagrama de Secuencia

Tomado de “El l j ifi d dlenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

DiagramaDiagrama dede SecuenciaSecuencia –– CasoCaso dedeusouso:: HacerHacer pedidopedido clientecliente enenusouso:: HacerHacer pedidopedido clientecliente enenRestauranteRestaurante

DiagramaDiagrama dede SecuenciaSecuencia –– CasoCaso dedeusouso:: HacerHacer pedidopedido clientecliente enenusouso:: HacerHacer pedidopedido clientecliente enenRestauranteRestaurante

Diagrama de colaboración/ Diagrama de colaboración/ comunicacióncomunicación

DiDi dd i t iói t ió d td tDiagramaDiagrama dede interaccióninteracción queque destacadestacalala organizaciónorganización estructuralestructural dede loslosobjetosobjetos queque envíanenvían yy recibenrecibenmensajesmensajes..NoNo sese muestranmuestran laslas líneaslíneas dede vidavidaSeSe puedenpueden representarrepresentar loslos mensajesmensajesSeSe puedenpueden representarrepresentar loslos mensajesmensajescreatecreate yy destroydestroyE istenE isten númerosnúmeros dede sec enciasec encia seseExistenExisten númerosnúmeros dede secuenciasecuencia yy sesepuedepuede indicarindicar elel anidamientoanidamiento

Diagramas de ColaboraciónDiagramas de ColaboraciónDiagramas de ColaboraciónDiagramas de Colaboración

ExplicanExplican gráficamentegráficamente laslasinteraccionesinteracciones entreentre laslas instanciasinstancias(objetos)(objetos)TransmitenTransmiten lala mismamisma informacióninformación quequeTransmitenTransmiten lala mismamisma informacióninformación quequeunun diagramadiagrama dede secuenciasecuencia peropero sesefffocalizanfocalizan enen rolesroles dede objetosobjetos enen lugarlugardede loslos tiempostiempos enen queque loslos mensajesmensajespp qq jjsonson enviadosenviados

Diagrama de ColaboraciónDiagrama de ColaboraciónDiagrama de ColaboraciónDiagrama de Colaboración

Tomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagramas de colaboraciónDiagramas de colaboraciónDiagramas de colaboraciónDiagramas de colaboración

Se caracterizan por:Se caracterizan por:El caminoEl caminoNúmero de secuenciaNúmero de secuencia

S d t l it ióS d t l it ióSe puede representar la iteración y Se puede representar la iteración y los cicloslos ciclos

Iteración: * [i: 1..n] // La clave es el *Iteración: * [i: 1..n] // La clave es el *Condición: [cond]Condición: [cond]Condición: [cond] Condición: [cond]

Diagrama de ColaboraciónDiagrama de ColaboraciónDiagrama de ColaboraciónDiagrama de Colaboración

T d d “El l j ifi d dTomado de “El lenguaje unificado de modelado”. Booch, Jacobson, Rumbaugh

Diagramas de ColaboraciónDiagramas de Colaboración-- EjemploEjemplo

Window:GUI

Achain:Cadenadehoteles

1.1:HacerReservación():Void

Achain:Cadenadehoteles

1.1.1:HacerReservación():Void

Ahotel:Hotel AReservation:Reservación ANotice:Confirmación1.1.1.2:[HayHabitación] 1.1.1.2.1

1.1.1.1:*[Por cada dia]HayHabitaciónDisponible():Boolean

ElementosElementosElementosElementos

ObjetosObjetos:: sese representanrepresentan comocomo ununrectángulorectángulo concon lala notaciónnotaciónrectángulorectángulo concon lala notaciónnotaciónobjetoobjeto::ClaseClase subrayadossubrayados..LL ll tt dd bj tbj tLosLos enlacesenlaces conectanconectan dosdos objetos,objetos,representanrepresentan instanciasinstancias dede unaunaasociaciónasociación entreentre loslos objetosobjetos..CadaCada enlaceenlace tienetiene unun mensajemensaje..jjElEl mensajemensaje tienetiene unun direccióndirecciónindicandoindicando visibilidadvisibilidad (navegabilidad)(navegabilidad)indicandoindicando visibilidadvisibilidad (navegabilidad)(navegabilidad)..

ElementosElementosElementosElementos

ElEl mensajemensaje tienetiene unun númeronúmero dedeElEl mensajemensaje tienetiene unun númeronúmero dedesecuencia,secuencia, elel mensajemensaje dede nivelnivel másmásaltoalto eses etiquetadoetiquetado comocomo 11altoalto eses etiquetadoetiquetado comocomo 11LosLos mensajesmensajes enviadosenviados durantedurante lalamismamisma llamadallamada (mismo(mismo nivel)nivel) tienentienenelel mismomismo prefijoprefijo decimal,decimal, peropero sufijossufijoselel mismomismo prefijoprefijo decimal,decimal, peropero sufijossufijos11,,22,, etcetc....,, dede acuerdoacuerdo aa cuandocuando ellosellosocurrenocurrenocurrenocurrenSeSe puedenpueden mostrarmostrar iteraciones,iteraciones,condicionescondiciones yy autoauto llamadosllamados

ElementosElementosElementosElementos

Al i l l di d iAl i l l di d iAl igual que en el diagrama de secuencia Al igual que en el diagrama de secuencia cada mensaje tiene asociado:cada mensaje tiene asociado:

OperaciónOperaciónEtiquetaEtiquetaNúmero de secuenciaNúmero de secuenciaSi el mensaje es de creación ó destrucción Si el mensaje es de creación ó destrucción ArgumentosArgumentosValor de retornoValor de retornoExpresiones de condición e iteraciónExpresiones de condición e iteración

EjercicioEjercicioEjercicioEjercicio

En el siguiente ejemplo identificar:En el siguiente ejemplo identificar:Dirección de los mensajesDirección de los mensajesjjPrimer mensajePrimer mensajePrimer mensaje internoPrimer mensaje internoPrimer mensaje internoPrimer mensaje internoParámetrosParámetrosCreaciónCreaciónInstanciasInstancias

EjemploEjemploEjemploEjemplo

RealizarPago(dineroEntregado) 1.RealizarPago(dineroEntregado):Registro :Venta

g ( g )

1.1.Create(dineroEntregado)

:Pago

EnlacesEnlacesEnlacesEnlaces

AA lolo largolargo deldel mismomismo enlaceenlace puedenpueden fluirfluirmúltiplesmúltiples mensajesmensajes yy mensajesmensajes enen ambasambasmúltiplesmúltiples mensajesmensajes yy mensajesmensajes enen ambasambasdireccionesdirecciones

:Registro :Venta

1.RealizarPago(dineroEntregado)2.Foo()

2 1 Bar()2.1.Bar()

MensajesMensajesMensajesMensajes

Todos los mensajes fluyen en el mismo Todos los mensajes fluyen en el mismo enlaceenlaceenlaceenlace

Msj1()

1:Msj2()2:Msj3()

:Registro :Venta

2:Msj3()

3.1:Msj5()3:Msj4()

Mensajes a “self” o “this”Mensajes a “self” o “this”Mensajes a self o thisMensajes a self o this

Msj1()j ()

:Registro

1:Limpiar()Mensaje a “This”

Creación de InstanciasCreación de InstanciasCreación de InstanciasCreación de Instancias

Secuencia de NumeraciónSecuencia de NumeraciónSecuencia de NumeraciónSecuencia de Numeración

Secuencia de NumeraciónSecuencia de Numeración(cont.)(cont.)

Mensajes CondicionalesMensajes CondicionalesMensajes CondicionalesMensajes Condicionales

Mensajes MutuamenteMensajes MutuamenteExclusivosExclusivos

Iteración o BucleIteración o BucleIteración o BucleIteración o Bucle

Iteración Sobre MultiobjetoIteración Sobre MultiobjetoIteración Sobre MultiobjetoIteración Sobre Multiobjeto

Mensajes a MétodosMensajes a MétodosEstáticosEstáticos

Colaboración vs SecuenciaColaboración vs SecuenciaColaboración vs SecuenciaColaboración vs Secuencia

TipoTipo ProsPros ContrasContras

SecuenciaSecuencia Muestra claramente laMuestra claramente la Consume muchoConsume muchoSecuenciaSecuencia Muestra claramente la Muestra claramente la secuencia ordenada de secuencia ordenada de mensajes en el tiempomensajes en el tiempo

Notación simpleNotación simple

Consume mucho Consume mucho espacio horizontalespacio horizontal

Notación simpleNotación simpleTiene bloques de Tiene bloques de

SentenciasSentenciasE ó i iE ó i i Difí il d lDifí il d lColaboraciónColaboración Económico en espacio, Económico en espacio,

flexible para añadir nuevos flexible para añadir nuevos objetos en dos dimensionesobjetos en dos dimensiones

Difícil de ver la Difícil de ver la secuencia de mensajessecuencia de mensajesNotación más Notación más

Mejor para ilustrar Mejor para ilustrar ramificacionesramificacionescomplejas, iteraciones ycomplejas, iteraciones y

complejacompleja

concurrenciaconcurrencia

Mensaje de CreaciónMensaje de CreaciónMensaje de CreaciónMensaje de Creación

1.AgregarEstudiante(codEst,promEst):Void →

1.2.Agregar(ObjEst):Void →

<<actor>>GUI

ObjCurso:Curso colEstudiantes:Estudiante

1.1.<constructor>(int,int)→

ObjEst:Estudiante

Mensaje de CreaciónMensaje de CreaciónMensaje de CreaciónMensaje de Creación

1.AgregarEstudiante(codEst,promEst):Void →

1.2.Agregar(ObjEst):Void →

<<actor>>GUI

ObjCurso:Curso colEstudiantes:Estudiante

1.1.<constructor>(int,int)↓↓

ObjEst:Estudiante

Multiobjeto iteraciónMultiobjeto iteraciónMultiobjeto, iteraciónMultiobjeto, iteración

colEstudiantes:Estudiante

1:máximaNotaEst(codEst):int →

↑ 1.1:.objEst=GetEstudiante(codEst):Estudiante

<<actor>>

1:máximaNotaEst(codEst):int →

ObjCurso:Curso

GUI↓1.2:datosEst=máximaNotaEst():int

1 2 1:*[para cada nota] máximaNota=GetNota():int →

ObjEst:Estudiante ObjNota:Nota

1.2.1: [para cada nota] máximaNota=GetNota():int →

top related