SlideShare ist ein Scribd-Unternehmen logo
1 von 95
Downloaden Sie, um offline zu lesen
Construcción de Software


Capítulo 1

  El Lenguaje Unificado de Modelado, UML
Capítulo 1. Estructura

Presentación de UML
Necesidad del modelado
Modelado de casos de Uso
     Diagrama de casos de uso
Modelado estructural
     Diagrama de clases
Paquetes
Vistas de UML
Modelado dinámico
     Diagramas de interacción
                                   2
Capítulo 1. Estructura (II)
Modelado de flujos de trabajo
    Diagramas de actividades
Modelado del estado
    Máquinas de estado
Modelado de la implementación
    Diagramas de componentes
    Diagramas de despliegue
Colaboraciones
OCL (Object Constraint Language)


                                     3
Capítulo 1. Bibliografía

• [Booch et al. 99] Booch, G. et al. quot;El lenguaje
  unificado de modeladoquot;, Addison-Wesley, 1999.
• [Larman 02] Larman, C. “UML y Patrones: Una
  introducción al análisis y diseño orientado a
  objetos y al proceso unificado”, Segunda Edición,
  Prentice-Hall, 2002.




                                                  4
El lenguaje unificado de modelado, UML

• A mediados de los noventa existían muchos métodos de
  análisis y diseño OO.
        – Mismos conceptos con distinta notación.
        – Mucha confusión.
        – “Guerra de los métodos”
• En 1994, Booch, Rumbaugh (OMT) y Jacobson
  (Objectory/OOSE) deciden unificar sus métodos:
     Unified Modeling Language (UML)
• Proceso de estandarización promovido por el OMG

                                                     5
El consorcio OMG

•Rational Software       •ICON Computing

•Oracle                  •i-Logix

•IBM                     •ObjectTime

•DEC                     •Platinum Technology

•Microsoft               •Petch

•Hewlett-Packard         •Taskon A/S

•Sterling Software       •Reich Technologies

•MCI Systemhouse         •Softeam

•Unisys
                                    ....
•IntelliCorp
Cómo se creó UML




             De “Introduction to the Unified Modeling
             Language”, Terry Quatrani, UML,
             http://www.rational.com/media/uml/intro_rd
             n.pdf
Las raíces técnicas de UML
• OMT - Object Modeling Technique (Rumbaugh et al.)
   – especialmente bueno para análisis de datos de SI
   – entre otros, usa extensiones de los diagramas ER
• Método-Booch (G. Booch)
   – especialmente útil para sistemas concurrentes y de tiempo real
   – fuerte relación con lenguajes de programación, como Ada
• OOSE - Object-Oriented Software Engineering (I. Jacobson)
   – desarrollo guiado por los use cases
   – buen soporte de Ingeniería de Requisitos e Ingeniería de Información
   – Modelado y simulación de sistemas de telecomunicaciones
• UML unifica estos conceptos e introduce otros nuevos
Evolución de UML
   Diciembre’04- OMG adopta UML 2.0    UML 2.0

 Marzo’03- OMG adopta UML 1.5         UML 1.5




Junio’99- OMG adopta UML 1.3          UML 1.3
Los rivales de UML

• Otras propuestas enviadas a OMG
  –   Catalysis (D. D’Souza, A. Willis)
  –   Syntropy (S. Cook et al., IBM)
  –   OML/Open (B. Henderson-Sellers)
  –   Fusion (D. Coleman, HP)
UML aglutina otros enfoques

                                             Rumbaugh
                              Booch                                 Jacobson

                  Odell
                                                                                 Meyer
                                                                                  Pre- and Post-conditions

    Shlaer-Mellor                              UML
    Object life cycles
                                                                                  Harel
                                                                                  State Charts
    Gamma et. al.
    Frameworks, patterns,
           notes
                         Embly                                          Wirfs-Brock
                         Singleton classes                              Responsabilities
                                              Fusion
                                              Operation descriptions,
                                               message numbering
                                                                                                             11
(Tomada de www.dsic.upv.es/~uml)
Ventajas de la unificación

• Reunir los puntos fuertes de cada método
• Idear nuevas mejoras
• Proporcionar estabilidad al mercado
  – Proyectos basados en un lenguaje maduro
  – Aparición de potentes herramientas
• Eliminar confusión en los usuarios


                                              12
Objetivos en el diseño de UML
• Modelar sistemas, desde los requisitos hasta los artefactos
  ejecutables, utilizando técnicas OO.

• Cubrir las cuestiones relacionadas con el tamaño propias
  de los sistemas complejos y críticos.

• Lenguaje utilizable por las personas y las máquinas

• Encontrar equilibrio entre expresividad y simplicidad.
                                                           13
UML y el modelado

    UML es un lenguaje para visualizar, especificar,
    construir y documentar los artefactos (modelos) de un
    sistema que involucra una gran cantidad de software,
    desde una perspectiva OO.



• UML es una notación, no es un proceso
• Se están definiendo muchos procesos para UML.
• Rational ha ideado RUP, “Proceso Unificado de
  Rational”.
• Utilizable para sistemas que no sean software
                                                            14
¿Por qué modelamos?


“Una empresa software con éxito es aquella
que produce de manera consistente software
de calidad que satisface las necesidades de
los usuarios”



“El modelado es la parte esencial de todas las
 actividades que conducen a la producción
 de software de calidad”

                                                 15
¿Por qué modelamos?

  “Un modelo es una simplificación de la realidad”

• Construimos modelos para comprender mejor el sistema
  que estamos desarrollando
• Cuatro utilidades de los modelos:
   –   Visualizar cómo es o queremos que sea el sistema
   –   Especificar la estructura y comportamiento del sistema
   –   Proporcionan plantillas que guían la construcción del sistema
   –   Documentan las decisiones
• “Equivalen a los planos de un edificio”

                                                                       16
Principios del modelado

• La elección de los modelos tiene una profunda influencia sobre
  cómo se acomete el problema y se moldea la solución.
• Todo modelo puede expresarse a diferentes niveles de detalle y
  usarse en diferentes momentos del ciclo de vida.
• Todo modelo debe estar ligado a la realidad.
• Un único modelo no es suficiente. Cualquier sistema no trivial
  se aborda mejor a través de un pequeño conjunto de modelos
  casi independientes, que muestran distintos aspectos.




                                                               17
¿Por qué las empresas no hacen modelado?


• La mayor parte de las empresas software no realizan
  ningún modelado.
• El modelado requiere:
   – aplicar un proceso de desarrollo
   – formación del equipo en la técnicas
   – tiempo
• ¿Se obtienen beneficios con el modelado?


                                                        18
¿Problemas en el desarrollo de software?
•   Retrasos en los plazos
•   Proyectos cancelados
•   Rápido deterioro del sistema instalado
•   Tasa de defectos o fallos
•   Requisitos mal comprendidos
•   Cambios frecuentes en el dominio del problema
•   Muchas de las interesantes características del software no
    proporcionan beneficios al cliente

          ¿Modelado es la solución?


                                                                 19
Utilidad del modelado

      ¿Escribimos código directamente?

• Se facilita la comunicación entre el equipo al existir un
  lenguaje común.
• Se dispone de documentación que trasciende al proyecto.
• Hay estructuras que trascienden lo representable en un
  lenguaje de programación.



                                                        20
Utilidad de UML


• Permite especificar todas las decisiones de análisis, diseño
  e implementación, construyéndose modelos precisos, no
  ambiguos y completos.
• UML puede conectarse a lenguajes de programación:
   – Ingeniería directa e inversa
• Permite documentar todos los artefactos de un proceso de
  desarrollo (requisitos, arquitectura, pruebas, versiones,..)


                                                          21
Metamodelo UML
• ¿Cómo se expresa la semántica del modelo?
   – Informalmente
   – Formalmente

• El metamodelo UML define la notación de un modo
  riguroso, a través de diagramas de la propia notación y con
  OCL (Object Constraint Language).



                                                          22
Metamodelo UML: Ejemplo


                 Relación



Generalización                 Asociacion
                                      1

                            ordered   2..*

                                 Role de
                                asociación

                                             23
Cómo se organiza UML
                                           Estructurales, Comportamiento,
                           Elementos      Agrupación (paquetes), Anotación
                                                (notas, comentarios)

       • Bloques básicos
                                              Dependencia, Asociación
                           Relaciones       (Agregación), Generalización,
        de construcción                             Realización


                                             Clases, Objetos, Casos de Uso,
                           Diagramas     Secuencia, Colaboración, Actividad,
                                         Statecharts, Componentes, Despliegue
UML

        • Reglas de uso     Nombres, Alcance, Visibilidad,
                               Integridad, Ejecución

                             Especificaciones, Dicotomía,
        • Mecanismos
                            Adornos (detalles), Mecanismos
           Comunes
                                   de Extensibilidad
Modelo Conceptual de UML

• Bloques básicos de construcción
   – Elementos
      • Estructurales, Comportamiento, Agrupación, Anotación
   – Relaciones
   – Diagramas
• Reglas para combinar bloques
   – Establecen qué es un modelo bien formado
• Mecanismos comunes


                                                               25
Elementos Estructurales

• Partes estáticas de un modelo

      Ventana
                         <<Interface>>
       origen
                           IAvisable
       tamaño
                                                     IAvisable
       abrir()
       cerrar()
       mover()                           Interface
       dibujar()




          clase       ValidarTransaccion
                                                          caso de uso



                                                                        26
Elementos Estructurales

Gestor Eventos
                    clase activa (UML 1.X)                       Hola
                                                                 Mundo.class
 suspender()
 vaciarCola()




colaboración                                            componente (UML 1.X)


                                             Servidor
  Gestión Pedidos

                                                                   nodo


                                                                               27
Elementos de Comportamiento

Son las partes dinámicas de UML.

Interacción
      Conjunto de mensajes intercambiados entre un conjunto
      de objetos con un propósito particular.

                   dibujar
                                      mensaje




                                                              28
Elementos de Comportamiento

 Son las partes dinámicas de UML.

Máquina de estados
     Secuencia de estados por las que pasa un objeto durante
     su vida en respuesta a eventos.


                   activado            estado




                                                               29
Elementos de Agrupación

Son las partes organizativas de los modelos UML


      Modelo del Negocio     Paquete



Un paquete incluye un conjunto de elementos de cualquier
naturaleza.

Tiene una naturaleza conceptual.
                                                           30
Elementos de Anotación

Son las partes explicativas de los modelos UML


        Retorna 0 si no        Nota
        existe el valor




                                                 31
Relaciones

                       Dependencias

 0..1        *
                       Asociaciones
patron   empleado


                       Generalizaciones


                       Realización

                                          32
Diagramas de UML

•   Diagramas de Casos de Uso
•   Diagramas de Clases
•   Diagramas de Objetos
•   Diagramas de Interacción
      – Diagrama de Secuencia
      – Diagrama de Colaboración (Comunicación en UML 2.0)
•   Diagramas de Estados
•   Diagramas de Actividades
•   Diagramas de Componentes
•   Diagramas de Despliegue
•   Composite Structure Diagram (UML 2.0)
•   Package Diagram (UML 2.0)
•   Interaction Overview Diagram (UML 2.0)
•   Timing Diagram (UML 2.0)

                    http://www.agilemodeling.com/essays/umlDiagrams.htm

                                                                     33
Diagramas de UML
                                                        State
                                                          State
                                      Use Case        Diagrams de
                                                       Diagramas
                                       Use Case        Diagrams                 State
              Use Case                Diagrams de
                                      Diagramas           Clases                 State
               Use Case                Diagrams                               Diagrams de
                                                                              Diagramas
              Diagrams de
               Diagramas              Casos de Uso                             Diagrams
               Diagrams                                                          Objetos
                Secuencia




                                                                Estructural
                            Comportamiento
Interacción
        Scenario                                                                State
          Scenario                                                                State
        Diagrams de
         Diagramas                                                            Diagrams de
                                                                               Diagramas
         Diagrams                                                              Diagrams
         Colaboración                           Modelo                        Componentes

                                                                              Implementación
                Scenario                                    Component
                  Scenario                                    Component
                                                             Diagramas de
                                                             Diagrams
                Diagrams de
                 Diagramas                                     Diagrams
                 Diagrams                                     Despliegue
                    Estados                  Diagramas de
                                               Actividad
Reglas de uso de UML

• Especifican cómo construir modelos bien formados (auto
  consistentes y en armonía con otros modelos relacionados)
• Proporcionan reglas semánticas para:
   –   Nombres (a qué se puede llamar elementos, relaciones y diagramas)
   –   Alcance (contexto que da significado específico a un nombre)
   –   Visibilidad (cómo los nombres pueden ser vistos y usados por otros)
   –   Integridad (cómo los elementos se relacionan entre sí de forma consistente)
   –   Ejecución (significado de simular o ejecutar un modelo dinámico)
• Puede ser necesario trabajar con modelos “mal formados”:
   – Con omisiones (incluso intencionadamente, para simplificar las vistas)
   – Incompletos (faltan aún elementos, relaciones por identificar)
   – Inconsistentes (no se garantiza la integridad del modelo)
Mecanismos comunes de UML

• Especificaciones
   – Explicación textual de la sintaxis y la semántica de un bloque
     de construcción
   – Proporcionan una base semántica para cada elemento
   – Los diagramas son proyecciones (o vistas parciales) de esa
     base
• Adornos
   – La notación gráfica básica de cada elemento puede incluir
     adornos textuales o gráficos para resaltar algunas
     propiedades de la especificación.


                                                                 36
Mecanismos comunes de UML

• Divisiones Comunes
  – Dicotomía clasificador /instancia

          Persona
                               Elena
          nombre
          direccion
          telefono
                              Elena :
                              Persona


                             : Persona




                                         37
Mecanismos comunes de UML

• Divisiones Comunes
  – Dicotomía interfaz / implementación


        asistente
        Ortografico.dll
                                      IOrtografia




                                                    38
Mecanismos comunes de UML

• Mecanismos de extensibilidad
  – Estereotipos
     • Extienden el vocabulario de UML, permitiendo añadir nuevos tipos
       de bloques de construcción
  – Valores etiquetados
     • Extienden las propiedades de un bloque de construcción, añadiendo
       nueva información
  – Restricciones
     • Extiende la semántica de un bloque, añadiendo reglas o modificando
       las existentes.



                                                                            39
Mecanismos de extensibilidad de UML

                                                 valor etiquetado
estereotipo
                            ColaEventos {version 3.2; autor: jgm}


                             añadir()
        <<Exception>>
                             quitar()
         Overflow            vaciar()




                                        {ordenado}



              restricción



                                                                    40
Perfiles de UML


• “Profiles” (perfiles) de UML
  – Conjuntos pre definidos de estereotipos, valores
    etiquetados, restricciones e iconos de la notación
    que juntos especializan y adaptan UML a un
    dominio (modelado de negocios) o procesos
    específicos ( como Rational Unified Process)




                                                         41
Modelado de Casos de Uso

• Un caso de uso especifica el comportamiento deseado del
  sistema.
• Representan los requisitos funcionales del sistema.

  “Un caso de uso especifica una secuencia de acciones,
  incluyendo variantes, que el sistema puede ejecutar y que
  produce un resultado observable de valor para un
  particular actor”

• Describen qué hace el sistema, no cómo lo hace.
                                                       42
Modelado de Casos de uso


•   Técnica de recolección y especificación de requisitos.
•   Fáciles de comprender/validar por los usuarios.
•   Guían todo el proceso de desarrollo.
•   Ayudan a la planificación/desarrollo incremental.
•   Tradicionalmente ligados a la OO
    – pero no obligatorio
• Ayudan a determinar la interfaz de usuario.


                                                             43
Éxito de los casos de uso


• Concebidos por I. Jacobson - Objectory/OOSE
  (Jacobson et al. 92)
• Presentes en casi cualquier nuevo método de desarrollo
  de software.
• Incluidos en UML y Métrica 3.
• Fuerte actividad investigadora en los últimos años.



                                                       44
Ejemplo Caso de Uso


 actor                              caso de uso



                             Procesar Préstamo
ResponsablePrestamos


                       asociacion



                                                  45
Ejemplo de Casos de uso



                    Efectuar llamada              <<extend>>

                                          Realizar llamada de conferencia
   Red
telefónica         Recibir llamada
                     telefónica        <<extend>>
                                                Recibir llamada
                                                  adicional
                    Usar agenda


                                                 Teléfono móvil
     Usuario                                         (Booch et al. 99)      46
Ejemplo de Casos de Uso

Emisor           Centralita           Receptor
     Emisor_listo

    Tono
                                                 Efectuar_llamada
   Marca_número

   Tono_sonando       Timbre_sonando
                      Telefono_cogido
    Para_tono           Para_timbre


                ESCENARIO                        CASO DE USO




                                                                    47
Otras definiciones de caso de uso

• “Describe un conjunto de interacciones entre actores externos y el
  sistema en consideración orientadas a satisfacer un objetivo de un
  actor”.                 [D. Bredemeyer]

• “Es una colección de posibles secuencias de interacciones entre el
  sistema en discusión y sus actores externos, relacionado con un
  objetivo particular”.       [A. Cockburn]

• “Es una descripción de un conjunto de secuencias de acciones,
  incluyendo variantes, que ejecuta un sistema para producir un
  resultado observable de valor para un actor”
                                            [UML]
                                                                48
Actores


  Un actor representa un conjunto coherente de roles que
  juegan los usuarios de los casos de uso al interaccionar
  con el sistema.

• Roles jugados por personas, dispositivos, u otros
  sistemas.
• No forman parte del sistema
• Inician la ejecución de los casos de uso

                                                        49
Actores

• Un usuario puede jugar diferentes roles.
• En la realización de un caso de uso pueden intervenir
  diferentes actores.
• Un actor puede intervenir en varios casos de uso.
• Identificar casos de uso mediante actores y eventos
  externos.
• Un actor necesita el caso de uso y/o participa en él.



                                                          50
Actores


A. Cockburn distingue dos tipos de actores:
– Primarios:
   Requieren al sistema el cumplimiento de un objetivo

– Secundarios:
   El sistema necesita de ellos para satisfacer un objetivo




                                                              51
Propiedades de los casos de uso

• Son iniciados por un actor con un objetivo en mente y es
  completado con éxito cuando el sistema lo satisface
       ¿y si el caso de uso se inicia automáticamente?
                ⇒ Actor “Sistema” o “Tiempo”
• Puede incluir secuencias alternativas que llevan al éxito y
  fracaso en la consecución del objetivo.
• El sistema es considerado como una “caja negra” y las
  interacciones se perciben desde fuera.
• El conjunto completo de casos de uso especifica todas las
  posibles formas de usar el sistema, esto es el
  comportamiento requerido.
                                                         52
Encontrar los casos de uso


• Es útil encontrar primero los actores
• Se puede diferenciar entre (Fowler):
   – Objetivos del usuario:
      “formatear un documento”
   – Interacciones del sistema:
     “def. un estilo”, “mover un estilo a otro doc.”
• Guía útil: primero buscar los objetivos del usuario, y
  luego cubrir cada objetivo con interacciones del
  sistema.
                                                           53
Casos de uso. Ejemplo


• Máquina de reciclado:
                                   Botes

                 Recibo
                                  Botellas
            Cajas de botellas




                                Extraído de (Jacobson 92)
                                                            54
Casos de uso. Ejemplo

Máquina de reciclado de botes, botellas y envases de plástico
  Como cada ítem tiene precios y dimensiones distintas el sistema debe
  identificar el tipo de ítem que acaba de recibir
  El sistema registra el número de ítems recibidos y, si el cliente pide
  un recibo, imprime el número de ítems recibidos, su tipo, los precios
  parciales y el total que será devuelto al cliente en la caja, al presentar
  ese recibo impreso
  Un operador puede, al final del día, solicitar un listado de todos los
  ítems recuperados ese día
  El operador también puede cambiar la información del sistema
  (precios, tipos, etc.)

                                                                       55
Casos de uso. Ejemplo

Primero determinar los actores: Usuario y Operador
Después determinar los objetivos de los actores:
        Usuario: puede devolver ítems (el CdU incluye desde la devolución de ítems a la impresión del recibo)
        Operador: puede pedir listado diario o bien modificar información de ítems




                                                                                     Modif.
                                                           Devolver
                                                                                     ítems
                                                            ítems




        Usuario
                                                             Listar                                         Operador
                                                             diario
Actor                     Asociación

                                                                                                                56
Escenarios y Casos de Uso

• Un caso de uso describe un conjunto de secuencias de
  interacciones o escenarios: flujo principal y flujos
  alternativos o excepcionales.
• Un escenario es una instancia de un caso de uso.
• Escenarios principales vs. Escenarios secundarios.
• Especificación con diagramas de secuencia.




                                                     57
Escenarios y Casos de Uso
     $$$




     Interactuar con
          ATM



CASO DE USO            ESCENARIO
Descripción de un caso de uso

• En cada momento de la especificación de cdu, una representación
  (Larman):
    – Descripción breve (párrafo en lenguaje natural)
    – Descripción informal (párrafo en lenguaje natural para escenario ppal. y
      alternativos)
    – Descripción completa (plantilla)
• Describir el flujo de eventos
    – Texto estructurado informal
    – Texto estructurado formal (pre y postcondiciones)
    – Notaciones gráficas: Diagramas de Secuencia

• Debe ser legible y comprensible para un usuario no experto.
• Debe indicarse: inicio y final, actores, objetos que fluyen, flujo principal y
   flujos excepcionales.
                                                                                 59
Descripción de un caso de uso

Comprar articulos (en un terminal de punto de venta)
Flujo Principal: Un cliente llega al TPV con un conjunto de articulos. El Cajero
registra los artículos y se genera un ticket. El cliente paga en efectivo y recoge los
artículos.

1. El cliente llega al TPV con los artículos.
2. El cajero registra el identificador de cada artículo.
3. El sistema obtiene el precio de cada artículo y añade la información a la
transacción de venta.
4. Al acabar el cajero indica la finalización de la introducción de artículos.
5. El sistema calcula el total de la compra y lo muestra.

                                                                                   60
Descripción de un caso de uso

Comprar articulos (en un terminal de punto de venta)

6. El Cajero le dice al cliente el total.
7. El cliente realiza el pago.
8. El cajero registra la cantidad de dinero recibida.
9. El sistema muestra la cantidad a retornar al cliente y genera un recibo.
10. El cajero deposita el dinero recibido y saca la cantidad a devolver que entrega al
cliente junto al ticket de compra.
11. El sistema almacena la compra completada.
12. El cliente recoge los artículos comprados.


                                                                                 61
Cajero              Comprar Articulos                Cliente



                                          :Sistema

         : Cajero
                introducirItem(upc,cantidad)

                      finalizarVenta()

                    hacerPago(cantidad)
Descripción de un caso de uso

     Validar Usuario (contexto de un cajero automático)
Flujo Principal: El sistema pide el NIP. El cliente lo introduce a través del teclado
y pulsa Enter. El sistema comprueba la validez del NIP. Si es válido el sistema acepta
la entrada y finaliza el caso de uso.

Flujo Excepcional: El cliente puede cancelar la transacción en cualquier
momento, pulsando el botón Cancelar, reiniciando el caso de uso.

Flujo Excepcional: Si el NIP introducido es inválido entonces se reinicia el caso
de uso. Si esto ocurre tres veces, el sistema cancela la transacción completa y se
queda con la tarjeta.


                                                                                 63
Diagrama de Casos de uso


          Reservar Libro        Prestamo revista


                                                       Profesor



         Prestamo Libro        Devolver revista




Socio


          Devolver libro     Actualizar catalogo
                                                   Bibliotecario




         Extender Prestamo                                         64
                                Consultar              Socio
Algunas consideraciones…


• Cdu “consulta”
• Cdu “CRUD”
  – Create/Read/Update/Delete
  – cdu “Manage X”
• ¿Son “universales” los cdu?
  – No (Larman 2003)
  – La “Especificación Suplementaria” puede completar
    la especificación de requisitos funcionales

                                                    65
Diagrama de Casos de Uso


                 Rellenar Pedido           Analizar Viabilidad



Cliente                                                            JefeTecnico

                  Cursar Pedido
                                          Ordenar Fabricacion




            Notificar Aceptacion Pedido   Planificar Produccion   JefeProduccion

Comercial



             Notificar Rechazo Pedido


    ⇒ ¿Son cdu del mismo nivel que los de la biblioteca?
                                                                                   66
Casos de uso y Colaboraciones

• Con un caso de uso se describe un comportamiento
  esperado del sistema, pero no se especifica cómo se
  implementa.
• Una caso de uso se implementa a través de una
  colaboración:
     “Sociedad de clases y otros elementos que colaborarán para
     realizar el comportamiento expresado en un caso de uso”
• Una colaboración tiene una parte estática (diagramas de
  clases) y una parte dinámica (diagramas de secuencia o de
  colaboración/comunicación).
                                                                  67
Casos de uso y Colaboraciones


caso de uso


                        colaboración
  Hacer Pedido


                         Gestión Pedidos
          realización


                                           68
Escenario del caso de uso “Realizar Compra”

    :                        : Interfaz Compra                               : CarroCompra                     : Producto
 Cliente


           iniciarCompra()
                                             nuevoCarroCompra(cliente)




           seleccProducto(cantidad)
                                          obtenerDescripcionDe(prod)
                                         cargarProd(cliente,prod,cantidad)




           confirmarCompra()
                                         confirmarCompraDe(cliente)
                                                                                      decremStock(cantidad)


                                                                                        Realizar para cada
                                                                                        producto incluido en
                                                                                        el carro de compra




                                                                                                                            69
Casos de uso y Colaboraciones


“El objetivo de la arquitectura del sistema es
encontrar el conjunto mínimo de colaboraciones
bien estructuradas, que satisfacen el
comportamiento especificado en todos los casos
de uso del sistema”



                                            70
Organización de Casos de uso

• Tres tipos de relaciones:
   – Generalización
      • Un c.d.u. hereda el comportamiento y significado de otro
   – Inclusión
      • Un c.d.u. base incorpora explícitamente el comportamiento de
        otro en algún lugar de su secuencia.
   – Extensión
      • Un c.d.u. base incorpora implícitamente el comportamiento de
        otro c.d.u. en el lugar especificado indirectamente por este
        otro c.d.u.
                                                                   71
Ejemplo
                                               Relación de extensión

                                 «extend»      Hacer Pedido
              Hacer Pedido                       Urgente
                                 (establecer
                                 prioridad)

                             «include»
                                                 Comprobar clave
Relación de
inclusión
                             Validar Usuario
                                                        Generalización

                       «include»
    Seguir Pedido                                Examinar retina


                                                                   72
Relación de inclusión

• Permite factorizar un comportamiento en un caso de
  uso aparte y evitar repetir un mismo flujo en diferentes
  casos de uso.
• Ejemplo caso de uso “Seguir Pedido”:
     “Obtener y verificar el número de pedido. Include (Validar
     usuario). Examinar el estado de cada parte del pedido y
     preparar un informe para el usuario”.




                                                                  73
Relación de extensión

• El caso de uso base incluye una serie de puntos de
  extensión.
• Sirve para modelar
   – la parte opcional del sistema
   – un subflujo que sólo se ejecuta bajo ciertas condiciones
   – varios flujos que se pueden insertar en un punto
• Ejemplo caso de uso “Hacer Pedido”:
     “ Include (Validar usuario). Recoger los items del pedido
     del usuario. (establecer prioridad). Enviar pedido para ser
     procesado.
                                                                   74
Obtención de casos de uso

1) Identificar los usuarios del sistema.
2) Encontrar todos los roles que juegan los
  usuarios y que son relevantes al sistema.
3) Para cada role identificar todas las formas
  (objetivos) de interactuar con el sistema.
4) Crea un caso de uso por cada objetivo.
5) Estructurar los casos de uso.
6) Revisar y validar con el usuario.
                                                 75
Plantilla para casos de uso (D. Coleman)
 Caso de Uso      identificador / historia
 Descripción      objetivo a conseguir
 Actores          lista de actores
 Asunciones       Condiciones que deben cumplirse
 Pasos            interacciones entre los actores y el
           sistema necesarias para obtener el objetivo
 Variaciones  (opcional) cualquier variación en los pasos
 No-funcional (opcional) lista requisitos no funcionales
 Cuestiones   Lista de cuestiones que permanecen por
           resolver                                         76
Plantilla para casos de uso (D. Coleman)
 Ejemplo campo “pasos”:
 1. Operador es notificado de problema en la red
 2. Operador inicia una sesión de reparación
 3. REPETIR
      3.1. Operador ejecuta aplicación diagnósticos en la red.
      3.2. Operador identifica elementos que deben cambiarse        y
 sus nuevos valores para los parámetros.
      3.3. EN PARALELO
              3.3.1. Ingeniero mantenimiento comprueba elementos
      en la red ||
              3.3.2. Ingeniero mantenimiento envía informe fallo
      4. Operador cierra sesión
                                                                   77
Plantilla para casos de uso (D. Coleman)
 Relación de uso: PERFORM c.d.u.
 Relación de extensión:
 Caso de uso extensión id. c.d.u. extends id. c.d.u.
 Cambio               objetivo que debe conseguirse
 Pasos                ...
 Variaciones          ...
 No funcional         ...
 Cuestiones           ...

                                                       78
Ejemplo

Caso de Uso           Ordenar Fabricación

Descripción           Se crearán órdenes de trabajo para cada producto solicitado en el pedido, y serán enviadas al jefe de
                      producción para su planificación.
Actores               Jefe técnico
Asunciones            -     Es viable la fabricación de cada producto solicitado en el pedido.
                      -     Existe una plantilla de fabricación para cada producto solicitado.
Pasos                 1. REPETIR
                              1.1 Obtener un producto del pedido.
                              1.2 Buscar la plantilla de fabricación asociada al producto.
                              1.3 Crear la orden de trabajo.
                              1.4 Almacenar la orden de trabajo con el estado pendiente.
Variaciones           -
Req. No Funcionales   -
Cuestiones            -




                                                                                                                       79
Plantilla Caso de Uso (A. Cockburn)


  Sistema                     Compañía Seguros
  Actor principal             Asegurado
  Objetivo                    Cobrar seguro accidente

1. Asegurado envía reclamación
2. Compañía verifica que asegurado tiene una póliza válida
3. Compañía asigna agente
4. Agente verifica todos los detalles son conformes el contrato
5. La compañía paga al asegurado


                                                                  80
Plantilla Caso de Uso (A. Cockburn)

Extensiones
   1a. Datos del parte incompletos
         1a1. Compañía requiere datos
         1a2. Asegurado envía datos
   2a. Asegurado no tiene una póliza válida
         2a1. Compañía rechaza reclamación, avisa
         al asegurado.
   3a. No hay agentes disponibles
         3a1. ¿qué hace la compañia?
   ….
                                                    81
Plantilla Caso de Uso (A. Cockburn)
Variaciones
   1. Asegurado
         a) una persona
         b) otra compañía de seguros
         c) el gobierno
   2. Pago
         a) transferencia
         b) dinero en efectivo
         c) cheque


                                       82
¿Por qué casos de uso?

• “Ofrecen un medio sistemático e intuitivo para capturar
  los requisitos funcionales, centrándose en el valor añadido
  para el usuario”
• Dirigen todo el proceso de desarrollo puesto que la
  mayoría de actividades (planificación, análisis, diseño,
  validación, test,..) se realizan a partir de los casos de uso.
• Mecanismo importante para soportar “trazabilidad” entre
  modelos.

                                                             83
Crítica a los casos de uso              (B.Meyer, E. Berard)



• Los casos de uso no son adecuados en el modelado
  orientado a objetos porque:
i) Favorecen un enfoque funcional, basado en procesos
ii) Se centran en secuencias de acciones
iii) Se basan en los escenarios actuales del sistema

    “Solo deben ser usados por equipos expertos en
                       desarrollo OO”
• Utiles para validación

                                                               84
Utilidad de los casos de uso

• Hay consenso en considerar casos de uso como
  esenciales para capturar requisitos y guiar el modelado.
• Pero existe mucha confusión sobre cómo usarlos.
• Diferentes opiniones sobre el número de casos de uso
  conveniente:
   – 20 para un proyecto 10 personas/año (Jacobson)
   – 100 para un proyecto 10 personas/año (Fowler)
   – depende de la granularidad



                                                        85
Granularidad                  (M. Fowler)


• Diferente granularidad
• Un caso de uso puede describir:
   – Un objetivo o propósito del usuario
   – Una interacción con el sistema
• Un objetivo implica una o más interacciones.
• Primero construir un caso de uso por cada objetivo del
  usuario.
• Después escribir casos de uso para cada interacción
  que corresponda a un objetivo.
                                                      86
Granularidad          (A. Cockburn)


• Organización
  – Objetivo estratégico para la empresa, de mucho
    valor
• Sistema (objetivo del usuario)
  – Funcionalidad del sistema, tarea del usuario o
    “proceso de negocio elemental”
• Subfunciones
  – Un paso en la descripción de un caso de uso
    (validar, buscar, log on)

                                                87
Tipos de casos de uso                     (Larman)


• Descripción breve, informal o completa
   – Descripción muy general o “conversación” entre actor y
     sistema.
• Primarios, Secundarios u Opcionales
   – Según su importancia en el sistema
• Esenciales vs. Reales
   – Según su grado de abstracción
   – Un caso de uso real describe el proceso en términos de su
     diseño actual, teniendo en cuenta tecnología de E/S.

                                                            88
Recomendaciones (E. Berard)

• Un caso de uso no debe considerar cuestiones de
  implementación.
• Conveniencia de una herramienta para la gestión de los
  casos de uso.
• Encontrar contradicciones entre casos de uso.
• Preocupación por mantener la validez y consistencia del
  conjunto de casos de uso.
• ¿Cómo se comprueba que los casos de uso incluyen toda
  la funcionalidad del sistema?
                                                      89
Recomendaciones (E. Berard)

• Cada compañía debe tener un manual sobre uso de los
  casos de uso.
• ¿A qué nivel de detalle se describe un caso de uso?
• ¿Qué granularidad es apropiada para un caso de uso?
   – “Pinchar botón”, “Añadir Empleado”,.. ¿son casos de uso?




                                                                90
Recomendaciones               (M. Fowler)


• Cuidado con el empleo de la relación “uses”
   ¡NO HAGAS UNA DESCOMPOSICION FUNCIONAL!
• No abusar de la estructuración de casos de uso
• No es necesario aplicar la abstracción
   – ¡USA CASOS DE USO CONCRETOS!




                                                   91
Recomendaciones                A. Pols


• Primero establecer los objetivos del proyecto.
• Después identificar actores y sus responsabilidades, y las
  tareas que ejecutan son los casos de uso.
• Contrastar casos de uso frente a los objetivos.
• Cuidado con la ambigüedad
• No profundizar en la descripción de un caso de uso
• No te preocupes en exceso de la notación


                                                        92
Recomendaciones             (A. Pols)


• Evita redes complicadas de casos de uso: Cuidado con
  las relaciones include y extend.
• No considerar la interfaz del usuario
• Los casos de uso sólo consideran los requisitos
  funcionales del proyecto, hay que añadir los no
  funcionales.




                                                   93
Especificación de requisitos


• La ERS (Especificación de Requisitos del Software)
  puede estar formada por:
  – Diagrama de casos de uso
  – Modelo del dominio (modelo conceptual)
  – (Para cada caso de uso)
    Descripción textual (usando una plantilla)
    Descripciones de las interfaces de usuario
  – Requisitos no funcionales
                                                 94
Casos de Uso y Componentes

• Pensar en componentes lo antes posible
   – Ahorrar esfuerzo
   – Negociar los requisitos
• Si se producen componentes
   – Asociarle su propio caso de uso




                                           95

Weitere ähnliche Inhalte

Was ist angesagt?

Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentesmarianela0393
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controladorEmilio Sarabia
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria webMirsha01
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosLuis Yallerco
 
Csma cd
Csma cdCsma cd
Csma cd1 2d
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 
Curso Uml 2.5 Diagramas De ImplementacióN
Curso Uml   2.5 Diagramas De ImplementacióNCurso Uml   2.5 Diagramas De ImplementacióN
Curso Uml 2.5 Diagramas De ImplementacióNEmilio Aviles Avila
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasanibalsmit
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridadJ M
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosJosé Antonio Sandoval Acosta
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetosyolandacando1
 
Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3UV
 
UML: Diagrama de caso de uso
UML: Diagrama de caso de usoUML: Diagrama de caso de uso
UML: Diagrama de caso de usoElvin Hernandez
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoMarvin Zumbado
 

Was ist angesagt? (20)

UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentes
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Metodologiasad 1
Metodologiasad 1Metodologiasad 1
Metodologiasad 1
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Diagramas de Casos de Uso del Negocio y del Sistema
 Diagramas de Casos de Uso del Negocio y del Sistema Diagramas de Casos de Uso del Negocio y del Sistema
Diagramas de Casos de Uso del Negocio y del Sistema
 
Csma cd
Csma cdCsma cd
Csma cd
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Curso Uml 2.5 Diagramas De ImplementacióN
Curso Uml   2.5 Diagramas De ImplementacióNCurso Uml   2.5 Diagramas De ImplementacióN
Curso Uml 2.5 Diagramas De ImplementacióN
 
SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?
 
Arquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capasArquitectura de cliente-servidor de tres capas
Arquitectura de cliente-servidor de tres capas
 
Programando en capas
Programando en capasProgramando en capas
Programando en capas
 
Unidad 6 Protección y seguridad
Unidad 6 Protección y seguridadUnidad 6 Protección y seguridad
Unidad 6 Protección y seguridad
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Metodología orientadas a objetos
Metodología orientadas a objetosMetodología orientadas a objetos
Metodología orientadas a objetos
 
Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3Manejador De Bases De Datos Eq 3
Manejador De Bases De Datos Eq 3
 
UML: Diagrama de caso de uso
UML: Diagrama de caso de usoUML: Diagrama de caso de uso
UML: Diagrama de caso de uso
 
Uml lenguaje unificado de modelado
Uml lenguaje unificado de modeladoUml lenguaje unificado de modelado
Uml lenguaje unificado de modelado
 

Ähnlich wie Capitulo01p01 (20)

Teoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoTeoria del modelado de objetos modificado
Teoria del modelado de objetos modificado
 
Clase03 m sw
Clase03 m swClase03 m sw
Clase03 m sw
 
UML - Analisis de Sistemas
UML - Analisis de SistemasUML - Analisis de Sistemas
UML - Analisis de Sistemas
 
Uml
UmlUml
Uml
 
UML
UMLUML
UML
 
Modelado, Ingenieria de Software
Modelado, Ingenieria de SoftwareModelado, Ingenieria de Software
Modelado, Ingenieria de Software
 
Desarrollo de uml
Desarrollo de umlDesarrollo de uml
Desarrollo de uml
 
Generacion en los diferentes diagramas de uml
Generacion en los diferentes diagramas de uml Generacion en los diferentes diagramas de uml
Generacion en los diferentes diagramas de uml
 
UML
UMLUML
UML
 
Uml
UmlUml
Uml
 
Uml
UmlUml
Uml
 
Curso uml-clase-01-1211931122395265-9
Curso uml-clase-01-1211931122395265-9Curso uml-clase-01-1211931122395265-9
Curso uml-clase-01-1211931122395265-9
 
Camtasia Getting Started Guide
Camtasia Getting Started GuideCamtasia Getting Started Guide
Camtasia Getting Started Guide
 
Nesii
NesiiNesii
Nesii
 
analisis y diseño 2.pdf
analisis y diseño 2.pdfanalisis y diseño 2.pdf
analisis y diseño 2.pdf
 
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
El Proceso UML. Ing. de Sistemas 7° Semestre " UNEFA"
 
Diagramas uml(1)
Diagramas uml(1)Diagramas uml(1)
Diagramas uml(1)
 
Curso Uml 1 Introduccion
Curso Uml   1 IntroduccionCurso Uml   1 Introduccion
Curso Uml 1 Introduccion
 
Curso Uml 1 Introduccion
Curso Uml   1 IntroduccionCurso Uml   1 Introduccion
Curso Uml 1 Introduccion
 
Ut5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de usoUt5. introduccion a uml. casos de uso
Ut5. introduccion a uml. casos de uso
 

Mehr von Francisco Godoy

Unidad I Introduccion Finanzas
Unidad I Introduccion FinanzasUnidad I Introduccion Finanzas
Unidad I Introduccion FinanzasFrancisco Godoy
 
Unidad I Valor De Las Personas En La OrganizacióN
Unidad I   Valor De Las Personas En La OrganizacióNUnidad I   Valor De Las Personas En La OrganizacióN
Unidad I Valor De Las Personas En La OrganizacióNFrancisco Godoy
 
Unidad 6 Evaluacion De Resultados
Unidad 6  Evaluacion De ResultadosUnidad 6  Evaluacion De Resultados
Unidad 6 Evaluacion De ResultadosFrancisco Godoy
 
Unidad 5 Implementacion De La Estrategia
Unidad 5  Implementacion De La EstrategiaUnidad 5  Implementacion De La Estrategia
Unidad 5 Implementacion De La EstrategiaFrancisco Godoy
 
Unidad 2 Mision Y Vision
Unidad 2   Mision Y VisionUnidad 2   Mision Y Vision
Unidad 2 Mision Y VisionFrancisco Godoy
 
Unidad 3 Determinar Objetivos
Unidad 3  Determinar ObjetivosUnidad 3  Determinar Objetivos
Unidad 3 Determinar ObjetivosFrancisco Godoy
 
Reclutamiento De Personal
Reclutamiento De PersonalReclutamiento De Personal
Reclutamiento De PersonalFrancisco Godoy
 
Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4Francisco Godoy
 
Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2Francisco Godoy
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Francisco Godoy
 
Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1Francisco Godoy
 
SeleccióN%20del%20personal
SeleccióN%20del%20personalSeleccióN%20del%20personal
SeleccióN%20del%20personalFrancisco Godoy
 

Mehr von Francisco Godoy (20)

Unidad I Introduccion Finanzas
Unidad I Introduccion FinanzasUnidad I Introduccion Finanzas
Unidad I Introduccion Finanzas
 
Unidad I Amortizaci N
Unidad I Amortizaci NUnidad I Amortizaci N
Unidad I Amortizaci N
 
Unidad I Valor De Las Personas En La OrganizacióN
Unidad I   Valor De Las Personas En La OrganizacióNUnidad I   Valor De Las Personas En La OrganizacióN
Unidad I Valor De Las Personas En La OrganizacióN
 
Unidad 6 Evaluacion De Resultados
Unidad 6  Evaluacion De ResultadosUnidad 6  Evaluacion De Resultados
Unidad 6 Evaluacion De Resultados
 
Unidad 5 Implementacion De La Estrategia
Unidad 5  Implementacion De La EstrategiaUnidad 5  Implementacion De La Estrategia
Unidad 5 Implementacion De La Estrategia
 
Unidad 4 Estrategia
Unidad 4  EstrategiaUnidad 4  Estrategia
Unidad 4 Estrategia
 
Unidad 2 Mision Y Vision
Unidad 2   Mision Y VisionUnidad 2   Mision Y Vision
Unidad 2 Mision Y Vision
 
Unidad 3 Determinar Objetivos
Unidad 3  Determinar ObjetivosUnidad 3  Determinar Objetivos
Unidad 3 Determinar Objetivos
 
Reclutamiento De Personal
Reclutamiento De PersonalReclutamiento De Personal
Reclutamiento De Personal
 
Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4Presen Clases Bdd Unidad 4
Presen Clases Bdd Unidad 4
 
Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2Presen Clases Bdd Unidad 2
Presen Clases Bdd Unidad 2
 
Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3Presen Clases Bdd Unidad 3
Presen Clases Bdd Unidad 3
 
Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1Presen Clases Bdd Unidad 1
Presen Clases Bdd Unidad 1
 
Mercado De Capitales
Mercado De CapitalesMercado De Capitales
Mercado De Capitales
 
El Sistema Financiero
El Sistema FinancieroEl Sistema Financiero
El Sistema Financiero
 
Caso De Uso Sia Ii
Caso De Uso Sia IiCaso De Uso Sia Ii
Caso De Uso Sia Ii
 
Anualidades Anticipadas
Anualidades AnticipadasAnualidades Anticipadas
Anualidades Anticipadas
 
Anualidades
AnualidadesAnualidades
Anualidades
 
SeleccióN%20del%20personal
SeleccióN%20del%20personalSeleccióN%20del%20personal
SeleccióN%20del%20personal
 
Uml Apoyo
Uml ApoyoUml Apoyo
Uml Apoyo
 

Kürzlich hochgeladen

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Kürzlich hochgeladen (16)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Capitulo01p01

  • 1. Construcción de Software Capítulo 1 El Lenguaje Unificado de Modelado, UML
  • 2. Capítulo 1. Estructura Presentación de UML Necesidad del modelado Modelado de casos de Uso Diagrama de casos de uso Modelado estructural Diagrama de clases Paquetes Vistas de UML Modelado dinámico Diagramas de interacción 2
  • 3. Capítulo 1. Estructura (II) Modelado de flujos de trabajo Diagramas de actividades Modelado del estado Máquinas de estado Modelado de la implementación Diagramas de componentes Diagramas de despliegue Colaboraciones OCL (Object Constraint Language) 3
  • 4. Capítulo 1. Bibliografía • [Booch et al. 99] Booch, G. et al. quot;El lenguaje unificado de modeladoquot;, Addison-Wesley, 1999. • [Larman 02] Larman, C. “UML y Patrones: Una introducción al análisis y diseño orientado a objetos y al proceso unificado”, Segunda Edición, Prentice-Hall, 2002. 4
  • 5. El lenguaje unificado de modelado, UML • A mediados de los noventa existían muchos métodos de análisis y diseño OO. – Mismos conceptos con distinta notación. – Mucha confusión. – “Guerra de los métodos” • En 1994, Booch, Rumbaugh (OMT) y Jacobson (Objectory/OOSE) deciden unificar sus métodos: Unified Modeling Language (UML) • Proceso de estandarización promovido por el OMG 5
  • 6. El consorcio OMG •Rational Software •ICON Computing •Oracle •i-Logix •IBM •ObjectTime •DEC •Platinum Technology •Microsoft •Petch •Hewlett-Packard •Taskon A/S •Sterling Software •Reich Technologies •MCI Systemhouse •Softeam •Unisys .... •IntelliCorp
  • 7. Cómo se creó UML De “Introduction to the Unified Modeling Language”, Terry Quatrani, UML, http://www.rational.com/media/uml/intro_rd n.pdf
  • 8. Las raíces técnicas de UML • OMT - Object Modeling Technique (Rumbaugh et al.) – especialmente bueno para análisis de datos de SI – entre otros, usa extensiones de los diagramas ER • Método-Booch (G. Booch) – especialmente útil para sistemas concurrentes y de tiempo real – fuerte relación con lenguajes de programación, como Ada • OOSE - Object-Oriented Software Engineering (I. Jacobson) – desarrollo guiado por los use cases – buen soporte de Ingeniería de Requisitos e Ingeniería de Información – Modelado y simulación de sistemas de telecomunicaciones • UML unifica estos conceptos e introduce otros nuevos
  • 9. Evolución de UML Diciembre’04- OMG adopta UML 2.0 UML 2.0 Marzo’03- OMG adopta UML 1.5 UML 1.5 Junio’99- OMG adopta UML 1.3 UML 1.3
  • 10. Los rivales de UML • Otras propuestas enviadas a OMG – Catalysis (D. D’Souza, A. Willis) – Syntropy (S. Cook et al., IBM) – OML/Open (B. Henderson-Sellers) – Fusion (D. Coleman, HP)
  • 11. UML aglutina otros enfoques Rumbaugh Booch Jacobson Odell Meyer Pre- and Post-conditions Shlaer-Mellor UML Object life cycles Harel State Charts Gamma et. al. Frameworks, patterns, notes Embly Wirfs-Brock Singleton classes Responsabilities Fusion Operation descriptions, message numbering 11 (Tomada de www.dsic.upv.es/~uml)
  • 12. Ventajas de la unificación • Reunir los puntos fuertes de cada método • Idear nuevas mejoras • Proporcionar estabilidad al mercado – Proyectos basados en un lenguaje maduro – Aparición de potentes herramientas • Eliminar confusión en los usuarios 12
  • 13. Objetivos en el diseño de UML • Modelar sistemas, desde los requisitos hasta los artefactos ejecutables, utilizando técnicas OO. • Cubrir las cuestiones relacionadas con el tamaño propias de los sistemas complejos y críticos. • Lenguaje utilizable por las personas y las máquinas • Encontrar equilibrio entre expresividad y simplicidad. 13
  • 14. UML y el modelado UML es un lenguaje para visualizar, especificar, construir y documentar los artefactos (modelos) de un sistema que involucra una gran cantidad de software, desde una perspectiva OO. • UML es una notación, no es un proceso • Se están definiendo muchos procesos para UML. • Rational ha ideado RUP, “Proceso Unificado de Rational”. • Utilizable para sistemas que no sean software 14
  • 15. ¿Por qué modelamos? “Una empresa software con éxito es aquella que produce de manera consistente software de calidad que satisface las necesidades de los usuarios” “El modelado es la parte esencial de todas las actividades que conducen a la producción de software de calidad” 15
  • 16. ¿Por qué modelamos? “Un modelo es una simplificación de la realidad” • Construimos modelos para comprender mejor el sistema que estamos desarrollando • Cuatro utilidades de los modelos: – Visualizar cómo es o queremos que sea el sistema – Especificar la estructura y comportamiento del sistema – Proporcionan plantillas que guían la construcción del sistema – Documentan las decisiones • “Equivalen a los planos de un edificio” 16
  • 17. Principios del modelado • La elección de los modelos tiene una profunda influencia sobre cómo se acomete el problema y se moldea la solución. • Todo modelo puede expresarse a diferentes niveles de detalle y usarse en diferentes momentos del ciclo de vida. • Todo modelo debe estar ligado a la realidad. • Un único modelo no es suficiente. Cualquier sistema no trivial se aborda mejor a través de un pequeño conjunto de modelos casi independientes, que muestran distintos aspectos. 17
  • 18. ¿Por qué las empresas no hacen modelado? • La mayor parte de las empresas software no realizan ningún modelado. • El modelado requiere: – aplicar un proceso de desarrollo – formación del equipo en la técnicas – tiempo • ¿Se obtienen beneficios con el modelado? 18
  • 19. ¿Problemas en el desarrollo de software? • Retrasos en los plazos • Proyectos cancelados • Rápido deterioro del sistema instalado • Tasa de defectos o fallos • Requisitos mal comprendidos • Cambios frecuentes en el dominio del problema • Muchas de las interesantes características del software no proporcionan beneficios al cliente ¿Modelado es la solución? 19
  • 20. Utilidad del modelado ¿Escribimos código directamente? • Se facilita la comunicación entre el equipo al existir un lenguaje común. • Se dispone de documentación que trasciende al proyecto. • Hay estructuras que trascienden lo representable en un lenguaje de programación. 20
  • 21. Utilidad de UML • Permite especificar todas las decisiones de análisis, diseño e implementación, construyéndose modelos precisos, no ambiguos y completos. • UML puede conectarse a lenguajes de programación: – Ingeniería directa e inversa • Permite documentar todos los artefactos de un proceso de desarrollo (requisitos, arquitectura, pruebas, versiones,..) 21
  • 22. Metamodelo UML • ¿Cómo se expresa la semántica del modelo? – Informalmente – Formalmente • El metamodelo UML define la notación de un modo riguroso, a través de diagramas de la propia notación y con OCL (Object Constraint Language). 22
  • 23. Metamodelo UML: Ejemplo Relación Generalización Asociacion 1 ordered 2..* Role de asociación 23
  • 24. Cómo se organiza UML Estructurales, Comportamiento, Elementos Agrupación (paquetes), Anotación (notas, comentarios) • Bloques básicos Dependencia, Asociación Relaciones (Agregación), Generalización, de construcción Realización Clases, Objetos, Casos de Uso, Diagramas Secuencia, Colaboración, Actividad, Statecharts, Componentes, Despliegue UML • Reglas de uso Nombres, Alcance, Visibilidad, Integridad, Ejecución Especificaciones, Dicotomía, • Mecanismos Adornos (detalles), Mecanismos Comunes de Extensibilidad
  • 25. Modelo Conceptual de UML • Bloques básicos de construcción – Elementos • Estructurales, Comportamiento, Agrupación, Anotación – Relaciones – Diagramas • Reglas para combinar bloques – Establecen qué es un modelo bien formado • Mecanismos comunes 25
  • 26. Elementos Estructurales • Partes estáticas de un modelo Ventana <<Interface>> origen IAvisable tamaño IAvisable abrir() cerrar() mover() Interface dibujar() clase ValidarTransaccion caso de uso 26
  • 27. Elementos Estructurales Gestor Eventos clase activa (UML 1.X) Hola Mundo.class suspender() vaciarCola() colaboración componente (UML 1.X) Servidor Gestión Pedidos nodo 27
  • 28. Elementos de Comportamiento Son las partes dinámicas de UML. Interacción Conjunto de mensajes intercambiados entre un conjunto de objetos con un propósito particular. dibujar mensaje 28
  • 29. Elementos de Comportamiento Son las partes dinámicas de UML. Máquina de estados Secuencia de estados por las que pasa un objeto durante su vida en respuesta a eventos. activado estado 29
  • 30. Elementos de Agrupación Son las partes organizativas de los modelos UML Modelo del Negocio Paquete Un paquete incluye un conjunto de elementos de cualquier naturaleza. Tiene una naturaleza conceptual. 30
  • 31. Elementos de Anotación Son las partes explicativas de los modelos UML Retorna 0 si no Nota existe el valor 31
  • 32. Relaciones Dependencias 0..1 * Asociaciones patron empleado Generalizaciones Realización 32
  • 33. Diagramas de UML • Diagramas de Casos de Uso • Diagramas de Clases • Diagramas de Objetos • Diagramas de Interacción – Diagrama de Secuencia – Diagrama de Colaboración (Comunicación en UML 2.0) • Diagramas de Estados • Diagramas de Actividades • Diagramas de Componentes • Diagramas de Despliegue • Composite Structure Diagram (UML 2.0) • Package Diagram (UML 2.0) • Interaction Overview Diagram (UML 2.0) • Timing Diagram (UML 2.0) http://www.agilemodeling.com/essays/umlDiagrams.htm 33
  • 34. Diagramas de UML State State Use Case Diagrams de Diagramas Use Case Diagrams State Use Case Diagrams de Diagramas Clases State Use Case Diagrams Diagrams de Diagramas Diagrams de Diagramas Casos de Uso Diagrams Diagrams Objetos Secuencia Estructural Comportamiento Interacción Scenario State Scenario State Diagrams de Diagramas Diagrams de Diagramas Diagrams Diagrams Colaboración Modelo Componentes Implementación Scenario Component Scenario Component Diagramas de Diagrams Diagrams de Diagramas Diagrams Diagrams Despliegue Estados Diagramas de Actividad
  • 35. Reglas de uso de UML • Especifican cómo construir modelos bien formados (auto consistentes y en armonía con otros modelos relacionados) • Proporcionan reglas semánticas para: – Nombres (a qué se puede llamar elementos, relaciones y diagramas) – Alcance (contexto que da significado específico a un nombre) – Visibilidad (cómo los nombres pueden ser vistos y usados por otros) – Integridad (cómo los elementos se relacionan entre sí de forma consistente) – Ejecución (significado de simular o ejecutar un modelo dinámico) • Puede ser necesario trabajar con modelos “mal formados”: – Con omisiones (incluso intencionadamente, para simplificar las vistas) – Incompletos (faltan aún elementos, relaciones por identificar) – Inconsistentes (no se garantiza la integridad del modelo)
  • 36. Mecanismos comunes de UML • Especificaciones – Explicación textual de la sintaxis y la semántica de un bloque de construcción – Proporcionan una base semántica para cada elemento – Los diagramas son proyecciones (o vistas parciales) de esa base • Adornos – La notación gráfica básica de cada elemento puede incluir adornos textuales o gráficos para resaltar algunas propiedades de la especificación. 36
  • 37. Mecanismos comunes de UML • Divisiones Comunes – Dicotomía clasificador /instancia Persona Elena nombre direccion telefono Elena : Persona : Persona 37
  • 38. Mecanismos comunes de UML • Divisiones Comunes – Dicotomía interfaz / implementación asistente Ortografico.dll IOrtografia 38
  • 39. Mecanismos comunes de UML • Mecanismos de extensibilidad – Estereotipos • Extienden el vocabulario de UML, permitiendo añadir nuevos tipos de bloques de construcción – Valores etiquetados • Extienden las propiedades de un bloque de construcción, añadiendo nueva información – Restricciones • Extiende la semántica de un bloque, añadiendo reglas o modificando las existentes. 39
  • 40. Mecanismos de extensibilidad de UML valor etiquetado estereotipo ColaEventos {version 3.2; autor: jgm} añadir() <<Exception>> quitar() Overflow vaciar() {ordenado} restricción 40
  • 41. Perfiles de UML • “Profiles” (perfiles) de UML – Conjuntos pre definidos de estereotipos, valores etiquetados, restricciones e iconos de la notación que juntos especializan y adaptan UML a un dominio (modelado de negocios) o procesos específicos ( como Rational Unified Process) 41
  • 42. Modelado de Casos de Uso • Un caso de uso especifica el comportamiento deseado del sistema. • Representan los requisitos funcionales del sistema. “Un caso de uso especifica una secuencia de acciones, incluyendo variantes, que el sistema puede ejecutar y que produce un resultado observable de valor para un particular actor” • Describen qué hace el sistema, no cómo lo hace. 42
  • 43. Modelado de Casos de uso • Técnica de recolección y especificación de requisitos. • Fáciles de comprender/validar por los usuarios. • Guían todo el proceso de desarrollo. • Ayudan a la planificación/desarrollo incremental. • Tradicionalmente ligados a la OO – pero no obligatorio • Ayudan a determinar la interfaz de usuario. 43
  • 44. Éxito de los casos de uso • Concebidos por I. Jacobson - Objectory/OOSE (Jacobson et al. 92) • Presentes en casi cualquier nuevo método de desarrollo de software. • Incluidos en UML y Métrica 3. • Fuerte actividad investigadora en los últimos años. 44
  • 45. Ejemplo Caso de Uso actor caso de uso Procesar Préstamo ResponsablePrestamos asociacion 45
  • 46. Ejemplo de Casos de uso Efectuar llamada <<extend>> Realizar llamada de conferencia Red telefónica Recibir llamada telefónica <<extend>> Recibir llamada adicional Usar agenda Teléfono móvil Usuario (Booch et al. 99) 46
  • 47. Ejemplo de Casos de Uso Emisor Centralita Receptor Emisor_listo Tono Efectuar_llamada Marca_número Tono_sonando Timbre_sonando Telefono_cogido Para_tono Para_timbre ESCENARIO CASO DE USO 47
  • 48. Otras definiciones de caso de uso • “Describe un conjunto de interacciones entre actores externos y el sistema en consideración orientadas a satisfacer un objetivo de un actor”. [D. Bredemeyer] • “Es una colección de posibles secuencias de interacciones entre el sistema en discusión y sus actores externos, relacionado con un objetivo particular”. [A. Cockburn] • “Es una descripción de un conjunto de secuencias de acciones, incluyendo variantes, que ejecuta un sistema para producir un resultado observable de valor para un actor” [UML] 48
  • 49. Actores Un actor representa un conjunto coherente de roles que juegan los usuarios de los casos de uso al interaccionar con el sistema. • Roles jugados por personas, dispositivos, u otros sistemas. • No forman parte del sistema • Inician la ejecución de los casos de uso 49
  • 50. Actores • Un usuario puede jugar diferentes roles. • En la realización de un caso de uso pueden intervenir diferentes actores. • Un actor puede intervenir en varios casos de uso. • Identificar casos de uso mediante actores y eventos externos. • Un actor necesita el caso de uso y/o participa en él. 50
  • 51. Actores A. Cockburn distingue dos tipos de actores: – Primarios: Requieren al sistema el cumplimiento de un objetivo – Secundarios: El sistema necesita de ellos para satisfacer un objetivo 51
  • 52. Propiedades de los casos de uso • Son iniciados por un actor con un objetivo en mente y es completado con éxito cuando el sistema lo satisface ¿y si el caso de uso se inicia automáticamente? ⇒ Actor “Sistema” o “Tiempo” • Puede incluir secuencias alternativas que llevan al éxito y fracaso en la consecución del objetivo. • El sistema es considerado como una “caja negra” y las interacciones se perciben desde fuera. • El conjunto completo de casos de uso especifica todas las posibles formas de usar el sistema, esto es el comportamiento requerido. 52
  • 53. Encontrar los casos de uso • Es útil encontrar primero los actores • Se puede diferenciar entre (Fowler): – Objetivos del usuario: “formatear un documento” – Interacciones del sistema: “def. un estilo”, “mover un estilo a otro doc.” • Guía útil: primero buscar los objetivos del usuario, y luego cubrir cada objetivo con interacciones del sistema. 53
  • 54. Casos de uso. Ejemplo • Máquina de reciclado: Botes Recibo Botellas Cajas de botellas Extraído de (Jacobson 92) 54
  • 55. Casos de uso. Ejemplo Máquina de reciclado de botes, botellas y envases de plástico Como cada ítem tiene precios y dimensiones distintas el sistema debe identificar el tipo de ítem que acaba de recibir El sistema registra el número de ítems recibidos y, si el cliente pide un recibo, imprime el número de ítems recibidos, su tipo, los precios parciales y el total que será devuelto al cliente en la caja, al presentar ese recibo impreso Un operador puede, al final del día, solicitar un listado de todos los ítems recuperados ese día El operador también puede cambiar la información del sistema (precios, tipos, etc.) 55
  • 56. Casos de uso. Ejemplo Primero determinar los actores: Usuario y Operador Después determinar los objetivos de los actores: Usuario: puede devolver ítems (el CdU incluye desde la devolución de ítems a la impresión del recibo) Operador: puede pedir listado diario o bien modificar información de ítems Modif. Devolver ítems ítems Usuario Listar Operador diario Actor Asociación 56
  • 57. Escenarios y Casos de Uso • Un caso de uso describe un conjunto de secuencias de interacciones o escenarios: flujo principal y flujos alternativos o excepcionales. • Un escenario es una instancia de un caso de uso. • Escenarios principales vs. Escenarios secundarios. • Especificación con diagramas de secuencia. 57
  • 58. Escenarios y Casos de Uso $$$ Interactuar con ATM CASO DE USO ESCENARIO
  • 59. Descripción de un caso de uso • En cada momento de la especificación de cdu, una representación (Larman): – Descripción breve (párrafo en lenguaje natural) – Descripción informal (párrafo en lenguaje natural para escenario ppal. y alternativos) – Descripción completa (plantilla) • Describir el flujo de eventos – Texto estructurado informal – Texto estructurado formal (pre y postcondiciones) – Notaciones gráficas: Diagramas de Secuencia • Debe ser legible y comprensible para un usuario no experto. • Debe indicarse: inicio y final, actores, objetos que fluyen, flujo principal y flujos excepcionales. 59
  • 60. Descripción de un caso de uso Comprar articulos (en un terminal de punto de venta) Flujo Principal: Un cliente llega al TPV con un conjunto de articulos. El Cajero registra los artículos y se genera un ticket. El cliente paga en efectivo y recoge los artículos. 1. El cliente llega al TPV con los artículos. 2. El cajero registra el identificador de cada artículo. 3. El sistema obtiene el precio de cada artículo y añade la información a la transacción de venta. 4. Al acabar el cajero indica la finalización de la introducción de artículos. 5. El sistema calcula el total de la compra y lo muestra. 60
  • 61. Descripción de un caso de uso Comprar articulos (en un terminal de punto de venta) 6. El Cajero le dice al cliente el total. 7. El cliente realiza el pago. 8. El cajero registra la cantidad de dinero recibida. 9. El sistema muestra la cantidad a retornar al cliente y genera un recibo. 10. El cajero deposita el dinero recibido y saca la cantidad a devolver que entrega al cliente junto al ticket de compra. 11. El sistema almacena la compra completada. 12. El cliente recoge los artículos comprados. 61
  • 62. Cajero Comprar Articulos Cliente :Sistema : Cajero introducirItem(upc,cantidad) finalizarVenta() hacerPago(cantidad)
  • 63. Descripción de un caso de uso Validar Usuario (contexto de un cajero automático) Flujo Principal: El sistema pide el NIP. El cliente lo introduce a través del teclado y pulsa Enter. El sistema comprueba la validez del NIP. Si es válido el sistema acepta la entrada y finaliza el caso de uso. Flujo Excepcional: El cliente puede cancelar la transacción en cualquier momento, pulsando el botón Cancelar, reiniciando el caso de uso. Flujo Excepcional: Si el NIP introducido es inválido entonces se reinicia el caso de uso. Si esto ocurre tres veces, el sistema cancela la transacción completa y se queda con la tarjeta. 63
  • 64. Diagrama de Casos de uso Reservar Libro Prestamo revista Profesor Prestamo Libro Devolver revista Socio Devolver libro Actualizar catalogo Bibliotecario Extender Prestamo 64 Consultar Socio
  • 65. Algunas consideraciones… • Cdu “consulta” • Cdu “CRUD” – Create/Read/Update/Delete – cdu “Manage X” • ¿Son “universales” los cdu? – No (Larman 2003) – La “Especificación Suplementaria” puede completar la especificación de requisitos funcionales 65
  • 66. Diagrama de Casos de Uso Rellenar Pedido Analizar Viabilidad Cliente JefeTecnico Cursar Pedido Ordenar Fabricacion Notificar Aceptacion Pedido Planificar Produccion JefeProduccion Comercial Notificar Rechazo Pedido ⇒ ¿Son cdu del mismo nivel que los de la biblioteca? 66
  • 67. Casos de uso y Colaboraciones • Con un caso de uso se describe un comportamiento esperado del sistema, pero no se especifica cómo se implementa. • Una caso de uso se implementa a través de una colaboración: “Sociedad de clases y otros elementos que colaborarán para realizar el comportamiento expresado en un caso de uso” • Una colaboración tiene una parte estática (diagramas de clases) y una parte dinámica (diagramas de secuencia o de colaboración/comunicación). 67
  • 68. Casos de uso y Colaboraciones caso de uso colaboración Hacer Pedido Gestión Pedidos realización 68
  • 69. Escenario del caso de uso “Realizar Compra” : : Interfaz Compra : CarroCompra : Producto Cliente iniciarCompra() nuevoCarroCompra(cliente) seleccProducto(cantidad) obtenerDescripcionDe(prod) cargarProd(cliente,prod,cantidad) confirmarCompra() confirmarCompraDe(cliente) decremStock(cantidad) Realizar para cada producto incluido en el carro de compra 69
  • 70. Casos de uso y Colaboraciones “El objetivo de la arquitectura del sistema es encontrar el conjunto mínimo de colaboraciones bien estructuradas, que satisfacen el comportamiento especificado en todos los casos de uso del sistema” 70
  • 71. Organización de Casos de uso • Tres tipos de relaciones: – Generalización • Un c.d.u. hereda el comportamiento y significado de otro – Inclusión • Un c.d.u. base incorpora explícitamente el comportamiento de otro en algún lugar de su secuencia. – Extensión • Un c.d.u. base incorpora implícitamente el comportamiento de otro c.d.u. en el lugar especificado indirectamente por este otro c.d.u. 71
  • 72. Ejemplo Relación de extensión «extend» Hacer Pedido Hacer Pedido Urgente (establecer prioridad) «include» Comprobar clave Relación de inclusión Validar Usuario Generalización «include» Seguir Pedido Examinar retina 72
  • 73. Relación de inclusión • Permite factorizar un comportamiento en un caso de uso aparte y evitar repetir un mismo flujo en diferentes casos de uso. • Ejemplo caso de uso “Seguir Pedido”: “Obtener y verificar el número de pedido. Include (Validar usuario). Examinar el estado de cada parte del pedido y preparar un informe para el usuario”. 73
  • 74. Relación de extensión • El caso de uso base incluye una serie de puntos de extensión. • Sirve para modelar – la parte opcional del sistema – un subflujo que sólo se ejecuta bajo ciertas condiciones – varios flujos que se pueden insertar en un punto • Ejemplo caso de uso “Hacer Pedido”: “ Include (Validar usuario). Recoger los items del pedido del usuario. (establecer prioridad). Enviar pedido para ser procesado. 74
  • 75. Obtención de casos de uso 1) Identificar los usuarios del sistema. 2) Encontrar todos los roles que juegan los usuarios y que son relevantes al sistema. 3) Para cada role identificar todas las formas (objetivos) de interactuar con el sistema. 4) Crea un caso de uso por cada objetivo. 5) Estructurar los casos de uso. 6) Revisar y validar con el usuario. 75
  • 76. Plantilla para casos de uso (D. Coleman) Caso de Uso identificador / historia Descripción objetivo a conseguir Actores lista de actores Asunciones Condiciones que deben cumplirse Pasos interacciones entre los actores y el sistema necesarias para obtener el objetivo Variaciones (opcional) cualquier variación en los pasos No-funcional (opcional) lista requisitos no funcionales Cuestiones Lista de cuestiones que permanecen por resolver 76
  • 77. Plantilla para casos de uso (D. Coleman) Ejemplo campo “pasos”: 1. Operador es notificado de problema en la red 2. Operador inicia una sesión de reparación 3. REPETIR 3.1. Operador ejecuta aplicación diagnósticos en la red. 3.2. Operador identifica elementos que deben cambiarse y sus nuevos valores para los parámetros. 3.3. EN PARALELO 3.3.1. Ingeniero mantenimiento comprueba elementos en la red || 3.3.2. Ingeniero mantenimiento envía informe fallo 4. Operador cierra sesión 77
  • 78. Plantilla para casos de uso (D. Coleman) Relación de uso: PERFORM c.d.u. Relación de extensión: Caso de uso extensión id. c.d.u. extends id. c.d.u. Cambio objetivo que debe conseguirse Pasos ... Variaciones ... No funcional ... Cuestiones ... 78
  • 79. Ejemplo Caso de Uso Ordenar Fabricación Descripción Se crearán órdenes de trabajo para cada producto solicitado en el pedido, y serán enviadas al jefe de producción para su planificación. Actores Jefe técnico Asunciones - Es viable la fabricación de cada producto solicitado en el pedido. - Existe una plantilla de fabricación para cada producto solicitado. Pasos 1. REPETIR 1.1 Obtener un producto del pedido. 1.2 Buscar la plantilla de fabricación asociada al producto. 1.3 Crear la orden de trabajo. 1.4 Almacenar la orden de trabajo con el estado pendiente. Variaciones - Req. No Funcionales - Cuestiones - 79
  • 80. Plantilla Caso de Uso (A. Cockburn) Sistema Compañía Seguros Actor principal Asegurado Objetivo Cobrar seguro accidente 1. Asegurado envía reclamación 2. Compañía verifica que asegurado tiene una póliza válida 3. Compañía asigna agente 4. Agente verifica todos los detalles son conformes el contrato 5. La compañía paga al asegurado 80
  • 81. Plantilla Caso de Uso (A. Cockburn) Extensiones 1a. Datos del parte incompletos 1a1. Compañía requiere datos 1a2. Asegurado envía datos 2a. Asegurado no tiene una póliza válida 2a1. Compañía rechaza reclamación, avisa al asegurado. 3a. No hay agentes disponibles 3a1. ¿qué hace la compañia? …. 81
  • 82. Plantilla Caso de Uso (A. Cockburn) Variaciones 1. Asegurado a) una persona b) otra compañía de seguros c) el gobierno 2. Pago a) transferencia b) dinero en efectivo c) cheque 82
  • 83. ¿Por qué casos de uso? • “Ofrecen un medio sistemático e intuitivo para capturar los requisitos funcionales, centrándose en el valor añadido para el usuario” • Dirigen todo el proceso de desarrollo puesto que la mayoría de actividades (planificación, análisis, diseño, validación, test,..) se realizan a partir de los casos de uso. • Mecanismo importante para soportar “trazabilidad” entre modelos. 83
  • 84. Crítica a los casos de uso (B.Meyer, E. Berard) • Los casos de uso no son adecuados en el modelado orientado a objetos porque: i) Favorecen un enfoque funcional, basado en procesos ii) Se centran en secuencias de acciones iii) Se basan en los escenarios actuales del sistema “Solo deben ser usados por equipos expertos en desarrollo OO” • Utiles para validación 84
  • 85. Utilidad de los casos de uso • Hay consenso en considerar casos de uso como esenciales para capturar requisitos y guiar el modelado. • Pero existe mucha confusión sobre cómo usarlos. • Diferentes opiniones sobre el número de casos de uso conveniente: – 20 para un proyecto 10 personas/año (Jacobson) – 100 para un proyecto 10 personas/año (Fowler) – depende de la granularidad 85
  • 86. Granularidad (M. Fowler) • Diferente granularidad • Un caso de uso puede describir: – Un objetivo o propósito del usuario – Una interacción con el sistema • Un objetivo implica una o más interacciones. • Primero construir un caso de uso por cada objetivo del usuario. • Después escribir casos de uso para cada interacción que corresponda a un objetivo. 86
  • 87. Granularidad (A. Cockburn) • Organización – Objetivo estratégico para la empresa, de mucho valor • Sistema (objetivo del usuario) – Funcionalidad del sistema, tarea del usuario o “proceso de negocio elemental” • Subfunciones – Un paso en la descripción de un caso de uso (validar, buscar, log on) 87
  • 88. Tipos de casos de uso (Larman) • Descripción breve, informal o completa – Descripción muy general o “conversación” entre actor y sistema. • Primarios, Secundarios u Opcionales – Según su importancia en el sistema • Esenciales vs. Reales – Según su grado de abstracción – Un caso de uso real describe el proceso en términos de su diseño actual, teniendo en cuenta tecnología de E/S. 88
  • 89. Recomendaciones (E. Berard) • Un caso de uso no debe considerar cuestiones de implementación. • Conveniencia de una herramienta para la gestión de los casos de uso. • Encontrar contradicciones entre casos de uso. • Preocupación por mantener la validez y consistencia del conjunto de casos de uso. • ¿Cómo se comprueba que los casos de uso incluyen toda la funcionalidad del sistema? 89
  • 90. Recomendaciones (E. Berard) • Cada compañía debe tener un manual sobre uso de los casos de uso. • ¿A qué nivel de detalle se describe un caso de uso? • ¿Qué granularidad es apropiada para un caso de uso? – “Pinchar botón”, “Añadir Empleado”,.. ¿son casos de uso? 90
  • 91. Recomendaciones (M. Fowler) • Cuidado con el empleo de la relación “uses” ¡NO HAGAS UNA DESCOMPOSICION FUNCIONAL! • No abusar de la estructuración de casos de uso • No es necesario aplicar la abstracción – ¡USA CASOS DE USO CONCRETOS! 91
  • 92. Recomendaciones A. Pols • Primero establecer los objetivos del proyecto. • Después identificar actores y sus responsabilidades, y las tareas que ejecutan son los casos de uso. • Contrastar casos de uso frente a los objetivos. • Cuidado con la ambigüedad • No profundizar en la descripción de un caso de uso • No te preocupes en exceso de la notación 92
  • 93. Recomendaciones (A. Pols) • Evita redes complicadas de casos de uso: Cuidado con las relaciones include y extend. • No considerar la interfaz del usuario • Los casos de uso sólo consideran los requisitos funcionales del proyecto, hay que añadir los no funcionales. 93
  • 94. Especificación de requisitos • La ERS (Especificación de Requisitos del Software) puede estar formada por: – Diagrama de casos de uso – Modelo del dominio (modelo conceptual) – (Para cada caso de uso) Descripción textual (usando una plantilla) Descripciones de las interfaces de usuario – Requisitos no funcionales 94
  • 95. Casos de Uso y Componentes • Pensar en componentes lo antes posible – Ahorrar esfuerzo – Negociar los requisitos • Si se producen componentes – Asociarle su propio caso de uso 95