SlideShare ist ein Scribd-Unternehmen logo
1 von 96
Diagramas de Secuencia


          Lic. César Alcántara Loayza
Diagramas De Secuencia
                     El objetivo del análisis del problema es definir
                      el propósito e interfaces de cada recurso del
                      dominio del problema.
                     Se determinó el propósito al definir cada
                      clase y sus relaciones en un diagrama de
                      clases.
                     Ahora veremos las interfaces. Las principales
                      herramienta para descubrir y comprender las
                      interfaces son los diagramas de interacción .
CAL/Fundamentos                                          2
Diagramas De Secuencia
                     Los diagramas de secuencia y
                      colaboración son usados para modelar
                      interacciones entre los objetos . Los
                      diagramas de secuencia ilustran la
                      interacción entre objetos en el tiempo.
                      Los diagramas de colaboración ilustran
                      las interacciones de los objetos a través
                      de enlaces entre objetos.
CAL/Fundamentos                                    3
Diagramas de Secuencia
           Las interacciones ayudan a definir el propósito
            de un objeto, esto decir, las formas en las que
            un objeto participa en tareas, como se comunica
            y trabaja con otros objetos, el por que se
            necesita del objeto.
           Las interfases son preguntas y solicitudes que
            un objeto es capaz de responder. Si la
            declaración del problema dice que un objeto
            debe ser capaz de responder una pregunta o
            responder a una solicitud, entonces el objeto
            debe tener una interface correspondiente.
CAL/Fundamentos                                4
Diagramas De Secuencia
                 Operaciones y atributos:
                     Una interface aparece como una operación
                      en una definición de clase. Las
                      operaciones describen lo que el objeto
                      puede hacer y lo que puede hacerle al
                      objeto. Las operaciones pueden recibir,
                      manipular y regresar información. Esta
                      información aparece en las definiciones de
                      clase como atributos.
CAL/Fundamentos                                      5
Diagramas De Secuencia
                 Los diagramas de secuencia muestran
                  objetos que se comunican unos con
                  otros a lo largo del tiempo. Utilizando,
                  objetos, linea de vida de los objetos y
                  flechas de mensaje.




CAL/Fundamentos                                  6
Diagramas De Secuencia
                 En siguiente diagrama de secuencia:
                     Los objetos usan la notación estandar, un
                      rectangulo que contiene el nombre del objeto, dos
                      puntos y el nombre de la clase del objeto. Estos
                      tres elementos subrayados. El nombre del objeto
                      es opcional. Nombreobjeto:nombreclase.
                     La linea de vida del objeto es una línea
                      discontínua vertical.
                     Los mensajes aparecen como flechas.


CAL/Fundamentos                                            7
Diagramas De Secuencia
                   Factura : Cliente   Orden de Factura : Orden               : Inventario



                                   orden( )

                                retornar orden

                                AddArticulo( )
                                                    ProductoDisponible(Producto)

                                                          retorno verdadero



                                              AddProducto(producto)

                                  retorno ok




CAL/Fundamentos                                                                              8
Diagramas De Secuencia
                 Mensaje.
                     Un mensaje se presenta como una flecha
                      horizontal desde la línea de vida del objeto que
                      envía hasta la línea de vida del objeto que recibe.
                     La terminología puede varias entre las versiones
                      de UML ..
                     Una posición en la línea de vida indica un punto
                      relativo en el tiempo. El tope de la línea
                      representa el comienzo de la línea de vida. La
                      parte baja corresponde al final de la linea de vida.

CAL/Fundamentos                                              9
Diagramas De Secuencia
                     El contexto del diagrama de secuencia
                      es la comunicación entre objetos. El
                      alcance del diagrama de secuencia
                      está determinado por la fase actual del
                      ciclo de vida del proyecto. Durante el
                      análisis del problema, el alcance es la
                      comunicación entre los actores, el
                      sistema y los recursos del sistema .
CAL/Fundamentos                                    10
Diagramas De Secuencia
           Al construir un diagrama de secuencia es útil
            partir el proceso en dos partes:
                 Paso 1: describir las interacciones entre el actor y el
                  sistema. Esto permite mantener el diagrama tan
                  simple como sea posible. Mientras se trabaja en
                  comprender como debe trabajar el caso de uso.
                 Paso 2: expandir el sistema para incluir los recursos
                  usados por el sistema. Una vez que se sabe como
                  debe trabajar el caso de uso, se remapea el
                  comportamiento del sistema para mostrar los objetos
                  recursos usados por el sistema para completar el
                  comportamiento.
CAL/Fundamentos                                            11
Diagramas De Secuencia
                                                         : Sistema Bancario
                      : Cliente


      Primer paso:                       retira $100

                              fondos insuficientes ¿otro monto?




                                         retira $45

                             denominación inválida ¿otro monto?




                                         retira $40

                                        $40 + recibo




CAL/Fundamentos                                                               12
Diagramas De Secuencia
                                                                     : Sistema Bancario                          : Cuenta
                          : Cliente

                                                  retira $100
                                                                                              retira $100

                                                                                          fondos insuficientes
                                       fondos insuficientes ¿otro monto?



           Segundo paso                           retira $45

                                                                               denominación válida?

                                      denominación inválida ¿otro monto?




                                                  retira $40
                                                                                               retira $40

                                                                                                  OK

                                                 $40 + recibo




CAL/Fundamentos                                                                                        13
Diagramas de Secuencia
                     Muchos casos de uso incluyen decisiones.
                      Cursos de acción que resultan de multiples
                      decisiones pueden ser muy complejas. Los
                      diagramas de secuencia UML permiten
                      bifurcaciones pero son dificiles de leer, por
                      ello se recomienda que el diagrama de
                      secuencia se limite a un solo escenario. Un
                      escenario es una ruta lógica (ejecución
                      particular) del caso de uso.

CAL/Fundamentos                                         14
Modelando Escenarios
                     Transformar una especificación textual en un
                      diagrama de secuencia:
                         Un escenario describe una serie ordenada de
                          eventos dentro de un caso de uso. El objetivo del
                          diagrama de secuencia es asignar
                          responsabilidades de los eventos a los objetos, de
                          forma que definan las interfaces del objeto. Para
                          construir un diagrama de secuencia se debe
                          emparejar cada evento del escenario con los
                          objetos que participan en el evento como
                          remitente y receptor.

CAL/Fundamentos                                              15
Modelando Escenarios
                     Para dibujar un diagrama de secuencia,
                      evalue cada evento del escenario e
                      identifique el objeto que inicia el evento .
                      Luego identifique el objeto que está
                      mejor preparado para responder.
                      Dibuje una flecha de evento desde el
                      objeto iniciador al objeto que responde.
                      Rotule la flecha de evento con la
                      descripción del evento
CAL/Fundamentos                                       16
Modelando Escenarios
                     A medida que coloca eventos en el
                      diagrama de secuencia cuide la
                      posición sobre la linea de vida del
                      objeto desde arriba hacia abajo en el
                      orden en el que ocurren. Ajuste el
                      orden de ser necesario.



CAL/Fundamentos                                    17
Realización
                 La realización de los CUS se pueden
                  hacer con diagramas de colaboración
                  (modelo de análisis y luego aplicación
                  del análisis de robustez) ó se pueden
                  emplear diagramas de secuencia ó se
                  puede hacer textualmente.


CAL/Fundamentos                                 18
Obtener las 20 siguientes
                                               presentaciones por fecha                    Evento 1

                     A                                                                                                             C


                                        Muestre las                      Obtener los eventos para las 20                     Evento 3
                  Evento 2            presentaciones                      presentaciones seleccionadas



                                                                                   Mostrar los                    Evento 4
                                                                                    eventos



                   Evento 5                                                                        B
                                                                                                                                        Evento 5
                                                                                                 [ selecciona evento ]
                                                                 selecciona presentación
                              [ Ingresa rango fechas ]
                     Validar fechas                    [ timeout ]

Tomarlo               ingresadas                                                     Obtener detalle de               obtener presentaciones para
                                                                     [ cancela ]      presentaciones
                                          Mostrar mensaje                                                                 evento seleccionado

solo como                                     timeout


ejemplo visual        fechas válidas
                                                                                                 mostrar detalle de

de escenarios        Muestra presentaciones para el       [ fechas inválidas ]
                                                                                                  presentaciones                  A

                            rango de fechas

                  Evento 6
                                                         mostrar mensaje
                                                             de error                                    B

                                      C


                                                                     B
CAL/Fundamentos                                                                                                  19
Modelando Escenarios
                 Utilice un escenario como fuente de los
                  eventos. De la especificación (representada
                  por el diagrama de actividad) se ha
                  seleccionado un escenario (marcado con
                  color celeste)  una ruta lógica.
                 En el diagrama de actividad se ha utilizado
                  las notas como conectores (color gris).



CAL/Fundamentos                                    20
Modelando Escenarios
                     Para el primer evento (Obtener las 20
                      siguientes presentaciones por fecha),
                      escoja la clase del diagrama de clases
                      que describa el objeto que inicia el
                      evento. El objeto que da inicio puede
                      ser una clase que representa un actor,
                      el sistema mismo, o uno de los
                      recursos del dominio del problema . En
                      este caso el objeto iniciador es el
                      cliente.
CAL/Fundamentos                                   21
Modelando Escenarios
                     Las clases que participan

                                                        Evento
                                  SistemaDeBoletaje


                        Cliente
                                                       0..*
                                                      Presentación




CAL/Fundamentos                                           22
Modelando Escenarios


                                                             : SistemaDeBoletaje
                   : Cliente


                        Obtener 20 siguientes presentaciones por fecha




CAL/Fundamentos                                                                    23
Modelando Escenarios
                     Para cada evento se encoge una clase que
                      describa el objeto que recibe y responde al
                      evento.


                                                                    : SistemaDeBoletaje
                          : Cliente


                               Obtener 20 siguientes presentaciones por fecha

                                          Mostrar presentaciones




CAL/Fundamentos                                                                           24
Modelando Escenarios
                     Se repite el procedimiento para cada evento
                      hasta que todos los eventos se apliquen al
                      diagrama de secuencia

                                                                  : SistemaDeBoletaje   : Presentación
                       : Cliente


                             Obtener 20 siguientes presentaciones por fecha

                                        Mostrar presentaciones


                             Mostrar presentaciones




CAL/Fundamentos                                                                         25
Modelando Escenarios

                                                             : SistemaDeBoletaje                    : Presentación
                  : Cliente


                        Obtener 20 siguientes presentaciones por fecha

                                   Mostrar presentaciones


                        Mostrar presentaciones
                                                              obtener eventos para 20 presentaciones seleccionadas


                                                                                   listar eventos

                                       Mostrar eventos




CAL/Fundamentos                                                                                     26
Modelando Escenarios
                                                             : SistemaDeBoletaje                    : Presentación            : Evento
                  : Cliente


                        Obtener 20 siguientes presentaciones por fecha

                                   Mostrar presentaciones


                        Mostrar presentaciones
                                                              obtener eventos para 20 presentaciones seleccionadas


                                                                                   listar eventos

                                          Mostrar eventos

                                                                                                                Actividad 5
                                      selecionar evento

                                                                         Obtener presentaciones para evento seleccionado
                              evento
                              activador
                                                                                        Listar presentaciones


                                    Listar presentaciones
                                                                                                                Valor
                                                                                                                retornado


CAL/Fundamentos                                                                                                  27
Modelando Escenarios
                                                              : SistemaDeBoletaje                    : Presentación            : Evento
                   : Cliente


                         Obtener 20 siguientes presentaciones por fecha

                                    Mostrar presentaciones


                         Mostrar presentaciones
                                                               obtener eventos para 20 presentaciones seleccionadas


                                                                                    listar eventos

                                           Mostrar eventos

                                                                                                                 Actividad 5
                                       selecionar evento

                                                                          Obtener presentaciones para evento seleccionado
                               evento
                               activador
                                                                                         Listar presentaciones

                                     Listar presentaciones
                                                                                                                 Valor
                                                                                                                 retornado
                           Mostrar eventos




CAL/Fundamentos                                                                                                    28
Modelando Escenarios
                 Transformar eventos en objetos:
                     Asignar eventos a objetos:
                          Una vez que se han distribuido los eventos de
                           un escenario en un diagrama de secuencia,
                           vuelva al diagrama y verifique que el propósito
                           de los objetos corresponde con los eventos en
                           los que ellos participan.




CAL/Fundamentos                                               29
Modelando Escenarios
                     Aplique una medida de cohesión preguntando:
                          ¿Todos los eventos iniciados por el objeto soportan el

                           propósito (único) del objeto?
                          ¿Los eventos a los que el objeto responde encajan con

                           el propósito (único) del objeto?, o ¿al objeto se le piden
                           algo que no lo relaciona directamente con su propósito
                           principal?
                     Aplique una medida de acoplamiento de los objetos. Las
                      interacciones implícitamente identifican dependencias. Las
                      preguntas son:
                          ¿Las dependencia refuerzan la adecuada división de

                           trabajo a través del objeto, o simplemente complica la
                           comunicación?
                          ¿Las dependencias reflejan el funcionamiento del mundo

                           real?

CAL/Fundamentos                                                  30
Modelando Escenarios
                     Evalúe el propósito del objeto:
                         Cuando se asigna una nueva tarea a un
                          objeto, se está en efecto agregando nueva
                          responsabilidad a la “descripción del
                          trabajo” de objeto. Las nuevas
                          responsabilidades afectan al objeto de la
                          misma manera que lo haría adicionar
                          mayores responsabilidades a su trabajo.


CAL/Fundamentos                                        31
Interfaces
                     Convertir eventos en operaciones:
                         Completar la descripción del evento
                          adicionando información que es pasado
                          con el evento y la respuesta esperada.
                          Ambos elementos son opcionales, es
                          decir, no todos los eventos necesitan
                          parámetros y no todos los eventos tienen
                          respuestas.
                              Ejem., Notificar en algunos casos solo como
                               alarma, en otros puede esperar respuesta.
CAL/Fundamentos                                                 32
Interfaces
                     Convertir descripciones de eventos en
                      operaciones:
                         El objetivo de crear un diagrama de secuencia es
                          descubrir y documentar las interfaces de cada
                          clase. Para definir completamente cada interface,
                          debe convertir la descripción del evento en una
                          signatura de operación formal. La definición formal
                          de una signatura de operación consiste de un
                          nombre, parámetros de entrada (o argumentos), el
                          tipo de dato de retorno esperado y restricciones.


CAL/Fundamentos                                               33
Interfaces
                     +NombreOperación (NombreArg: Tipo Dato
                      {Restricciones}, ... ) : Tipo Dato Retornado
                      {Restricciones}
                         NombreOperación: requerido
                         Se permite cualquier número de argumentos
                         Tipo de datos retornado: requerido para un valor
                          regresado, pero los valores de retorno son
                          opcionales.
                         Visibilidad (+): Requerida antes de la generación
                          del código.

CAL/Fundamentos                                               34
Interfaces
                 Los argumentos o parámetros son elementos
                  de datos que el objeto necesita para ejecutar
                  la operación.
                 El tipo de datos retornado describe la clase
                  de información que debe darse como
                  resultado de completar la operación.
                 Las restricciones son simplemente texto en
                  formato libre que describen las reglas y
                  limitaciones en la ejecución de la operación.
CAL/Fundamentos                                     35
Interfaces
          Descripción de Evento                   Elementos de la descripción de la Operación
          Obtener las presentaciones   Nombre Operación           Argumentos               Retorno
          Para un rango de fechas      ObtPresentación     FechaInicio, FechaFinal Lista presentaciones
                                       Signatura completa: ObtPresentación (FechaInicio, FechaFinal):
                                                           ListaPresentaciones
          Mostrar                      Mostrar             ListaPresentaciones
          Presentaciones               Signatura completa: Mostrar (ListaPresentaciones) ó
                                                           MostrarPresentación (ListaPresentaciones)
          Obtener Evento               ObtenerEvento                                 Evento
          Para una Presentación        Signatura completa: ObtenerEvento():Evento

          Mostrar                      Mostrar               Lista Eventos
          Evento                       Signatura completa:   Mostar (Lista Eventos)
                                                             ó MostarEvento (Lista Eventos)




CAL/Fundamentos                                                                       36
Descubriendo Atributos
                 Cada pieza de información usada por el
                  sistema debe se definida como atributo.
                  Cada atributo debe pertenecer a un
                  objeto. Aún si un atributo es derivado y
                  nunca se almacena, algún objeto debe
                  poseer las reglas para derivarlo.


CAL/Fundamentos                                 37
Descubriendo Atributos
                 - / NombreAtributo: Tipo Dato = Valor
                  por omisión {Restricciones}

                     - Visibilidad: requerida antes de generar
                      código.
                     / Indicador de atributo derivado: opcional



CAL/Fundamentos                                        38
Descubriendo Atributos
                 Cada argumento de una operación
                  debe tener una fuente, ¿el objeto que
                  inicia el evento posee la data?, Si no es
                  así, ¿de donde lo obtiene?. Mire el
                  diagrama de clases y encuentre la
                  clase que debería tener la data.
                  Actualize el diagrama de secuencia
                  para mostrar como el objeto iniciador
                  ha obtenido la data desde el objeto que
                  la posee.
CAL/Fundamentos                                  39
Descubriendo Atributos
                      Ejemplo expandir un diagrama de
                       secuencia con parámetros
                                                       Asiento
                  Cliente
                                                                                              Boleto
                                                            1
                          1
                                                        Ubica                              0..1
                                                                            utiliza
                      realiza

                          0..*                              0..*        1
                                    reserva                                           Pone Precio
                  Compra                          AsientoPresentación                                      NivelPrecio
                                 0..*         1                                0..*                 0..1




CAL/Fundamentos                                                                                   40
Descubriendo Atributos
                 Diagrama de secuencia inicial para el caso
                  de uso comprar asientos:
                        : Cliente                      : Compra            : AsientoPresentación            : Boleto

                           Paga(lista asientos presentacion)

                                                                  ObtenerPrecio

                                                                      Precio


                                                               Descuento

                                                                    UsarBoleto
                                                                                               Boleto

                                                                                          Regresar boleto

                                                                  Regresar boleto


                               Regresar conjunto boletos




CAL/Fundamentos                                                                                             41
Descubriendo Atributos
                     Retornos de la operación:
                         La misma lógica se aplica a los retornos de
                          operaciones. ¿El objeto que responde posee la
                          data?, Si no es así, ¿de donde la obtiene?, ¿El
                          objeto deriva la data usando sus propias
                          operaciones?, ¿El objeto ha hallado el valor
                          usando otros objetos?. Actualice el diagrama de
                          secuencia para adicionar los objetos que poseen
                          la data y muestre como obtiene la data el objeto
                          original.

CAL/Fundamentos                                              42
Descubriendo Atributos
                     En el ejemplo .. cuando un cliente
                      quiere comprar asientos para la
                      presentación, debe proporcionar el tipo
                      de precio para cada sitio para que el
                      sistema conozca que tipo de precio
                      cargar, es decir, adulto, estudiante,
                      adulto mayor o niño:


CAL/Fundamentos                                    43
Descubriendo Atributos
                                                             Agregue un precio
                                                             Para cada sitio

                  : Cliente                      : Compra             : AsientoPresentación             : Boleto

                     Paga(lista asientos presentacion)

                                                            ObtenerPrecio          El cliente es el único objeto que
                                                                                   conoce que tipo de precio
                                                                                   aplicar para cada sitio.
                                                                Precio
                                                                                   Adicionar el tipo de precio a los
                                                                                   parámetros de la operación de
                                                         Descuento                 pago invocada por el cliente.

                                                              UsarBoleto
                                                                                          Boleto

                                                                                     Regresar boleto

                                                            Regresar boleto


                         Regresar conjunto boletos




CAL/Fundamentos                                                                                            44
Descubriendo Atributos
           Para hallar el precio por
            asientopresentación, asientopresentación
            debe pedir el precio a nivelprecio. Cuando
            se pide el precio asientopresentación
            debe proporcionar el tipo de modo que
            nivelprecio decida que precio retornar.


CAL/Fundamentos                            45
Descubriendo Atributos
                  : Cliente                       : Compra             : AsientoPresentación            : Boleto      : NivelPrecio


                      Paga(lista asientos presentacion)
                                                              ObtenerPrecio
                                                                                          ObtenerPrecio(TipoPrecio)

                                                                                                   Precio

                                                                 Precio

                                                          Descuento



                                                                                          Boleto
                                                               UsarBoleto
                                                                                      Regresar boleto

                                                             Regresar boleto

                          Regresar conjunto boletos




CAL/Fundamentos                                                                                               46
Descubriendo Atributos
          Cada vez que haga un refinamiento, itere a
           traves del proceso de modelamiento:
                 Evalúe el diagrama de clases para encontrar objetos
                  que participan en la interacción.
                 Adicione nuevos objetos.
                 Identifique nuevos eventos.
                 Reevalúe el propósito de los objetos participantes.
                 Convierta los eventos en operaciones.
                 Convierta la información en atributos.
                 Asigne propietario a los atributos.
                 Repita hasta que todos los parámetros y retornos
                  esten considerados.
CAL/Fundamentos                                           47
Revisión
                     Uno de los principales problemas en el
                      diseño de software es decidir que incluir en
                      el: cada elemento tomado en cuenta requiere
                      dinero y tiempo para desarrollar y soportar.
                      ¿Cómo puede asegurarse que está gastando
                      el tiempo y dinero de la mejor manera? 
                      Utilizar diagramas de clase, de secuencia y
                      modelo de casos de uso como referencias
                      cruzadas.

CAL/Fundamentos                                       48
Revisión
                 Comparar estas tres vistas una con otra
                  ayuda a descubrir y justificar las
                  operaciones y atributos necesarios para
                  soportar las expectativas del usuario.




CAL/Fundamentos                                 49
Revisión
                     Hemos revisado:
                         El propósito y la función de los diagramas de
                          secuencia: descubrir y definir las interfaces de
                          las clases.
                         Transformar los escenarios de casos de uso en
                          diagramas de secuencia: usar un escenario
                          para crear un diagrama de secuencia.
                          Transformar cada evento del escenario en un
                          evento en el diagrama de secuencia. Asignar
                          responsabilidad del evento a los objetos emisor
                          y receptor.
CAL/Fundamentos                                                 50
Revisión
                     El valor de las interacciones para el modelado de
                      objetos: justificar la necesidad de cada interface
                      de clase como parte de los requerimientos de los
                      casos de uso.
                     Como descubrir y documentar las operaciones
                      desde las interacciones: convertir cada evento en
                      una operación.
                     Como descubir y documentar atributos de las
                      operaciones: convertir todos los argumentos y
                      retornos de la operación en atributos. Rastree las
                      fuentes de cada atributo identificado en la
                      secuencia.
CAL/Fundamentos                                           51
Reconciliar Modelos
                     Un diagrama por si mismo es muy dificil de
                      verificar. Pero cuando se usan juntos
                      diferentes diagramas del mismo problema el
                      proceso de comparación y contraste revela
                      problemas potenciales.
                     Para identificar discrepancias:
                         Como probar escenarios.
                         Como probar clases.
                         Como probar interfaces.
                         Como reconocer los patrones de reconciliación.

CAL/Fundamentos                                             52
Reconciliar Modelos
                     Aunque el diagrama de clases es el
                      único usado para generar código los
                      otros diagramas son herramientas que
                      ayudan a comprender las clases. El
                      diagrama de clases tiene una
                      perspectiva limitada del dominio del
                      problema; No muestra como se
                      comportan los objetos cuando se usa el
                      sistema.
CAL/Fundamentos                                  53
Reconciliar Modelos
                 Para ver el comportamiento de los
                  recursos, se necesitan modelos que
                  describan como se usan los recursos,
                  viendo las interacciones entre clases, la
                  creación y disposición de recursos y los
                  patrones de colaboración de cada
                  comportamiento.

CAL/Fundamentos                                  54
Analisis Del Problema III


           Lic. César Alcántara Loayza
Reconciliar Modelos
                 Un diagrama por si mismo es muy dificil de
                  verificar. Pero cuando se usan juntos
                  diferentes diagramas del mismo problema el
                  proceso de comparación y contraste revela
                  problemas potenciales.
                 Para identificar discrepancias:
                     Como probar escenarios.
                     Como probar clases.
                     Como probas interfaces.
                     Como reconocer los patrones de reconciliación.
CAL/Fundamentos                                           56
Reconciliar Modelos
                     Aunque el diagrama de clases es el
                      único usado para generar código los
                      otros diagramas son herramientas que
                      ayudan a comprender las clases. El
                      diagrama de clases tiene una
                      perspectiva limitada del dominio del
                      problema; No muestra como se
                      comportan los objetos cuando se usa el
                      sistema.
CAL/Fundamentos                                  57
Reconciliar Modelos
                 Para ver el comportamiento de los
                  recursos, se necesitan modelos que
                  describan como se usan los recursos,
                  viendo las interacciones entre clases , la
                  creación y disposición de recursos y los
                  patrones de colaboración de cada
                  comportamiento.

CAL/Fundamentos                                   58
Prueba De Escenarios
                 Los escenarios de los casos de uso son
                  fuentes para los diagramas de interacción.
                 Los escenarios son incialmente de muy alto
                  nivel. De hecho, deberian describir solo lo
                  que es visible a un actor desde fuera del
                  sistema. Cuando se crea el diagrama de
                  secuencia, existen solo dos objetos, el actor
                  y el sistema. En una segunda iteración,
                  adiciona los recursos que el sistema usa para
                  completar los eventos asignados al mismo.
CAL/Fundamentos                                     59
Prueba De Escenarios
                 Durante el diseño este mismo proceso
                  continuará a medida que adicione
                  clases de software. Reemplazará a los
                  actores con objetos interfaces de
                  usuario y reemplazará el objeto
                  “sistems” con las clases interfaz y
                  control que componen el software .

CAL/Fundamentos                               60
Prueba De Escenarios
                     Invariablemente el diagrama de
                      secuencia tendrá mas detalle que los
                      escenarios. Los objetivos y las
                      audiencias son diferentes. Los
                      escenarios son dirigidos a los usuarios
                      fuera del sistema. Los diagramas de
                      secuencia son dirigidos para describir
                      el sistema y sus recursos internos .
CAL/Fundamentos                                    61
Prueba De Escenarios
                 Agregando detalle el diagrama de
                  secuencia:
                     Si agrega detalle al diagrama de secuencia
                      adicione dichos detalles a los escenarios y
                      viceversa. De forma que ambos diagramas
                      se encuentren coherentes durante el
                      proceso de mejoras.


CAL/Fundamentos                                       62
Prueba De Escenarios
                     Cuando se buscan objetos que poseen
                      los niveles de conocimiento requeridos
                      para resolver el problema. Ud. No está
                      limitado a enlaces directos. En el
                      ejemplo de ATM, el banco es una
                      fuente que ATM accede para obtener
                      información que necesita. No hay
                      enlace directo entre ATM y el banco.
CAL/Fundamentos                                   63
Escenarios Y Secuencias
                     Paso 1: en este primer diagrama de
                      secuencia se refleja la secuencia de
                      eventos descrita por el escenario.

                     Escenario: retiro con éxito $100.
                      1.   El cliente pide retirar $100.
                      2.   El sistema ATM responde
                           proporcionando el dinero y un recibo.
CAL/Fundamentos                                        64
Escenarios Y Secuencias


                                    : SistemaATM
                    : Cliente

                            Retira $100


                          Dinero + recibo




CAL/Fundamentos                                    65
Escenarios Y Secuencias
                     Paso 2: incorpora los flujos referenciados por
                      otros escenarios pero no mostrados
                      explicitamente en el diagrama de secuencia
                      original.

                     Desde dos escenarios de excepción se
                      conoce que el sistema actualmente pasa por
                      dos ediciones antes de avalar el retiro.

CAL/Fundamentos                                        66
Escenarios Y Secuencias

                                    : SistemaATM
                    : Cliente

                            Retira $100
                                             Denominación válida?


                                            Fondos suficientes?



                          Dinero + recibo




CAL/Fundamentos                                                     67
Escenarios Y Secuencias
                     Escenario: Retiro con éxito $100.
                      1.   El cliente pide retirar $100.
                      2.   ¿La cantidad ingresada es divisible por la
                           denominación disponible en la máquina?
                      3.   ¿Existe suficientes fondos en la cuenta
                           para cubrir la cantidad de retiro?.
                      4.   El sistema ATM entrega el dinero y recibo.


CAL/Fundamentos                                          68
Escenarios Y Secuencias
                     Paso 3: revisar mejoramientos:
                         Una vez que se ha dibujado el diagrama
                          se revisa con los miembros del equipo.
                          Ellos le preguntan si intenta incluir la
                          verificación de limite diario que tiene el
                          banco. ¿Qué hará? Preguntar a los
                          usuarios.
                         Los usuarios manifiestan que olvidaron
                          mencionar antes y que desean la
                          verificación de limite diario en el sistema.
CAL/Fundamentos                                            69
Escenarios Y Secuencias

                                   : SistemaATM
                   : Cliente

                           Retira $100
                                             Denominación válida?


                                           Dentro de los límites diarios?


                                            Fondos suficientes?



                         Dinero + recibo




CAL/Fundamentos                                                             70
Escenarios Y Secuencias
                     Escenario: retiro con éxito $100.
                      1.   El cliente pide retirar $100.
                      2.   ¿La cantidad ingresada es divisible por la
                           denominación disponible en la máquina?
                      3.   ¿El retiro está dentro de los límites de
                           retiro diario?
                      4.   ¿Existe suficientes fondos en la cuenta
                           para cubrir la cantidad de retiro?.
                      5.   El sistemaatm entrega dinero y recibo.
CAL/Fundamentos                                           71
Escenarios Y Secuencias
                 Paso 4: adicionar recursos del sistema.
                     Identificar los recursos que el sistema atm
                      (cajero) utiliza para satisfacer las
                      solicitudes de retiro. Estos recursos estan
                      definidos en el diagrama de clase donde
                      se han identificado a los recursos del
                      dominio del problema.


CAL/Fundamentos                                       72
Escenarios Y Secuencias
                   SistemaATM

                         0..*


                        1..*                  Cliente
                    RedATM                         1..*

                         0..*                  Posee

                                                   1..*
                         0..*
                     Banco                 CuentaBancaria
                                1   0..*




CAL/Fundamentos                                           73
Escenarios Y Secuencias
                 Para cada evento, determine el objeto que
                  mejor pueda manejar el evento. Recuerde que
                  para pasar el evento a un objeto debe seguir
                  las asociaciones definidas en el diagrama de
                  clases.
                 1. El sistema ATM es el único objeto que
                  conoce su propias denominaciones.
                 2. El banco es el único objeto que controla la
                  política de limites.
                 3. El banco conoce el saldo de la cuenta.
CAL/Fundamentos                                      74
Escenarios Y Secuencias

                                  : SistemaATM                              : Banco
                  : Cliente

                          Retira $100
                                          Denominación válida?
                                                                                      Note que todos los
                                          Dentro de limites de retiro diario?
                                                                                      eventos y su orden
                                                                                      se mantienen Pero
                                                         OK


                                                                                      se han reasignado
                                           Suficientes Fondos en cuenta?

                                                         OK
                                                                                      responsabilidades
                        Dinero + recibo
                                                                                      desde el sistema
                                                                                      ATM hacia el banco

CAL/Fundamentos                                                                            75
Escenarios Y Secuencias
                     Escenario: retiro con éxito $100.
                      1.   El cliente pide retirar $100.
                      2.   ¿La cantidad ingresada es divisible por la
                           denominación disponible en la máquina?
                      3.   ¿El retiro está dentro de los límites de
                           retiro diario?
                      4.   ¿Existe suficientes fondos en la cuenta
                           para cubrir la cantidad de retiro?.
                      5.   El sistemaatm entrega dinero y recibo.
CAL/Fundamentos                                           76
Escenarios Y Secuencias
                 Paso 5: evalúe el diagrama de secuencia para
                  mejorar el flujo de eventos.
                     Note que el diagrama de secuencia hace dos
                      llamadas desde el sistema atm hacia el banco. Una
                      gran red separa físicamente estos dos sistemas.
                      Podría mejorar la comunicación y rendimiento para
                      simplificar la comunicación en un único evento.
                       
                           1. Reemplce los dos eventos con un único evento “retiro.”
                       
                           2. El banco ejecuta los dos eventos originales cuando
                           recibe un nuevo evento de retiro.
                       
                           3. Asegurar de adicionar el retorno del evento de retiro para
                           reflejar la respuesta final del banco.

CAL/Fundamentos                                                       77
Escenarios Y Secuencias
                                  : SistemaATM                   : Banco
                  : Cliente

                          Retira $100
                                          Denominación válida?

                                                   Retira $100

                                                                    Dentro de limite de retiro diario?



                                                                      Fondos suficientes?


                                                       OK



                        Dinero + recibo




CAL/Fundamentos                                                                           78
Escenarios Y Secuencias
                     Escenario: retiro con éxito $100.
                      1.   El cliente pide retirar $100.
                      2.   ¿La cantidad ingresada es divisible por la
                           denominación disponible en la máquina?
                      3.   ¿El retiro está dentro de los límites de
                           retiro diario?
                      4.   ¿Existe suficientes fondos en la cuenta
                           para cubrir la cantidad de retiro?.
                      5.   El sistemaatm entrega dinero y recibo.
CAL/Fundamentos                                           79
Prueba De Interfaces
                     Reconcilie el diagrama de secuencia con el
                      modelo de objetos.
                         El formato de la signatura de una operación:
                              Nombre ( argumento : datatype, ...) : returndatatype
                               {restricciones}.
                         Cada evento debería ser traducido en una
                          operación. Una vez que la signatura de la
                          operación se ha definido, existen 4 pruebas para
                          aplicar a su diagrama de clases.


CAL/Fundamentos                                                       80
Prueba De Interfaces
                     1. Verificar que cada operación en su
                      diagrama de secuencia aparece en el
                      diagrama de clases. Muchos CASE
                      agregan automáticamente interfaces a
                      los diagramas de clase.




CAL/Fundamentos                                   81
Prueba De Interfaces
                     2. Pruebe la cohesión de la clase. Verifique
                      que cada interface soporte el propósito del
                      objeto. Luego busque todas las interfaces de
                      la clase y determine si todas las interfaces
                      soportan el mismo propósito. Si observa que
                      las operaciones trabajan en dos o mas
                      objetivos, entonces podría necesitar partir la
                      clase para mejorar la cohesión.


CAL/Fundamentos                                         82
Prueba De Interfaces
                     3 prueba de consistencia. Si se
                      referencia la misma interfaces en mas
                      de un escenario, verifique que se use
                      del mismo modo en cada escenario. Es
                      muy facil llegar a tener operaciones con
                      identico nombre que ejecutan funciones
                      distintas.


CAL/Fundamentos                                    83
Prueba De Interfaces
                     4. Responda las siguientes preguntas:
                         ¿La clase tiene todo lo necesario para cumplir su
                          propósito definido?
                         ¿Las interfaces proporcionan toda la funcionalidad
                          que normalmente podría asociarse con el alcance
                          de responsabilidad que se ha asignado a la
                          clase?, De no ser así entonces necesitará revisar
                          los casos de uso y los escenarios para averiguar
                          lo que se pudo pasar por alto. Es posible, también
                          , que la responsabilidad esté fuera del alcance del
                          proyecto.

CAL/Fundamentos                                               84
Prueba De Clases
                     Reconcilie el diagrama de clases con el
                      modelo de casos de uso.
                         Reconcilie la terminología del modelo de
                          casos de uso y los nombres de clase.




CAL/Fundamentos                                         85
Prueba De Clases
          1. ¿Existe una clase que maneje cada
           recurso mencionado en el modelo de
           casos de uso?. Cuando se crea
           inicialmente el diagrama de clases se usa
           el vocabulario del dominio del problema
           como se documenta en la declaración del
           problema y en los casos de uso. A medida
           que se continua el análisis, es frecuente
           los cambios en estos documentos.
CAL/Fundamentos                           86
Prueba De Clases
                     Verifique que los nuevos recursos sean
                      añadidos (o removidos) de su diagrama
                      de clases y que su propósito esté
                      completamente definido. Defina sus
                      interfaces y actualize su diagrama de
                      secuencias.



CAL/Fundamentos                                  87
Prueba De Clases
                     2. Usando el modelo, haga preguntas
                      que requieran navegar a través del
                      modelo para verificar que los objetos
                      pueden, de hecho soportar la
                      navegación. P.E., En el caso de uso
                      “comprar asientos”, ¿puede obtener el
                      nombre del evento que se debería
                      imprimir en el boleto?.
CAL/Fundamentos                                   88
Prueba De Clases Ejemplo
         1.       Para cada evento buscar todos las
                  presentaciones.
         2.       Para cada presentación buscar
                  mapaasientospresentación.
         3.       Para cada mapaasiento buscar
                  asientopresentación.
         4.       Por cada asientopresentación buscar boleto.
         5.       Obtener el precio pagado por cada boleto.

CAL/Fundamentos                                    89
Prueba De Clases
                        Evento

                              1


                  1
                             0..*
                                     1   1
                      Presentación           MapaAsientosPresentación

                                                            1


                                                                             3
                                     2
                                                           0..*

                                               Asiento Presentación

                                                            1

      Navegación                                      utiliza
                                                                             4
                                                            0..1

                                                      Boleto


                                     5
CAL/Fundamentos                                                         90
Prueba De Clases
                     Durante la prueba de navegación del
                      caso de uso, notará algunas veces que
                      la ruta para responder en muy larga. No
                      se preocupe, durante el diseño, se
                      optimizará el modelo usando atajos
                      llamados asociaciones derivadas.



CAL/Fundamentos                                   91
Reconociendo Patrones
                     Resumen: tres formas de comparación
                      entre diagramas:
                         Concordar los diferentes diagramas puede
                          ser la forma mas efectiva de mejorar sus
                          modelos. La revisión iterativa, el
                          refinamiento y el mejoramiento mantienen
                          el proceso y remueven cualquier elemento
                          de pérdida de información.

CAL/Fundamentos                                       92
Reconociendo Patrones
                     Patrones de reconciliación:
                         Casos de uso y escenarios.
                         Casos de uso y diagramas de clases.
                         Diagrama de clases y diagramas de interacción
                          (secuencia).
                         Escenarios y diagramas de interacción.
                         Diccionario de datos y casos de uso.
                         Diccionario de datos y diagrama de clases.
                         Diagrama de objetos y diagrama de clases.

CAL/Fundamentos                                             93
Reconociendo Patrones
                     Recordar que nada es inmutable, todo
                      debiera ser cuestionado y probado .
                      Utilice los diagramas como
                      herramientas (mas que como fines) y
                      aliente la participación retando al
                      equipo a ver el problema.



CAL/Fundamentos                                  94
Reconociendo Patrones
                 El modelado de objetos involucra el uso
                  de diferentes diagramas para
                  representar aspectos diferentes del
                  dominio del problema. La comparación
                  y contraste de estas diferentes vistas
                  ayudan a revelar discrepancias y son
                  oportunidades para mejorar y refinar.

CAL/Fundamentos                                95
Reconociendo Patrones
                     Se hace mejor el análisis creando
                      rápidamente dibujos iniciales (borradores) de
                      todos los diagramas. No se preocupe de que
                      su análisis sea 100% correcto ni completo .
                      Utilice los diagramas como una referencia
                      para conversar; Actualice a medida que se
                      identifican cambios. Capture el conocimiento
                      inmediatamente para hacerlos disponible a
                      todos en el proyecto.

CAL/Fundamentos                                        96

Weitere ähnliche Inhalte

Was ist angesagt?

Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejerciciosWalter Chacon
 
Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental umlrigo berto
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSmyle22
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Diagrama desecuenciabiblioteca 1
Diagrama desecuenciabiblioteca 1Diagrama desecuenciabiblioteca 1
Diagrama desecuenciabiblioteca 11052403005n
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMiguel Rodríguez
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacionoswchavez
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datosJorge Garcia
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML1da4
 
Diapositivas base de datos
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datoscatherine4ad
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseGuillermo Díaz
 

Was ist angesagt? (20)

Casos de Uso ejercicios
Casos de Uso ejerciciosCasos de Uso ejercicios
Casos de Uso ejercicios
 
Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental uml
 
Diagramas de clases
Diagramas de clasesDiagramas de clases
Diagramas de clases
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Diagrama de casos de usos
Diagrama de casos de usosDiagrama de casos de usos
Diagrama de casos de usos
 
Casos De Uso
Casos De UsoCasos De Uso
Casos De Uso
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Diagrama desecuenciabiblioteca 1
Diagrama desecuenciabiblioteca 1Diagrama desecuenciabiblioteca 1
Diagrama desecuenciabiblioteca 1
 
Metodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y EmergentesMetodologías de Desarrollo de Software Tradicionales y Emergentes
Metodologías de Desarrollo de Software Tradicionales y Emergentes
 
Metodologia orientada a objeto
Metodologia orientada a objetoMetodologia orientada a objeto
Metodologia orientada a objeto
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Diapositivas base de datos
Diapositivas base de datosDiapositivas base de datos
Diapositivas base de datos
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales Requisitos funcionales y no funcionales
Requisitos funcionales y no funcionales
 

Andere mochten auch

Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del softwareJohan Prevot R
 
Plan de gestion de configuración de software
Plan de gestion de configuración de softwarePlan de gestion de configuración de software
Plan de gestion de configuración de softwareilianacon
 
AI07 Auditoria proceso desarrollo software
AI07 Auditoria proceso desarrollo softwareAI07 Auditoria proceso desarrollo software
AI07 Auditoria proceso desarrollo softwarePedro Garcia Repetto
 
Algebra de boole y simplificacion logica
Algebra de boole y simplificacion logicaAlgebra de boole y simplificacion logica
Algebra de boole y simplificacion logicaEdgar Rivera
 

Andere mochten auch (6)

Algebra de boole_1
Algebra de boole_1Algebra de boole_1
Algebra de boole_1
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
Sistema de venta de pasajes freee
Sistema de venta de pasajes freeeSistema de venta de pasajes freee
Sistema de venta de pasajes freee
 
Plan de gestion de configuración de software
Plan de gestion de configuración de softwarePlan de gestion de configuración de software
Plan de gestion de configuración de software
 
AI07 Auditoria proceso desarrollo software
AI07 Auditoria proceso desarrollo softwareAI07 Auditoria proceso desarrollo software
AI07 Auditoria proceso desarrollo software
 
Algebra de boole y simplificacion logica
Algebra de boole y simplificacion logicaAlgebra de boole y simplificacion logica
Algebra de boole y simplificacion logica
 

Ähnlich wie Sesion 5 1 diagrama de secuencia

Sesion diagrama de secuencia 2010 i
Sesion diagrama de secuencia 2010 iSesion diagrama de secuencia 2010 i
Sesion diagrama de secuencia 2010 iJulio Pari
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Whaleejaa Wha
 
planeacion de software
planeacion de softwareplaneacion de software
planeacion de softwareMaria Lopez
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboraciond-draem
 
Elementos de comportamiento
Elementos de comportamientoElementos de comportamiento
Elementos de comportamientoAlumic S.A
 
DiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.pptDiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.pptJoseChaaparroo1
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)josue salas
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)josue salas
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
Analisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A ObjetosAnalisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A Objetosjoalmerca6
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemasjoalmerca6
 
Clase diagramas desecuencia
Clase diagramas desecuenciaClase diagramas desecuencia
Clase diagramas desecuenciaESTEVAN GOMEZ
 

Ähnlich wie Sesion 5 1 diagrama de secuencia (20)

Sesion diagrama de secuencia 2010 i
Sesion diagrama de secuencia 2010 iSesion diagrama de secuencia 2010 i
Sesion diagrama de secuencia 2010 i
 
2
22
2
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
planeacion de software
planeacion de softwareplaneacion de software
planeacion de software
 
Colabora2
Colabora2Colabora2
Colabora2
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Diagramas de colaboracion
Diagramas de colaboracionDiagramas de colaboracion
Diagramas de colaboracion
 
Elementos de comportamiento
Elementos de comportamientoElementos de comportamiento
Elementos de comportamiento
 
DiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.pptDiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
DiagramasDeSecuencia COMP Y ABAST5-SEM.ppt
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Trabajo2
Trabajo2Trabajo2
Trabajo2
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Analisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A ObjetosAnalisis Y Diseño De Sistemas Orientado A Objetos
Analisis Y Diseño De Sistemas Orientado A Objetos
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Bd capitulo ii
Bd capitulo iiBd capitulo ii
Bd capitulo ii
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
Clase diagramas desecuencia
Clase diagramas desecuenciaClase diagramas desecuencia
Clase diagramas desecuencia
 

Mehr von Julio Pari

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Julio Pari
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesJulio Pari
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCJulio Pari
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMJulio Pari
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic EnterpriseJulio Pari
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioJulio Pari
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoJulio Pari
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de ArquitecturaJulio Pari
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISIJulio Pari
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIJulio Pari
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasJulio Pari
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIJulio Pari
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaJulio Pari
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialJulio Pari
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialJulio Pari
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sqlJulio Pari
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuarioJulio Pari
 

Mehr von Julio Pari (20)

Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes #Ibm virtual la...
 
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesLinks kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Links kubernetes - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en KubernetesComandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
Comandos - Evento - Virtual Lab Despliegue de aplicaciones en Kubernetes
 
Indice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPCIndice General Tesis Sistemas UPC
Indice General Tesis Sistemas UPC
 
Arquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSMArquitectura Web FISI UNMSM
Arquitectura Web FISI UNMSM
 
Jelastic Enterprise
Jelastic EnterpriseJelastic Enterprise
Jelastic Enterprise
 
Marketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor OsorioMarketing Examen Parcial Profesor Osorio
Marketing Examen Parcial Profesor Osorio
 
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor CorderoIngenieria Software Examen Parcial 2013 2 Profesor Cordero
Ingenieria Software Examen Parcial 2013 2 Profesor Cordero
 
Documento de Arquitectura
Documento de ArquitecturaDocumento de Arquitectura
Documento de Arquitectura
 
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISISolucion Examen Parcial Sistemas Digitales UNMSM FISI
Solucion Examen Parcial Sistemas Digitales UNMSM FISI
 
Práctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa IIPráctica de Inventarios - Investigación Operativa II
Práctica de Inventarios - Investigación Operativa II
 
Armas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilasArmas silenciosas para guerras tranquilas
Armas silenciosas para guerras tranquilas
 
UML Java
UML JavaUML Java
UML Java
 
Formato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISIFormato de presentación de Proyecto UNMSM FISI
Formato de presentación de Proyecto UNMSM FISI
 
Cuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hijaCuento para nuestro hijo y nuestra hija
Cuento para nuestro hijo y nuestra hija
 
Ingeniería de Software Examen Parcial
Ingeniería de Software Examen ParcialIngeniería de Software Examen Parcial
Ingeniería de Software Examen Parcial
 
Sistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen ParcialSistemas Distribuidos Examen Parcial
Sistemas Distribuidos Examen Parcial
 
Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Php06 instalacion my_sql
Php06 instalacion my_sqlPhp06 instalacion my_sql
Php06 instalacion my_sql
 
Php05 funciones usuario
Php05 funciones usuarioPhp05 funciones usuario
Php05 funciones usuario
 

Sesion 5 1 diagrama de secuencia

  • 1. Diagramas de Secuencia Lic. César Alcántara Loayza
  • 2. Diagramas De Secuencia  El objetivo del análisis del problema es definir el propósito e interfaces de cada recurso del dominio del problema.  Se determinó el propósito al definir cada clase y sus relaciones en un diagrama de clases.  Ahora veremos las interfaces. Las principales herramienta para descubrir y comprender las interfaces son los diagramas de interacción . CAL/Fundamentos 2
  • 3. Diagramas De Secuencia  Los diagramas de secuencia y colaboración son usados para modelar interacciones entre los objetos . Los diagramas de secuencia ilustran la interacción entre objetos en el tiempo. Los diagramas de colaboración ilustran las interacciones de los objetos a través de enlaces entre objetos. CAL/Fundamentos 3
  • 4. Diagramas de Secuencia  Las interacciones ayudan a definir el propósito de un objeto, esto decir, las formas en las que un objeto participa en tareas, como se comunica y trabaja con otros objetos, el por que se necesita del objeto.  Las interfases son preguntas y solicitudes que un objeto es capaz de responder. Si la declaración del problema dice que un objeto debe ser capaz de responder una pregunta o responder a una solicitud, entonces el objeto debe tener una interface correspondiente. CAL/Fundamentos 4
  • 5. Diagramas De Secuencia  Operaciones y atributos:  Una interface aparece como una operación en una definición de clase. Las operaciones describen lo que el objeto puede hacer y lo que puede hacerle al objeto. Las operaciones pueden recibir, manipular y regresar información. Esta información aparece en las definiciones de clase como atributos. CAL/Fundamentos 5
  • 6. Diagramas De Secuencia  Los diagramas de secuencia muestran objetos que se comunican unos con otros a lo largo del tiempo. Utilizando, objetos, linea de vida de los objetos y flechas de mensaje. CAL/Fundamentos 6
  • 7. Diagramas De Secuencia  En siguiente diagrama de secuencia:  Los objetos usan la notación estandar, un rectangulo que contiene el nombre del objeto, dos puntos y el nombre de la clase del objeto. Estos tres elementos subrayados. El nombre del objeto es opcional. Nombreobjeto:nombreclase.  La linea de vida del objeto es una línea discontínua vertical.  Los mensajes aparecen como flechas. CAL/Fundamentos 7
  • 8. Diagramas De Secuencia Factura : Cliente Orden de Factura : Orden : Inventario orden( ) retornar orden AddArticulo( ) ProductoDisponible(Producto) retorno verdadero AddProducto(producto) retorno ok CAL/Fundamentos 8
  • 9. Diagramas De Secuencia  Mensaje.  Un mensaje se presenta como una flecha horizontal desde la línea de vida del objeto que envía hasta la línea de vida del objeto que recibe.  La terminología puede varias entre las versiones de UML ..  Una posición en la línea de vida indica un punto relativo en el tiempo. El tope de la línea representa el comienzo de la línea de vida. La parte baja corresponde al final de la linea de vida. CAL/Fundamentos 9
  • 10. Diagramas De Secuencia  El contexto del diagrama de secuencia es la comunicación entre objetos. El alcance del diagrama de secuencia está determinado por la fase actual del ciclo de vida del proyecto. Durante el análisis del problema, el alcance es la comunicación entre los actores, el sistema y los recursos del sistema . CAL/Fundamentos 10
  • 11. Diagramas De Secuencia  Al construir un diagrama de secuencia es útil partir el proceso en dos partes:  Paso 1: describir las interacciones entre el actor y el sistema. Esto permite mantener el diagrama tan simple como sea posible. Mientras se trabaja en comprender como debe trabajar el caso de uso.  Paso 2: expandir el sistema para incluir los recursos usados por el sistema. Una vez que se sabe como debe trabajar el caso de uso, se remapea el comportamiento del sistema para mostrar los objetos recursos usados por el sistema para completar el comportamiento. CAL/Fundamentos 11
  • 12. Diagramas De Secuencia : Sistema Bancario : Cliente Primer paso: retira $100 fondos insuficientes ¿otro monto? retira $45 denominación inválida ¿otro monto? retira $40 $40 + recibo CAL/Fundamentos 12
  • 13. Diagramas De Secuencia : Sistema Bancario : Cuenta : Cliente retira $100 retira $100 fondos insuficientes fondos insuficientes ¿otro monto? Segundo paso retira $45 denominación válida? denominación inválida ¿otro monto? retira $40 retira $40 OK $40 + recibo CAL/Fundamentos 13
  • 14. Diagramas de Secuencia  Muchos casos de uso incluyen decisiones. Cursos de acción que resultan de multiples decisiones pueden ser muy complejas. Los diagramas de secuencia UML permiten bifurcaciones pero son dificiles de leer, por ello se recomienda que el diagrama de secuencia se limite a un solo escenario. Un escenario es una ruta lógica (ejecución particular) del caso de uso. CAL/Fundamentos 14
  • 15. Modelando Escenarios  Transformar una especificación textual en un diagrama de secuencia:  Un escenario describe una serie ordenada de eventos dentro de un caso de uso. El objetivo del diagrama de secuencia es asignar responsabilidades de los eventos a los objetos, de forma que definan las interfaces del objeto. Para construir un diagrama de secuencia se debe emparejar cada evento del escenario con los objetos que participan en el evento como remitente y receptor. CAL/Fundamentos 15
  • 16. Modelando Escenarios  Para dibujar un diagrama de secuencia, evalue cada evento del escenario e identifique el objeto que inicia el evento . Luego identifique el objeto que está mejor preparado para responder. Dibuje una flecha de evento desde el objeto iniciador al objeto que responde. Rotule la flecha de evento con la descripción del evento CAL/Fundamentos 16
  • 17. Modelando Escenarios  A medida que coloca eventos en el diagrama de secuencia cuide la posición sobre la linea de vida del objeto desde arriba hacia abajo en el orden en el que ocurren. Ajuste el orden de ser necesario. CAL/Fundamentos 17
  • 18. Realización  La realización de los CUS se pueden hacer con diagramas de colaboración (modelo de análisis y luego aplicación del análisis de robustez) ó se pueden emplear diagramas de secuencia ó se puede hacer textualmente. CAL/Fundamentos 18
  • 19. Obtener las 20 siguientes presentaciones por fecha Evento 1 A C Muestre las Obtener los eventos para las 20 Evento 3 Evento 2 presentaciones presentaciones seleccionadas Mostrar los Evento 4 eventos Evento 5 B Evento 5 [ selecciona evento ] selecciona presentación [ Ingresa rango fechas ] Validar fechas [ timeout ] Tomarlo ingresadas Obtener detalle de obtener presentaciones para [ cancela ] presentaciones Mostrar mensaje evento seleccionado solo como timeout ejemplo visual fechas válidas mostrar detalle de de escenarios Muestra presentaciones para el [ fechas inválidas ] presentaciones A rango de fechas Evento 6 mostrar mensaje de error B C B CAL/Fundamentos 19
  • 20. Modelando Escenarios  Utilice un escenario como fuente de los eventos. De la especificación (representada por el diagrama de actividad) se ha seleccionado un escenario (marcado con color celeste)  una ruta lógica.  En el diagrama de actividad se ha utilizado las notas como conectores (color gris). CAL/Fundamentos 20
  • 21. Modelando Escenarios  Para el primer evento (Obtener las 20 siguientes presentaciones por fecha), escoja la clase del diagrama de clases que describa el objeto que inicia el evento. El objeto que da inicio puede ser una clase que representa un actor, el sistema mismo, o uno de los recursos del dominio del problema . En este caso el objeto iniciador es el cliente. CAL/Fundamentos 21
  • 22. Modelando Escenarios  Las clases que participan Evento SistemaDeBoletaje Cliente 0..* Presentación CAL/Fundamentos 22
  • 23. Modelando Escenarios : SistemaDeBoletaje : Cliente Obtener 20 siguientes presentaciones por fecha CAL/Fundamentos 23
  • 24. Modelando Escenarios  Para cada evento se encoge una clase que describa el objeto que recibe y responde al evento. : SistemaDeBoletaje : Cliente Obtener 20 siguientes presentaciones por fecha Mostrar presentaciones CAL/Fundamentos 24
  • 25. Modelando Escenarios  Se repite el procedimiento para cada evento hasta que todos los eventos se apliquen al diagrama de secuencia : SistemaDeBoletaje : Presentación : Cliente Obtener 20 siguientes presentaciones por fecha Mostrar presentaciones Mostrar presentaciones CAL/Fundamentos 25
  • 26. Modelando Escenarios : SistemaDeBoletaje : Presentación : Cliente Obtener 20 siguientes presentaciones por fecha Mostrar presentaciones Mostrar presentaciones obtener eventos para 20 presentaciones seleccionadas listar eventos Mostrar eventos CAL/Fundamentos 26
  • 27. Modelando Escenarios : SistemaDeBoletaje : Presentación : Evento : Cliente Obtener 20 siguientes presentaciones por fecha Mostrar presentaciones Mostrar presentaciones obtener eventos para 20 presentaciones seleccionadas listar eventos Mostrar eventos Actividad 5 selecionar evento Obtener presentaciones para evento seleccionado evento activador Listar presentaciones Listar presentaciones Valor retornado CAL/Fundamentos 27
  • 28. Modelando Escenarios : SistemaDeBoletaje : Presentación : Evento : Cliente Obtener 20 siguientes presentaciones por fecha Mostrar presentaciones Mostrar presentaciones obtener eventos para 20 presentaciones seleccionadas listar eventos Mostrar eventos Actividad 5 selecionar evento Obtener presentaciones para evento seleccionado evento activador Listar presentaciones Listar presentaciones Valor retornado Mostrar eventos CAL/Fundamentos 28
  • 29. Modelando Escenarios  Transformar eventos en objetos:  Asignar eventos a objetos:  Una vez que se han distribuido los eventos de un escenario en un diagrama de secuencia, vuelva al diagrama y verifique que el propósito de los objetos corresponde con los eventos en los que ellos participan. CAL/Fundamentos 29
  • 30. Modelando Escenarios  Aplique una medida de cohesión preguntando:  ¿Todos los eventos iniciados por el objeto soportan el propósito (único) del objeto?  ¿Los eventos a los que el objeto responde encajan con el propósito (único) del objeto?, o ¿al objeto se le piden algo que no lo relaciona directamente con su propósito principal?  Aplique una medida de acoplamiento de los objetos. Las interacciones implícitamente identifican dependencias. Las preguntas son:  ¿Las dependencia refuerzan la adecuada división de trabajo a través del objeto, o simplemente complica la comunicación?  ¿Las dependencias reflejan el funcionamiento del mundo real? CAL/Fundamentos 30
  • 31. Modelando Escenarios  Evalúe el propósito del objeto:  Cuando se asigna una nueva tarea a un objeto, se está en efecto agregando nueva responsabilidad a la “descripción del trabajo” de objeto. Las nuevas responsabilidades afectan al objeto de la misma manera que lo haría adicionar mayores responsabilidades a su trabajo. CAL/Fundamentos 31
  • 32. Interfaces  Convertir eventos en operaciones:  Completar la descripción del evento adicionando información que es pasado con el evento y la respuesta esperada. Ambos elementos son opcionales, es decir, no todos los eventos necesitan parámetros y no todos los eventos tienen respuestas.  Ejem., Notificar en algunos casos solo como alarma, en otros puede esperar respuesta. CAL/Fundamentos 32
  • 33. Interfaces  Convertir descripciones de eventos en operaciones:  El objetivo de crear un diagrama de secuencia es descubrir y documentar las interfaces de cada clase. Para definir completamente cada interface, debe convertir la descripción del evento en una signatura de operación formal. La definición formal de una signatura de operación consiste de un nombre, parámetros de entrada (o argumentos), el tipo de dato de retorno esperado y restricciones. CAL/Fundamentos 33
  • 34. Interfaces  +NombreOperación (NombreArg: Tipo Dato {Restricciones}, ... ) : Tipo Dato Retornado {Restricciones}  NombreOperación: requerido  Se permite cualquier número de argumentos  Tipo de datos retornado: requerido para un valor regresado, pero los valores de retorno son opcionales.  Visibilidad (+): Requerida antes de la generación del código. CAL/Fundamentos 34
  • 35. Interfaces  Los argumentos o parámetros son elementos de datos que el objeto necesita para ejecutar la operación.  El tipo de datos retornado describe la clase de información que debe darse como resultado de completar la operación.  Las restricciones son simplemente texto en formato libre que describen las reglas y limitaciones en la ejecución de la operación. CAL/Fundamentos 35
  • 36. Interfaces Descripción de Evento Elementos de la descripción de la Operación Obtener las presentaciones Nombre Operación Argumentos Retorno Para un rango de fechas ObtPresentación FechaInicio, FechaFinal Lista presentaciones Signatura completa: ObtPresentación (FechaInicio, FechaFinal): ListaPresentaciones Mostrar Mostrar ListaPresentaciones Presentaciones Signatura completa: Mostrar (ListaPresentaciones) ó MostrarPresentación (ListaPresentaciones) Obtener Evento ObtenerEvento Evento Para una Presentación Signatura completa: ObtenerEvento():Evento Mostrar Mostrar Lista Eventos Evento Signatura completa: Mostar (Lista Eventos) ó MostarEvento (Lista Eventos) CAL/Fundamentos 36
  • 37. Descubriendo Atributos  Cada pieza de información usada por el sistema debe se definida como atributo. Cada atributo debe pertenecer a un objeto. Aún si un atributo es derivado y nunca se almacena, algún objeto debe poseer las reglas para derivarlo. CAL/Fundamentos 37
  • 38. Descubriendo Atributos  - / NombreAtributo: Tipo Dato = Valor por omisión {Restricciones}  - Visibilidad: requerida antes de generar código.  / Indicador de atributo derivado: opcional CAL/Fundamentos 38
  • 39. Descubriendo Atributos  Cada argumento de una operación debe tener una fuente, ¿el objeto que inicia el evento posee la data?, Si no es así, ¿de donde lo obtiene?. Mire el diagrama de clases y encuentre la clase que debería tener la data. Actualize el diagrama de secuencia para mostrar como el objeto iniciador ha obtenido la data desde el objeto que la posee. CAL/Fundamentos 39
  • 40. Descubriendo Atributos  Ejemplo expandir un diagrama de secuencia con parámetros Asiento Cliente Boleto 1 1 Ubica 0..1 utiliza realiza 0..* 0..* 1 reserva Pone Precio Compra AsientoPresentación NivelPrecio 0..* 1 0..* 0..1 CAL/Fundamentos 40
  • 41. Descubriendo Atributos  Diagrama de secuencia inicial para el caso de uso comprar asientos: : Cliente : Compra : AsientoPresentación : Boleto Paga(lista asientos presentacion) ObtenerPrecio Precio Descuento UsarBoleto Boleto Regresar boleto Regresar boleto Regresar conjunto boletos CAL/Fundamentos 41
  • 42. Descubriendo Atributos  Retornos de la operación:  La misma lógica se aplica a los retornos de operaciones. ¿El objeto que responde posee la data?, Si no es así, ¿de donde la obtiene?, ¿El objeto deriva la data usando sus propias operaciones?, ¿El objeto ha hallado el valor usando otros objetos?. Actualice el diagrama de secuencia para adicionar los objetos que poseen la data y muestre como obtiene la data el objeto original. CAL/Fundamentos 42
  • 43. Descubriendo Atributos  En el ejemplo .. cuando un cliente quiere comprar asientos para la presentación, debe proporcionar el tipo de precio para cada sitio para que el sistema conozca que tipo de precio cargar, es decir, adulto, estudiante, adulto mayor o niño: CAL/Fundamentos 43
  • 44. Descubriendo Atributos Agregue un precio Para cada sitio : Cliente : Compra : AsientoPresentación : Boleto Paga(lista asientos presentacion) ObtenerPrecio El cliente es el único objeto que conoce que tipo de precio aplicar para cada sitio. Precio Adicionar el tipo de precio a los parámetros de la operación de Descuento pago invocada por el cliente. UsarBoleto Boleto Regresar boleto Regresar boleto Regresar conjunto boletos CAL/Fundamentos 44
  • 45. Descubriendo Atributos  Para hallar el precio por asientopresentación, asientopresentación debe pedir el precio a nivelprecio. Cuando se pide el precio asientopresentación debe proporcionar el tipo de modo que nivelprecio decida que precio retornar. CAL/Fundamentos 45
  • 46. Descubriendo Atributos : Cliente : Compra : AsientoPresentación : Boleto : NivelPrecio Paga(lista asientos presentacion) ObtenerPrecio ObtenerPrecio(TipoPrecio) Precio Precio Descuento Boleto UsarBoleto Regresar boleto Regresar boleto Regresar conjunto boletos CAL/Fundamentos 46
  • 47. Descubriendo Atributos  Cada vez que haga un refinamiento, itere a traves del proceso de modelamiento:  Evalúe el diagrama de clases para encontrar objetos que participan en la interacción.  Adicione nuevos objetos.  Identifique nuevos eventos.  Reevalúe el propósito de los objetos participantes.  Convierta los eventos en operaciones.  Convierta la información en atributos.  Asigne propietario a los atributos.  Repita hasta que todos los parámetros y retornos esten considerados. CAL/Fundamentos 47
  • 48. Revisión  Uno de los principales problemas en el diseño de software es decidir que incluir en el: cada elemento tomado en cuenta requiere dinero y tiempo para desarrollar y soportar. ¿Cómo puede asegurarse que está gastando el tiempo y dinero de la mejor manera?  Utilizar diagramas de clase, de secuencia y modelo de casos de uso como referencias cruzadas. CAL/Fundamentos 48
  • 49. Revisión  Comparar estas tres vistas una con otra ayuda a descubrir y justificar las operaciones y atributos necesarios para soportar las expectativas del usuario. CAL/Fundamentos 49
  • 50. Revisión  Hemos revisado:  El propósito y la función de los diagramas de secuencia: descubrir y definir las interfaces de las clases.  Transformar los escenarios de casos de uso en diagramas de secuencia: usar un escenario para crear un diagrama de secuencia. Transformar cada evento del escenario en un evento en el diagrama de secuencia. Asignar responsabilidad del evento a los objetos emisor y receptor. CAL/Fundamentos 50
  • 51. Revisión  El valor de las interacciones para el modelado de objetos: justificar la necesidad de cada interface de clase como parte de los requerimientos de los casos de uso.  Como descubrir y documentar las operaciones desde las interacciones: convertir cada evento en una operación.  Como descubir y documentar atributos de las operaciones: convertir todos los argumentos y retornos de la operación en atributos. Rastree las fuentes de cada atributo identificado en la secuencia. CAL/Fundamentos 51
  • 52. Reconciliar Modelos  Un diagrama por si mismo es muy dificil de verificar. Pero cuando se usan juntos diferentes diagramas del mismo problema el proceso de comparación y contraste revela problemas potenciales.  Para identificar discrepancias:  Como probar escenarios.  Como probar clases.  Como probar interfaces.  Como reconocer los patrones de reconciliación. CAL/Fundamentos 52
  • 53. Reconciliar Modelos  Aunque el diagrama de clases es el único usado para generar código los otros diagramas son herramientas que ayudan a comprender las clases. El diagrama de clases tiene una perspectiva limitada del dominio del problema; No muestra como se comportan los objetos cuando se usa el sistema. CAL/Fundamentos 53
  • 54. Reconciliar Modelos  Para ver el comportamiento de los recursos, se necesitan modelos que describan como se usan los recursos, viendo las interacciones entre clases, la creación y disposición de recursos y los patrones de colaboración de cada comportamiento. CAL/Fundamentos 54
  • 55. Analisis Del Problema III Lic. César Alcántara Loayza
  • 56. Reconciliar Modelos  Un diagrama por si mismo es muy dificil de verificar. Pero cuando se usan juntos diferentes diagramas del mismo problema el proceso de comparación y contraste revela problemas potenciales.  Para identificar discrepancias:  Como probar escenarios.  Como probar clases.  Como probas interfaces.  Como reconocer los patrones de reconciliación. CAL/Fundamentos 56
  • 57. Reconciliar Modelos  Aunque el diagrama de clases es el único usado para generar código los otros diagramas son herramientas que ayudan a comprender las clases. El diagrama de clases tiene una perspectiva limitada del dominio del problema; No muestra como se comportan los objetos cuando se usa el sistema. CAL/Fundamentos 57
  • 58. Reconciliar Modelos  Para ver el comportamiento de los recursos, se necesitan modelos que describan como se usan los recursos, viendo las interacciones entre clases , la creación y disposición de recursos y los patrones de colaboración de cada comportamiento. CAL/Fundamentos 58
  • 59. Prueba De Escenarios  Los escenarios de los casos de uso son fuentes para los diagramas de interacción.  Los escenarios son incialmente de muy alto nivel. De hecho, deberian describir solo lo que es visible a un actor desde fuera del sistema. Cuando se crea el diagrama de secuencia, existen solo dos objetos, el actor y el sistema. En una segunda iteración, adiciona los recursos que el sistema usa para completar los eventos asignados al mismo. CAL/Fundamentos 59
  • 60. Prueba De Escenarios  Durante el diseño este mismo proceso continuará a medida que adicione clases de software. Reemplazará a los actores con objetos interfaces de usuario y reemplazará el objeto “sistems” con las clases interfaz y control que componen el software . CAL/Fundamentos 60
  • 61. Prueba De Escenarios  Invariablemente el diagrama de secuencia tendrá mas detalle que los escenarios. Los objetivos y las audiencias son diferentes. Los escenarios son dirigidos a los usuarios fuera del sistema. Los diagramas de secuencia son dirigidos para describir el sistema y sus recursos internos . CAL/Fundamentos 61
  • 62. Prueba De Escenarios  Agregando detalle el diagrama de secuencia:  Si agrega detalle al diagrama de secuencia adicione dichos detalles a los escenarios y viceversa. De forma que ambos diagramas se encuentren coherentes durante el proceso de mejoras. CAL/Fundamentos 62
  • 63. Prueba De Escenarios  Cuando se buscan objetos que poseen los niveles de conocimiento requeridos para resolver el problema. Ud. No está limitado a enlaces directos. En el ejemplo de ATM, el banco es una fuente que ATM accede para obtener información que necesita. No hay enlace directo entre ATM y el banco. CAL/Fundamentos 63
  • 64. Escenarios Y Secuencias  Paso 1: en este primer diagrama de secuencia se refleja la secuencia de eventos descrita por el escenario.  Escenario: retiro con éxito $100. 1. El cliente pide retirar $100. 2. El sistema ATM responde proporcionando el dinero y un recibo. CAL/Fundamentos 64
  • 65. Escenarios Y Secuencias : SistemaATM : Cliente Retira $100 Dinero + recibo CAL/Fundamentos 65
  • 66. Escenarios Y Secuencias  Paso 2: incorpora los flujos referenciados por otros escenarios pero no mostrados explicitamente en el diagrama de secuencia original.  Desde dos escenarios de excepción se conoce que el sistema actualmente pasa por dos ediciones antes de avalar el retiro. CAL/Fundamentos 66
  • 67. Escenarios Y Secuencias : SistemaATM : Cliente Retira $100 Denominación válida? Fondos suficientes? Dinero + recibo CAL/Fundamentos 67
  • 68. Escenarios Y Secuencias  Escenario: Retiro con éxito $100. 1. El cliente pide retirar $100. 2. ¿La cantidad ingresada es divisible por la denominación disponible en la máquina? 3. ¿Existe suficientes fondos en la cuenta para cubrir la cantidad de retiro?. 4. El sistema ATM entrega el dinero y recibo. CAL/Fundamentos 68
  • 69. Escenarios Y Secuencias  Paso 3: revisar mejoramientos:  Una vez que se ha dibujado el diagrama se revisa con los miembros del equipo. Ellos le preguntan si intenta incluir la verificación de limite diario que tiene el banco. ¿Qué hará? Preguntar a los usuarios.  Los usuarios manifiestan que olvidaron mencionar antes y que desean la verificación de limite diario en el sistema. CAL/Fundamentos 69
  • 70. Escenarios Y Secuencias : SistemaATM : Cliente Retira $100 Denominación válida? Dentro de los límites diarios? Fondos suficientes? Dinero + recibo CAL/Fundamentos 70
  • 71. Escenarios Y Secuencias  Escenario: retiro con éxito $100. 1. El cliente pide retirar $100. 2. ¿La cantidad ingresada es divisible por la denominación disponible en la máquina? 3. ¿El retiro está dentro de los límites de retiro diario? 4. ¿Existe suficientes fondos en la cuenta para cubrir la cantidad de retiro?. 5. El sistemaatm entrega dinero y recibo. CAL/Fundamentos 71
  • 72. Escenarios Y Secuencias  Paso 4: adicionar recursos del sistema.  Identificar los recursos que el sistema atm (cajero) utiliza para satisfacer las solicitudes de retiro. Estos recursos estan definidos en el diagrama de clase donde se han identificado a los recursos del dominio del problema. CAL/Fundamentos 72
  • 73. Escenarios Y Secuencias SistemaATM 0..* 1..* Cliente RedATM 1..* 0..* Posee 1..* 0..* Banco CuentaBancaria 1 0..* CAL/Fundamentos 73
  • 74. Escenarios Y Secuencias  Para cada evento, determine el objeto que mejor pueda manejar el evento. Recuerde que para pasar el evento a un objeto debe seguir las asociaciones definidas en el diagrama de clases.  1. El sistema ATM es el único objeto que conoce su propias denominaciones.  2. El banco es el único objeto que controla la política de limites.  3. El banco conoce el saldo de la cuenta. CAL/Fundamentos 74
  • 75. Escenarios Y Secuencias : SistemaATM : Banco : Cliente Retira $100 Denominación válida? Note que todos los Dentro de limites de retiro diario? eventos y su orden se mantienen Pero OK se han reasignado Suficientes Fondos en cuenta? OK responsabilidades Dinero + recibo desde el sistema ATM hacia el banco CAL/Fundamentos 75
  • 76. Escenarios Y Secuencias  Escenario: retiro con éxito $100. 1. El cliente pide retirar $100. 2. ¿La cantidad ingresada es divisible por la denominación disponible en la máquina? 3. ¿El retiro está dentro de los límites de retiro diario? 4. ¿Existe suficientes fondos en la cuenta para cubrir la cantidad de retiro?. 5. El sistemaatm entrega dinero y recibo. CAL/Fundamentos 76
  • 77. Escenarios Y Secuencias  Paso 5: evalúe el diagrama de secuencia para mejorar el flujo de eventos.  Note que el diagrama de secuencia hace dos llamadas desde el sistema atm hacia el banco. Una gran red separa físicamente estos dos sistemas. Podría mejorar la comunicación y rendimiento para simplificar la comunicación en un único evento.  1. Reemplce los dos eventos con un único evento “retiro.”  2. El banco ejecuta los dos eventos originales cuando recibe un nuevo evento de retiro.  3. Asegurar de adicionar el retorno del evento de retiro para reflejar la respuesta final del banco. CAL/Fundamentos 77
  • 78. Escenarios Y Secuencias : SistemaATM : Banco : Cliente Retira $100 Denominación válida? Retira $100 Dentro de limite de retiro diario? Fondos suficientes? OK Dinero + recibo CAL/Fundamentos 78
  • 79. Escenarios Y Secuencias  Escenario: retiro con éxito $100. 1. El cliente pide retirar $100. 2. ¿La cantidad ingresada es divisible por la denominación disponible en la máquina? 3. ¿El retiro está dentro de los límites de retiro diario? 4. ¿Existe suficientes fondos en la cuenta para cubrir la cantidad de retiro?. 5. El sistemaatm entrega dinero y recibo. CAL/Fundamentos 79
  • 80. Prueba De Interfaces  Reconcilie el diagrama de secuencia con el modelo de objetos.  El formato de la signatura de una operación:  Nombre ( argumento : datatype, ...) : returndatatype {restricciones}.  Cada evento debería ser traducido en una operación. Una vez que la signatura de la operación se ha definido, existen 4 pruebas para aplicar a su diagrama de clases. CAL/Fundamentos 80
  • 81. Prueba De Interfaces  1. Verificar que cada operación en su diagrama de secuencia aparece en el diagrama de clases. Muchos CASE agregan automáticamente interfaces a los diagramas de clase. CAL/Fundamentos 81
  • 82. Prueba De Interfaces  2. Pruebe la cohesión de la clase. Verifique que cada interface soporte el propósito del objeto. Luego busque todas las interfaces de la clase y determine si todas las interfaces soportan el mismo propósito. Si observa que las operaciones trabajan en dos o mas objetivos, entonces podría necesitar partir la clase para mejorar la cohesión. CAL/Fundamentos 82
  • 83. Prueba De Interfaces  3 prueba de consistencia. Si se referencia la misma interfaces en mas de un escenario, verifique que se use del mismo modo en cada escenario. Es muy facil llegar a tener operaciones con identico nombre que ejecutan funciones distintas. CAL/Fundamentos 83
  • 84. Prueba De Interfaces  4. Responda las siguientes preguntas:  ¿La clase tiene todo lo necesario para cumplir su propósito definido?  ¿Las interfaces proporcionan toda la funcionalidad que normalmente podría asociarse con el alcance de responsabilidad que se ha asignado a la clase?, De no ser así entonces necesitará revisar los casos de uso y los escenarios para averiguar lo que se pudo pasar por alto. Es posible, también , que la responsabilidad esté fuera del alcance del proyecto. CAL/Fundamentos 84
  • 85. Prueba De Clases  Reconcilie el diagrama de clases con el modelo de casos de uso.  Reconcilie la terminología del modelo de casos de uso y los nombres de clase. CAL/Fundamentos 85
  • 86. Prueba De Clases  1. ¿Existe una clase que maneje cada recurso mencionado en el modelo de casos de uso?. Cuando se crea inicialmente el diagrama de clases se usa el vocabulario del dominio del problema como se documenta en la declaración del problema y en los casos de uso. A medida que se continua el análisis, es frecuente los cambios en estos documentos. CAL/Fundamentos 86
  • 87. Prueba De Clases  Verifique que los nuevos recursos sean añadidos (o removidos) de su diagrama de clases y que su propósito esté completamente definido. Defina sus interfaces y actualize su diagrama de secuencias. CAL/Fundamentos 87
  • 88. Prueba De Clases  2. Usando el modelo, haga preguntas que requieran navegar a través del modelo para verificar que los objetos pueden, de hecho soportar la navegación. P.E., En el caso de uso “comprar asientos”, ¿puede obtener el nombre del evento que se debería imprimir en el boleto?. CAL/Fundamentos 88
  • 89. Prueba De Clases Ejemplo 1. Para cada evento buscar todos las presentaciones. 2. Para cada presentación buscar mapaasientospresentación. 3. Para cada mapaasiento buscar asientopresentación. 4. Por cada asientopresentación buscar boleto. 5. Obtener el precio pagado por cada boleto. CAL/Fundamentos 89
  • 90. Prueba De Clases Evento 1 1 0..* 1 1 Presentación MapaAsientosPresentación 1 3 2 0..* Asiento Presentación 1 Navegación utiliza 4 0..1 Boleto 5 CAL/Fundamentos 90
  • 91. Prueba De Clases  Durante la prueba de navegación del caso de uso, notará algunas veces que la ruta para responder en muy larga. No se preocupe, durante el diseño, se optimizará el modelo usando atajos llamados asociaciones derivadas. CAL/Fundamentos 91
  • 92. Reconociendo Patrones  Resumen: tres formas de comparación entre diagramas:  Concordar los diferentes diagramas puede ser la forma mas efectiva de mejorar sus modelos. La revisión iterativa, el refinamiento y el mejoramiento mantienen el proceso y remueven cualquier elemento de pérdida de información. CAL/Fundamentos 92
  • 93. Reconociendo Patrones  Patrones de reconciliación:  Casos de uso y escenarios.  Casos de uso y diagramas de clases.  Diagrama de clases y diagramas de interacción (secuencia).  Escenarios y diagramas de interacción.  Diccionario de datos y casos de uso.  Diccionario de datos y diagrama de clases.  Diagrama de objetos y diagrama de clases. CAL/Fundamentos 93
  • 94. Reconociendo Patrones  Recordar que nada es inmutable, todo debiera ser cuestionado y probado . Utilice los diagramas como herramientas (mas que como fines) y aliente la participación retando al equipo a ver el problema. CAL/Fundamentos 94
  • 95. Reconociendo Patrones  El modelado de objetos involucra el uso de diferentes diagramas para representar aspectos diferentes del dominio del problema. La comparación y contraste de estas diferentes vistas ayudan a revelar discrepancias y son oportunidades para mejorar y refinar. CAL/Fundamentos 95
  • 96. Reconociendo Patrones  Se hace mejor el análisis creando rápidamente dibujos iniciales (borradores) de todos los diagramas. No se preocupe de que su análisis sea 100% correcto ni completo . Utilice los diagramas como una referencia para conversar; Actualice a medida que se identifican cambios. Capture el conocimiento inmediatamente para hacerlos disponible a todos en el proyecto. CAL/Fundamentos 96