diagramas de interaccidiagramas de interacciónónlcdiaz/adoo2007-3/diagramasinter... · diagramas...
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 →