SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
SESION N Web
                          Ingeniería °2
                                   02




FUNDAMENTOS DE LA INGENIERIA WEB
                      Ingeniería Web

El Lenguaje Unificado de Modelado.de
     Tema 2: El Lenguaje Unificado UML 2

PT. Henry Gomez Sernaque ( hegomezsernaque@servigenhegs.com )




                                      Ingeniería Web
                                      El Lenguaje Unificado de Modelado



    Contenidos

 Introducción
 Visión global de UML
 Modelado de la estructura
    Diagramas de clases
    Estructuras compuestas
    Arquitectura física
 Modelado del comportamiento
    Modelado de casos de uso
    Diagramas de actividad
    Modelado de las interacciones
    Máquinas de estados
 Referencias




       Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                        Ingeniería Web
                                        El Lenguaje Unificado de Modelado




   1. Introducción




                                        Ingeniería Web
                                        El Lenguaje Unificado de Modelado



  Introducción

En la vida real, se construyen muchas clases de modelos con
distintos propósitos antes de construirlos
Objetivos de los modelos
  Probar una entidad física antes de construirla
  Comunicación con el cliente
  Visualización
  Reducción de la complejidad
  Estructurar las ideas
Un modelo es una abstracción de un sistema semánticamente
cerrada
Un lenguaje de modelado es un lenguaje para especificar,
construir, visualizar, y documentar ingenios software




     Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                             Ingeniería Web
                                             El Lenguaje Unificado de Modelado



       ¿Por qué es necesario un lenguaje de modelado?

    Los sistemas complejos son
    difíciles de entender si no se
    cuenta con un modelo que los
    describa
    El conseguir un lenguaje de
    modelado capaz de captar la
    semántica de cualquier sistema
    software, es esencial a la hora de
    llevar a cabo un proyecto
    software de una cierta
                                             Método = Qué + Cómo + Porqué
    complejidad
    La representación de un modelo
                                                                                 • Sintácticas
    en un lenguaje de modelado           Lenguaje de
    obviamente tiene un valor             Modelado = Notación + Reglas           • Semánticas

    añadido si dicho lenguaje de                                                 • Pragmáticas
    modelado es estándar




                                             Ingeniería Web
                                             El Lenguaje Unificado de Modelado



       Modelos basados en el paradigma objetual

Con la orientación a objetos se busca una suma sinérgica

                                        ¡Soy
          ¿Datos?                   orientado a            ¿Procesos?
           edad                        objetos!              ladrar
            raza                                             comer
           color                                             dormir




           ¡Objetos! = características + comportamiento

                                                                                        6




          Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                        Ingeniería Web
                                        El Lenguaje Unificado de Modelado



Necesidad de la unificación en un estándar




                     Necesidad de estandarización a mediados de los noventa




                                        Ingeniería Web
                                        El Lenguaje Unificado de Modelado



Caminos al estándar


                UML
OMG                                                  Microsoft
                                                     Oracle
                                                     ...
   Estandarización
   Prestigio
   Reconocimiento




  Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                     Ingeniería Web
                                                     El Lenguaje Unificado de Modelado




2. Visión global de UML




                                                     Ingeniería Web
                                                     El Lenguaje Unificado de Modelado



       ¿Qué es UML?

                Lenguaje para especificar, construir, visualizar y documentar ingenios
                software, cuyo alcance pretende cubrir los conceptos de Booch, OMT y
                 OOSE resultando un lenguaje simple, común y ampliamente utilizable
                                    por usuarios de otros métodos


 UML es un lenguaje de modelado de objetos independiente del método que se
 implemente
 UML no es una notación propietaria
 UML no es una metodología, método o proceso
 La especificación UML se define usando el enfoque de metamodelado
 La infraestructura de UML 2.0 se define en el
 paquete InfrastructureLibrary:
    Define un metalenguaje núcleo (core)
    Permite la personalización de UML mediante
    Perfiles (Profiles)




          Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                          Ingeniería Web
                                                                          El Lenguaje Unificado de Modelado



      Modelos de representación
   En UML 2 se definen 13 diagramas diferentes :
       Modelado estructural
          Diagrama de clases
          Diagrama de estructuras compuestas
          Diagrama de componentes
          Diagrama de despliegue
          Diagrama de objetos
          Diagrama de paquetes
       Modelado de comportamiento
          Diagrama de casos de uso
          Diagrama de actividad
          Diagramas de interacción
               Diagrama de secuencia
               Diagrama de comunicación o colaboración
               Diagrama de visión global de la interacción
               Diagrama de tiempo
          Diagrama de maquina de estados
                                                                                                                                      13




                                                                          Ingeniería Web
                                                                          El Lenguaje Unificado de Modelado



      Elementos de modelado

Elemento:                                                         Clase                          Objeto


Constituyente del modelo que
                                                      Atributos                      Atributos
                                                                                                                           Estado
                                                      Métodos                        Métodos

tiene la capacidad de tener
otros elementos                                                                                                            Interfaz

Un elemento de modelado                                 Caso de
                                                         Uso
                                                                                             Nodo



puede tener su                                                              Actor
                                                                                                                   <<Component>>

correspondiente elemento de                                                               Nota
                                                                                                                       Componente
                                                              Paquete

representación (símbolo
gráfico utilizado para
                                                                  Dependencia                             Generalización
representar el elemento en los
diagramas)
                                                                   Asociación                             Agregación


                                                                                     Composición




          Tema 2: El Lenguaje Unificado de Modelado
Curso de Doctorado
                        Ingeniería Web




                                             Ingeniería Web
                                             El Lenguaje Unificado de Modelado



    Mecanismos de extensibilidad

  Mecanismos de extensibilidad: mecanismos que permiten
  ofrecer información extra y especializar los modelos
    Mecanismos estándar:
       Estereotipos: especializan las clases del metamodelo
       Etiquetas: cadenas asociadas a un símbolo gráfico del modelo
       Valores etiquetados: extienden los atributos de las clases del metamodelo
       Restricciones: extienden la semántica del metamodelo
    Perfiles: mecanismos para extender un metamodelo de referencia
    con objeto de adaptarlo a las características específicas de una
    plataforma (.NET, J2EE …) o de un dominio de aplicación (tiempo real,
    modelado de procesos de negocio …)




                                             Ingeniería Web
                                             El Lenguaje Unificado de Modelado




3. Modelado de la estructura




      Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                          Ingeniería Web
                                                          El Lenguaje Unificado de Modelado



       Introducción

    El modelado estructural captura la vista estática del sistema
    Constituye el fundamento de UML
    Los elementos de la vista estática de un modelo son los conceptos
    que tienen significado en una aplicación, incluyendo conceptos del
    mundo real y conceptos computacionales
    Los elementos clave de la vista estática son los clasificadores y sus
    relaciones
    Un clasificador es un elemento de modelado que describe cosas:
    clases, interfaces, tipos de datos, casos de uso, paquetes...
    Las relaciones entre clasificadores son asociación, generalización y
    varias clases de dependencia entre las que se incluyen realización y
    uso




                                                          Ingeniería Web
                                                          El Lenguaje Unificado de Modelado



       Concepto de clasificador

Un clasificador es un concepto discreto en el modelo, que tiene
identidad, estado, comportamiento y relaciones
   Tiene un nombre único
   Declara una colección de características como métodos, operaciones o
   atributos
   Un clasificador es un tipo y puede tener relaciones de generalización con
   otros clasificadores



                                      «caso de uso»
                                     Obtener pedido


                  Representación de un clasificador de tipo “caso de uso”




           Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                              Ingeniería Web
                                                              El Lenguaje Unificado de Modelado



         Clases

     Una clase representa un concepto discreto dentro de la aplicación que se está
     modelando
     Una clase es un descriptor de un conjunto de objetos con estructura,
     comportamiento y relaciones similares
     Un objeto es una entidad discreta con identidad, estado y comportamiento
     invocable
     Una clase define un conjunto de objetos que tienen un estado y comportamiento
          El estado se describe por atributos y asociaciones
          Los atributos se utilizan generalmente para los valores puros de los datos sin identidad
          Las asociaciones se utilizan para las conexiones entre objetos con identidad
          Las piezas individuales de comportamiento invocable se describen mediante
          operaciones; un método es la implementación de una operación
     Los diagramas que muestran la estructura estática del modelo son los diagramas
     de clases
     Las clases se representan por rectángulos compartimentados. El primero de ellos
     contiene el nombre de la clase, que debe ser único en el paquete que la contiene.
     El segundo contiene los atributos y el último los métodos




                                                              Ingeniería Web
                                                              El Lenguaje Unificado de Modelado



         Clases

Ejemplos de definición de clases                                      <<controlador>>
                                                                        PenTracker
                                                                         {abstract}


                           Ventana
         Ventana                 {abstract,                                Rectángulo
                                 autor=Jose
                                 estado=comprobada}                         P1: Punto
                           +tamaño: Área =(100,100)
                                                                            P2: Punto
                           #visibilidad: Lógico= invisible               <<constructor>>
         Ventana            +tamaño-por-defecto: Rectángulo      Rectangulo (p1:Punto, p2:Punto)
                           #tamaño-máximo: Rectángulo                     <<consulta>>
                           -xptr: XWindows*                     área ():Real
       Tamaño: Área
     visibilidad: Lógico   +display ()                          aspecto (): Real
                           +hide ()                             ...
         display ()        +create ()                                   <<actualización>>
          hide ()          -attrachXWindow(xwin:Xwindows*)      mueve (delta: Punto
                                                                escala (ratio: Real)
                                                                ...




               Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                         Ingeniería Web
                                                                         El Lenguaje Unificado de Modelado



      Relaciones
Una relación es una conexión semántica entre elementos de un modelo
Pueden ser de varios tipos:
    Asociación: relación que describe un conjunto de enlaces entre objetos
    Generalización: relación entre un elemento más general y otro más
    específicos
    Dependencia: relación entre
                                          Asociación
    elementos, uno dependiente y otro
    independiente. Un cambio en el
                                          Generalización
    independiente afectará al
    dependiente
                                                                Dependencia
    Abstracción/realización: relación
    entre dos descripciones de una                              Realización
    misma cosa a diferentes niveles




                                                                         Ingeniería Web
                                                                         El Lenguaje Unificado de Modelado



      Relaciones
Asociación: describe las conexiones semánticas entre objetos de diferentes
clases. Una instancia de una asociación es un enlace

                       multiplicidad                  nombre de rol



                                        0..* nombre rol
         ClaseA                                           NombreCalificador:NombreClase      ClaseB
                                nombre
                               asociación

                                                agregación/
                                                composición
          ruta de                       indicador de                           calificador
                       nombre de
          asociación                    navegación
                       asociación




                  Compañía 1..* w
                                  Trabaja para 1..*
                                                                            Persona
                           Empleador      Empleado




          Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                                      Ingeniería Web
                                                                                      El Lenguaje Unificado de Modelado



         Relaciones

                                     *                   Reparto
                      Concierto


                          *


                                                                                        Asociación reflexiva
                               Orquesta                     *

                                                                       Titular
                                                *       Intérprete
                                                                        0..1

                                                    Suplente    *
                                                                                       Suplente




                   Compañía 1..*                                         1..*          Persona
                            Empleador                               Empleado


                                                    Trabajo
                                                   salario   Jefe
                                                            0..1
                                               trabajador *      Dirige a...




                                                                                      Ingeniería Web
                                                                                      El Lenguaje Unificado de Modelado



         Relaciones


La multiplicidad al final de una asociación representa el número potencial de instancias,
cuando los otros n-1 están fijados. Es decir, la multiplicidad con que una clase participa
en una relación n-aria se define con respecto a las otras n-1 clases




                                                       Alumno


                                                        *



                                          *                                    0..1
                       Curso                                                            Profesor

                                                      Registro


                                              Asociación ternaria




             Tema 2: El Lenguaje Unificado de Modelado
Curso de Doctorado
                        Ingeniería Web




                                                 Ingeniería Web
                                                 El Lenguaje Unificado de Modelado



Relaciones


   {subsets <nombrePropiedad>} el extremo es un subconjunto
   {subsets <nombrePropiedad>} el extremo es un subconjunto
   de la propiedad llamada <nombrePropiedad>
   de la propiedad llamada <nombrePropiedad>
   {redefined <nombreExtremo>} el extremo redefine otro
   {redefined <nombreExtremo>} el extremo redefine otro
   extremo llamado <nombreExtremo>
   extremo llamado <nombreExtremo>
   {union} el extremo se deriva de la unión de sus subconjuntos
   {union} el extremo se deriva de la unión de sus subconjuntos
   {ordered} el extremo representa un conjunto ordenado
   {ordered} el extremo representa un conjunto ordenado
   {bag} el extremo representa una bolsa
   {bag} el extremo representa una bolsa
   {sequence} o {seq} el extremo representa una secuencia
   {sequence} o {seq} el extremo representa una secuencia
   Si el extremo es navegable se le puede aplicar cualquier
   Si el extremo es navegable se le puede aplicar cualquier
   cadena de propiedades aplicable a los atributos
   cadena de propiedades aplicable a los atributos

  Cadenas de propiedades aplicables a extremos de una asociación




                                                 Ingeniería Web
                                                 El Lenguaje Unificado de Modelado



Relaciones




   Ejemplo de propiedades aplicables a extremos de una asociación




  Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                      Ingeniería Web
                                                                      El Lenguaje Unificado de Modelado



      Relaciones

   Agregación: forma de asociación que representa una relación todo-parte
   entre un agregado (el todo) y las partes que los componen
   Composición: Forma de asociación de agregación con fuerte sentido
   de posesión
      Un objeto sólo puede ser parte de un compuesto a la vez
      El objeto compuesto es el único responsable de la disponibilidad
      de todas sus partes

                       MensajeCorreo


                   *                   *
                                                                                *                               *
          1                                    1              Compañía                 División                      Departamento


       Dirección                            Cuerpo




                                                                      Ingeniería Web
                                                                      El Lenguaje Unificado de Modelado



      Relaciones
Propiedades de las agregaciones
   La relación de agregación es transitiva y antisimétrica a través de los enlaces de
   agregación (las relaciones entre objetos son acíclicas)
   Una ruta dirigida de asociaciones de agregación de una clase a sí misma es
   una recursividad
Propiedades de las composiciones:
   Las partes tienen tiempo de vida coincidente con el conjunto (las partes con
   multiplicidad no fija, se pueden crear después del elemento compuesto y se
   pueden quitar explícitamente antes de la muerte del elemento compuesto)
   La multiplicidad debe ser 1 ó 0..1 al lado del compuesto
                                                                                       1            0..1
                                                                         Transacción                       Autentificación
                                 *
                   Elemento




       Icono                   Contenedor
                                                             Compra                         Venta




                                                                                                                                28




               Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                Ingeniería Web
                                                                El Lenguaje Unificado de Modelado



       Relaciones

Generalización: Es una relación de taxonomía entre un elemento general y
otro más específico que es plenamente consistente con el primer elemento y
que le añade información adicional
Restricciones
   Disjoint (disjunto) – Ningún elemento puede tener dos hijos en el conjunto como
   antecesores (en una situación de generalización múltiple). Ninguna instancia
   puede ser una instancia directa o indirecta de dos de los hijos (en una semántica
   múltiple de la clasificación)
   Overlapping (solapado) – Un elemento puede tener dos o más hijos en el conjunto
   de antecesores. Una instancia puede ser una instancia de dos o más hijos
   Complete (completo) – Todos los hijos posibles se han enumerado en el conjunto
   y no puede ser agregado ninguna más
   Incomplete (incompleto) – No se ha enumerado todavía todos los hijos posibles en
   el conjunto. Se esperan más hijos o se conocen pero no se han declarado aún




                                                                Ingeniería Web
                                                                El Lenguaje Unificado de Modelado



       Relaciones
                                                                        restricciones, se
         Generalization set            Trabajador                      aplican a todos los
                                                                               hijos
                              ocupación       {disjoint, incomplete}




            Carnicero                   Panadero                        Pescadero




                                               Atleta



                                                                              {overlapping, incomplete}



                          Futbolista                            Nadador




           Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                       Ingeniería Web
                                                       El Lenguaje Unificado de Modelado



     Paquetes

  Los paquetes constituyen un mecanismo de agrupación para organizar
  elementos UML
  Proporcionan un espacio de nombres a los elementos agrupados
  Un elemento de modelado puede pertenecer a más de un paquete
  La agrupación de elementos de modelado en un paquete no es necesario
  que coincida con la agrupación física de elementos del sistema
  Los paquetes se organizan jerárquicamente, siendo el paquete raíz el que
  contiene todo el sistema

                                                   P
               P



               A            B

                                          A                  B




                                                       Ingeniería Web
                                                       El Lenguaje Unificado de Modelado



     Paquetes

Las relaciones permitidas entre paquetes
son generalización, dependencia y
refinamiento
Dependencias específicas para paquetes
   Importación: permite a un paquete
   importar los elementos de otro y
   referenciarlos sin usar el nombre calificado.
   Puede ser de dos tipos <<import>> o
   <<access>>
   Fusión (merge): relación entre dos
   paquetes en la que el contenido del
   paquete objetivo es fusionado con el
   contenido del paquete fuente usando
   generalizaciones y redefiniciones. Se utiliza
   el estereotipo <<merge>>




         Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                              Ingeniería Web
                                                              El Lenguaje Unificado de Modelado



         Modelos y subsistemas

Un modelo es un paquete que recoge una descripción completa de una vista
particular del sistema
Un subsistema es un paquete que tiene partes separadas de especificación y de
realización. Es una unidad coherente del modelo que generalmente representa la
partición funcional del sistema

                                              venta de billetes


 <<model>>
VentaBilletes                                                                                     Servicio
                                                                         Pedidos                  crédito


   Análisis            Diseño                     Precios
                                                                         Selección
                                                                          asientos




                                                              Ingeniería Web
                                                              El Lenguaje Unificado de Modelado



         Diagrama de estructuras compuestas

    Representación de la estructura interna de un clasificador. Están
    formados por:
          Partes: roles de los clasificadores
          Conectores: enlaces entre instancias de las partes conectadas.
                El extremo de un conector puede ser un puerto




                                          Coche


                                                       P
                                                 eje
                        posterior:Rueda [2]                 m:Motor




                Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                           Ingeniería Web
                                                           El Lenguaje Unificado de Modelado



   Arquitectura física

Arquitectura física: asignación de artefactos de software a nodos físicos
   Diagramas de componentes
       Componentes: empaquetamiento físico de una colección de elementos de modelado
       Artefactos: Manifestación física de un componente
   Diagramas de despliegue
       Dispositivos: recursos computacionales (nodos)
       Caminos de comunicación: mecanismos de comunicación entre nodos
       Entornos de ejecución: subnodos de los dispositivos


                      Pedidos                                     :Cuenta



                                                                       <<manifest>>


                                                               <<artifact>>
                    Producto
                                                                 Cuenta.jar

                                Diagrama de componentes




                                                           Ingeniería Web
                                                           El Lenguaje Unificado de Modelado



   Arquitectura física

                                     <<T
            :NodoClienteA               CP
                                           /IP   >>

                                                      :ServidorBDBiblioteca
                                                 >
                                            /IP>
            :NodoClienteB                CP
                                      <<T



                                        *                  1
              ServidorAplicacion                                     ServidorBD


                                     <<deploy>>
         <<deploy>>

             <<artifact>>                   <<artifact>>

            GestorCompra.jar                  Pedido.jar

                                 Diagramas de despliegue




      Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                 Ingeniería Web
                                 El Lenguaje Unificado de Modelado




5. Modelado del comportamiento




                                 Ingeniería Web
                                 El Lenguaje Unificado de Modelado



  Modelado de casos de uso

La vista de casos de uso captura la funcionalidad de un
sistema, de un subsistema, o de una clase, tal como se
muestra a un usuario exterior
Reparte la funcionalidad del sistema en transacciones
significativas para los usuarios ideales de un sistema
Los usuarios del sistema se denominan actores y las
particiones funcionales se conocen con el nombre de casos
de uso
La técnica que se utiliza para modelar esta vista es el
diagrama de casos de uso




     Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                                                                                         Ingeniería Web
                                                                                                                                         El Lenguaje Unificado de Modelado



                                            Casos de uso
                              Los casos de uso son una técnica para la especificación de requisitos funcionales
                              propuesta inicialmente por Ivar Jacobson (Jacobson, 1987; Jacobson et al., 1992)
                              e incorporadas actualmente en UML (OMG, 2003)
                              No pertenecen estrictamente al enfoque orientado a objetos
                                        Técnica de captura de requisitos
                                        Los casos de uso cubren la carencia existente en métodos previos (OMT, Booch) en
                                        cuanto a la determinación de requisitos
                                        Están basados en el lenguaje natural
                                                  Accesibles a los usuarios
                                        Presentan ventajas sobre la descripción meramente textual de los requisitos funcionales
                              Existen múltiples propuestas para la utilización concreta de los casos de uso como
                              técnica tanto de obtención como de especificación de los requisitos funcionales
                              del sistema
                              Para la descripción concreta de los casos de uso se proponen plantillas, en las que
                              las interacciones se numeran siguiendo diversas propuestas y se describen
                              usando lenguaje natural




                                                                                                                                         Ingeniería Web
                                                                                                                                         El Lenguaje Unificado de Modelado



                                            Casos de uso
                                        CU-<id>        <nombre descriptivo>
                                        Versión        <nº de la versión actual> (<fecha de la versión actual>)
                                        Autores        • <autor de la versión actual> (<organización del autor>)
Plantilla para requisitos funcionales




                                                       ...
                                        Fuentes        • <fuente de la versión actual> (<organización de la fuente>)
                                                       ...
                                        Objetivos      • OBJ-x <nombre del objetivo>
                                        asociados      ...
                                        Requisitos     • Rx-y <nombre del requisito>
                                        asociados      ...
                                        Descripción    El sistema debe comportarse tal como se describe en el siguiente caso
                                                       de uso {abstracto durante la realización de los siguientes casos de uso:
                                                       <lista de casos de uso>, cuando <evento de activación> [o durante la
                                                       realización de los siguientes casos de uso: <lista de casos de uso>]}
                                        Precondición   <precondición del caso de uso>
                                        Secuencia      Paso Acción
                                        normal         p1      {El actor <actor>, El sistema} <acción/es realizada/s por
                                                               actor/sistema>
                                                       p2      Se realiza el caso de uso <caso de uso (RF-x)>
                                                       p3      Si <condición>, {el actor <actor>, el sistema} <acción/es
                                                               realizada/s por actor/sistema>
                                                       p4      Si <condición>, se realiza el caso de uso <caso de uso (RF-x)>
                                                       ...     ...
                                        Poscondición   <poscondición del caso de uso>
                                        Excepciones    Paso Acción
                                                       pi      Si <condición excepción>, {el actor <actor>, el sistema}
                                                               <acción/es realizada/s por actor/sistema>, a continuación este
                                                               caso de uso {continúa, queda sin efecto}
                                                       pj      Si <condición excepción>, se realiza el caso de uso <caso de
                                                               uso (RF-x)>, a continuación este caso de uso {continúa, queda
                                                               sin efecto}
                                                       ...     ...
                                        Rendimiento    Paso Acción
                                                       q       m <unidad de tiempo>
                                                       ...     ...
                                        Frecuencia     <nº de veces> veces / <unidad de tiempo>
                                        Importancia    <importancia del requisito>
                                        Urgencia       <urgencia del requisito>                                                   (Durán y Bernárdez, 2002)
                                        Estado         <estado del requisito>
                                        Estabilidad    <estabilidad del requisito>
                                        Comentarios    <comentarios adicionales sobre el requisito>




                                                      Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                          Ingeniería Web
                                                          El Lenguaje Unificado de Modelado



 Diagramas de casos de uso


Un diagrama de casos de uso es un grafo de actores, un conjunto
    de casos de uso encerrados por los límites de un sistema
(un rectángulo), asociaciones entre los actores y los casos de uso
         y relaciones de generalización entre los actores
                                                                (Rumbaugh et al., 1999)




                                                     Depositar dinero


              Actor                                     Caso de uso




                                                          Ingeniería Web
                                                          El Lenguaje Unificado de Modelado



 Diagramas de casos de uso
                                   nombre del sistema


                              Cajero automático                     caso de uso

                                      sacar dinero


                 cliente             transferencias
                                                                 sistema del banco
      actor
                                    depositar dinero
                                                                     comunicación entre
                                                                     actor y caso de uso
                                     administración
               operador



                      límite del sistema                      nombre de caso de uso

                      Ejemplo de diagrama de casos de uso




     Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                             Ingeniería Web
                                             El Lenguaje Unificado de Modelado



   Diagramas de casos de uso

Un actor es una idealización de una persona, un proceso o
una entidad externa que interacciona con un sistema,
subsistema o clase
Un actor abstrae y caracteriza a un usuario externo o a un
conjunto de usuarios externos relacionados que
interactúan con el sistema o clasificador
Cada actor define un conjunto de roles que los usuarios
de un sistema asumen cuando interactúan con el mismo
   El conjunto completo de actores describe todas las diferentes
   formas de comunicación entre los usuarios externos y el sistema




                                             Ingeniería Web
                                             El Lenguaje Unificado de Modelado



   Diagramas de casos de uso


Los actores se representan en UML con el icono estándar de los casos
de uso que es el “stick man” o “monigote” con el nombre del actor al
pie de la figura

                                                 Estereotipo de
                                                     actor
                              Cliente

Un actor también se puede representar mediante un símbolo de clase
con el estereotipo «actor»

                 «actor»                Símbolo de clase
                 Cliente                 con estereotipo




       Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                      Ingeniería Web
                                                      El Lenguaje Unificado de Modelado



         Diagramas de casos de uso

     Puede definirse en una jerarquía de generalización de
     actores
         Los actores descendientes heredan los roles y las relaciones con
         los casos de uso del actor antecesor
         Principio de capacidad de sustitución
                                          Tomar
                                          pedido

                    Vendedor


                                 Generalización de
                                     actores


                                         Establecer
                                          crédito

                    Supervisor




                                                      Ingeniería Web
                                                      El Lenguaje Unificado de Modelado



         Diagramas de casos de uso


   Un caso de uso es una forma, patrón o ejemplo concreto de utilización,
    un escenario que comienza con algún usuario del sistema que inicia
        alguna transacción o secuencia de eventos interrelacionados
                                                                       (Jacobson et al., 1992)




  Un caso de uso es una unidad coherente de funcionalidad que proporciona
  un clasificador (un sistema, un subsistema o clase) tal como lo manifiestan
las secuencias de mensajes que se intercambian entre el sistema y uno o más
usuarios externos (que se representan como actores), junto con acciones que
                                realiza el sistema
                                                                        (Rumbaugh et al., 1999)




            Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                  Ingeniería Web
                                                  El Lenguaje Unificado de Modelado



    Diagramas de casos de uso

En general, las diferentes definiciones pueden catalogarse
en cuatro dimensiones (Cockburn, 1997a; Cockburn,
1997b)
   Propósito                Dimensión                            Valor
   Contenido            Propósito              Requisitos funcionales
   Pluralidad           Contenidos             Texto consistente
   Estructura           Pluralidad             Múltiples escenarios por caso de uso
                        Estructura             Semiformal
                                     Enfoque de los casos de uso en UML




                                                  Ingeniería Web
                                                  El Lenguaje Unificado de Modelado



    Diagramas de casos de uso
El propósito de un caso de uso es definir un cierto comportamiento de
un clasificador sin revelar la estructura interna del clasificador
Cada caso de uso especifica un servicio que proporciona el
clasificador a sus usuarios
   Describe una secuencia completa en términos de interacción entre los
   usuarios y el clasificador, así como las respuestas ofrecidas por el
   clasificador
Los casos de uso incluyen el comportamiento normal que se tiene
como respuesta a una solicitud del usuario
   También incluyen las posibles variantes de la secuencia normal
       Secuencias alternativas, comportamiento frente a excepciones y manejo de
       errores
Un caso de uso es un descriptor que describe un comportamiento
potencial
   La ejecución de un caso de uso es una instancia de un caso de uso




       Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                      Ingeniería Web
                                                      El Lenguaje Unificado de Modelado



   Diagramas de casos de uso

Los casos de uso se representan en UML por una elipse
conteniendo el nombre, aunque también puede dibujarse
como un rectángulo clasificador con la palabra reservada
«use case»

                                                    «use case»
                hacer                              hacer pedido
               pedido




                                                      símbolo de clase
                           caso de uso                 con estereotipo




                                                      Ingeniería Web
                                                      El Lenguaje Unificado de Modelado



   Diagramas de casos de uso

Un caso de uso puede participar en varias relaciones, además
de poderse asociar con actores
     Relación                              Función                                Notación
  Asociación            Línea de comunicación entre un actor y un caso
                        de uso en el que participa
  Extensión             Inserción de comportamiento adicional en un
                        caso de uso base que no tiene conocimiento                 «extend»
                        sobre él
  Generalización  Una relación entre un caso de uso general y un
  de casos de uso caso de uso más específico, que hereda y
                  añade propiedades al caso de uso base
  Inclusión             Inserción de comportamiento adicional en un
                        caso de uso base, que describe explícitamente              «include»
                        la inserción

                           Tipos de relaciones en los diagramas de
                                         casos de uso




       Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                  Ingeniería Web
                                                                  El Lenguaje Unificado de Modelado



             Diagramas de casos de uso

         Relación de generalización
             Una relación de generalización relaciona un caso de uso especializado
             con otro caso de uso más general
             El hijo hereda los atributos, operaciones y secuencias de
             comportamiento del padre, pudiendo agregar atributos y operaciones
             propios
             El caso de uso hijo añade comportamiento al caso de uso padre
             insertando secuencias de acción adicionales en la secuencia del padre
             en puntos arbitrarios
             La capacidad de sustitución para los casos de uso significa que la
             secuencia de comportamiento de un caso de uso hijo tiene que incluir
             la secuencia de comportamiento de su padre
             La notación empleada es la del símbolo normal de generalización




                                                                  Ingeniería Web
                                                                  El Lenguaje Unificado de Modelado



             Diagramas de casos de uso



                                                     Comportamiento de caso de uso para el padre, Verificar identidad
                                                      El padre es abstracto, no hay secuencia de comportamiento
              Verficar identidad                      Un descendiente concreto tiene que proporcionar el comportamiento
                                                     Comportamiento de caso de uso para el hijo, Comprobar Contraseña
                                                     - Obtener la contraseña en BD maestra
                                                     - Pedir contraseña al usuario
                                                     - El usuario proporciona la contraseña
                                                     - Comparar contraseña con entrada del usuario

                                                     Comportamiento de caso de uso para el hijo, Explorar retina
Comprobar                                            - Obtener signatura de la retina en BD maestra
                                   Explorar retina
Contraseña                                           - Explorar la retina del usuario y obtener su signatura
                                                     - Comparar la signatura maestra con la signatura explorada




      Generalización de casos de uso




                 Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                        Ingeniería Web
                                                        El Lenguaje Unificado de Modelado



     Diagramas de casos de uso

  Relación de extensión
     La relación de extensión es una especie de dependencia
         El caso de uso cliente añade un comportamiento incremental al caso de uso base mediante la
         inserción de secuencias de acción adicionales a la secuencia base
     El caso de uso cliente contiene uno o más segmentos separados de secuencia de
     comportamiento
     La relación de extensión contiene una lista de nombres de puntos de extensión del caso
     de uso base
     Un punto de extensión representa una localización dentro del caso de uso base donde
     se puede insertar la extensión
     Una relación de extensión también puede tener asociada una condición
     El caso de uso extensor no es necesariamente instanciable por separado
         Consiste en uno o más segmentos que describen las secuencias adicionales de comportamiento
         Cada segmento en un caso de uso extensor se puede insertar en una localización separada en
         el caso de uso base
     Cuando la ejecución de una instancia de un caso de uso alcanza una localización en el
     caso de uso base referenciada por el punto de extensión y se cumple cualquier
     condición en la extensión, entonces la ejecución de la instancia se puede transferir a la
     secuencia de comportamiento del segmento correspondiente del caso de uso extensor




                                                        Ingeniería Web
                                                        El Lenguaje Unificado de Modelado



     Diagramas de casos de uso

Relación de extensión
  Se pueden aplicar múltiples relaciones de extensión al mismo caso
  de uso base
  Un caso de uso extensor puede extender más de un caso de uso
  base
  Las extensiones pueden ampliar otras extensiones de una manera
  jerarquizada
      Un caso de uso extensor puede ser él mismo la base en una relación de
      extensión, inclusión o generalización
  La notación de la relación de extensión es una flecha discontinua
  desde el caso de uso extensor al símbolo del caso de uso base con
  una punta de flecha apuntando a la base, a la que se añade la
  palabra clave «extend»




        Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                                                              Ingeniería Web
                                                                                                              El Lenguaje Unificado de Modelado



                            Diagramas de casos de uso

Condition: {petición de consulta}
Puntos de extensión: posible                                                                                      Caso de uso base para la sesión CA
                                                            Condition: {petición de reintegro}
transacción, detalles de recibo
                                                            Puntos de extensión: posible transacción,                mostrar el anuncio del día
                                                            detalles de recibo                                       incluye (identificar cliente)                   inclusión
                                                                                                                     incluye (validar cuenta)                        inclusión
                                                                                                                     <posible transacción>                           punto de extensión
                                                                                                                     imprimir cabecera del recibo
                                       Sesión CA                                                                     <detalles del recibo>                           punto de extensión
                                                                                                                     desconexión
                                    Puntos de extensión
                                    posible transacción
                                                                                                                  Caso de uso de extensión para la consulta
                                     detalles del recibo
                                                                                                                     segmento                                        primer segmento
                                                                                                                        recibir petición de consulta
                                                                <<extend>>                                              mostrar información de la consulta
   <<extend>>
                                                                (posible transacción,
   (posible transacción,                                                                                             segmento                                        segundo segmento
                                                                detalles del recibo)
   detalles del recibo)                                                                                                 imprimir la información sobre el reintegro
                                                                [petición de reintegro]
   [petición de consulta]
                                                                                                                  Caso de uso de extensión para el reintegro

                                                           Reintegro                                                 segmento                                        primer segmento
                   Consulta                                                               <<extend>>                    recibir petición de retirada de efectivo
                                                                                          (petición realizada)          especificar cantidad
                                                   Puntos de extensión                                                  <petición realizada>                         punto de extensión
                                                                                          [historia sospechosa]
                                                    petición realizada
                                                                                                                     segmento                                        segundo segmento
                                                                                                                        desembolsar efectivo


                             Condition: {historia sospechosa}                                                     Caso de uso de extensión para la retención de tarjetas
                             Puntos de extensión: petición realizada                       Retener tarjeta           segmento                                        segmento único
                                                                                                                        retener tarjeta
                                                                                                                        terminar la sesión


                Extensión de casos de uso




                                                                                                              Ingeniería Web
                                                                                                              El Lenguaje Unificado de Modelado



                            Diagramas de casos de uso
                 Relación de inclusión
                            Esta relación denota la inclusión de la secuencia de comportamiento del
                            caso de uso proveedor en la secuencia de interacción de un caso de uso
                            cliente, bajo el control del caso de uso cliente, en una localización que
                            especifique el cliente en su descripción
                            Se trata de una dependencia, no de una generalización
                            La instancia de caso de uso está ejecutando el caso de uso cliente
                                 Cuando llega al punto de inclusión, comienza a ejecutar el caso de uso
                                 proveedor hasta que éste finaliza
                                 Después sigue ejecutando el caso de uso cliente más allá de la localización de
                                 la inclusión
                            El caso de uso incluido no es un clasificador instanciable
                            independientemente




            Universidad de Salamanca. Departamento de Informática y Automática                                                                                                 56




                                 Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                                        Ingeniería Web
                                                                                        El Lenguaje Unificado de Modelado



                         Diagramas de casos de uso
          Relación de inclusión
              A un mismo caso de uso se le pueden aplicar múltiples relaciones de inclusión
              El mismo caso de uso proveedor puede incluirse en múltiples casos base
              Las inclusiones se pueden anidar
                           Una inclusión puede servir como base para otra inclusión, extensión o generalización
                           posterior
                   La inclusión representa un comportamiento encapsulado que, potencialmente,
                   puede ser reutilizado en múltiples casos de uso base
                   La relación de inclusión posee la propiedad de localización, que se define como
                   una situación, dentro del cuerpo de la secuencia de comportamiento del caso
                   de uso base, en que se debe insertar la inclusión
                           La inclusión es una sentencia explícita situada dentro de la secuencia de
                           comportamiento del caso de uso base
                   La notación de la relación de inclusión es una flecha discontinua desde el caso
                   de uso base hasta el símbolo del caso de uso incluido o proveedor, con una
                   cabeza de flecha abierta en la inclusión, sobre la que se pone la palabra
                   reservada «include»




                                                                                        Ingeniería Web
                                                                                        El Lenguaje Unificado de Modelado



                         Diagramas de casos de uso


                                                                             Caso de uso base para la sesión CA

                                                                                mostrar el anuncio del día
                                                                                incluye (identificar cliente)                     inclusión
                                                                                incluye (validar cuenta)                          inclusión
                                                                                imprimir cabecera del recibo
                                                                                desconexión


Usuario                                               <<include>>            Caso de uso incluido para Identificar cliente
                                          Sesión CA
                                                                                obtener nombre cliente
                                 <<include>>                                    incluye (verificar identidad)
                                                                                si fracasa la verificación entonces abortar la sesión
                                                                                obtener los números de cuenta del cliente

          Ident ificar cliente
                                                            Validar cuenta   Caso de uso incluido para Validar cuenta

                                                                                establecer conexión con la BD de cuentas
                                                                                obtener estado de cuenta y límites
             Inclusión de casos de uso




                                  Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                            Ingeniería Web
                                            El Lenguaje Unificado de Modelado



  Realización de casos de uso



   Caso de uso                           Colaboración



                           «Participa»                               «Participa»
                                            «Participa»

                                Objeto     Objeto                 Objeto




                                            Ingeniería Web
                                            El Lenguaje Unificado de Modelado



  Diagramas de actividad

Un diagrama de actividad representa el comportamiento mediante un
modelo de flujo de datos y flujo de control
Actividad: especificación de un comportamiento parametrizado que se
expresa como un flujo de ejecución por medio de una secuencia de
unidades subordinadas
Acción: especificación de una unidad fundamental de comportamiento
que representa una transformación o procesamiento
   Las acciones están contenidas en actividades que le proporcionan su contexto
   Los diagramas de actividad capturan las acciones y sus resultados




    Nodo acción   Nodo objeto
                                         Nodos de control




      Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                                       Ingeniería Web
                                                                                       El Lenguaje Unificado de Modelado



     Diagramas de actividad

Tokens
   Vehículos para mover información y eventos a través del sistema. Pueden
   transportar objetos o valores
Arcos de actividad
   Conexiones dirigidas entre nodos de actividad a través de las cuales fluyen los
   tokens
   Pueden tener condiciones de guarda para permitir o no el paso de los tokens
                                  Nombre de la actividad                                                Actividad
                                                     «precondition» Pedido completo
                                                      «postcondition» Pedido cerrado
                     Parámetro
                            [rechazado]


                                       [aceptado]




               Nodo de parámetro




                                                                                       Ingeniería Web
                                                                                       El Lenguaje Unificado de Modelado



     Diagramas de actividad

 Particiones de actividad                                                      Cliente                     Ventas               Almacén


 (swinlanes): Particiones                                                         Solicitar producto
 utilizadas para identificar acciones
 que comparten características                                                                               Procesar pedido

 comunes.
                                                                                                                                   Extraer artículos


                                                                                                                                    Enviar pedido




                                                                                       Recibir pedido         Facturar pedido




                                                                                       Pagar factura


                                                                                                              Cerrar pedido
       Representación de particiones
            Multidimensionales




          Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                Ingeniería Web
                                                El Lenguaje Unificado de Modelado



    Diagramas de actividad

Región de expansión: región que se ejecuta múltiples veces
(concurrent, iterative o streaming) una vez por cada elemento de una
colección de elementos de entrada
Nodos de expansión:
   De entrada: flujo de entrada a la región de expansión que contiene una
   colección que se divide en elementos individuales dentro de la región
   De salida: flujo de salida de la región de expansión que combina los
   elementos individuales en una colección que se usa fuera de la región


                                              Nodo de expansión
                   Región de                     de entrada
                   expansión

               Nodos de expansión
                   de salida




                                                Ingeniería Web
                                                El Lenguaje Unificado de Modelado



    Modelado de las interacciones

Interacción: unidad de comportamiento que se centra en el
intercambio de información observable entre elementos que pueden
conectarse
   La comunicación se realiza mediante mensajes
   Viene dada por un par de conjuntos de trazas
   Las interacciones se pueden especializar
Diagramas:
   Diagrama de secuencia: hacen hincapié en la secuencia de intercambio de
   mensajes entre objetos.
   Diagrama de comunicación (colaboración): se centra en las
   interacciones y enlaces entre objetos que colaboran
   Diagrama de visión global de la interacción: variante del diagrama de
   actividad que muestra el flujo de control de la interacción a alto nivel
   Diagrama de tiempo: diagrama de interacción que muestra sobre un eje de
   tiempo los cambios de estado o condición de una instancia o papel de
   clasificador




       Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                    Ingeniería Web
                                                                    El Lenguaje Unificado de Modelado



      Diagramas de secuencia
Un diagrama de secuencia representa las interacciones entre objetos
organizadas en una secuencia temporal
   Muestra los objetos participantes en la interacción y la secuencia de mensajes
   intercambiados
Pueden existir en forma de genérica, describiendo todos los posibles
escenarios, y en forma de instancia (describiendo un escenario real)
Notación
   Es un diagrama bidimensional
   La dimensión vertical es el eje de tiempos
   La dimensión horizontal muestra la línea de vida de los objetos individuales en
   la colaboración
   Con frecuencia sólo son importantes las secuencias de mensajes, pero en
   aplicaciones de tiempo real el eje temporal puede ser una métrica
   Una ocurrencia de ejecución muestra el periodo durante el cual un objeto
   realiza una acción bien directamente o a través de un procedimiento subordinado
       Se representa como una banda vertical




                                                                    Ingeniería Web
                                                                    El Lenguaje Unificado de Modelado



      Diagramas de secuencia

                 sd Reservas


                                                               :Ticket                    :Cuenta

                           Crea ( )
                                      :Orden


                                          reserva (fecha,cuenta )
                           creación                                      cargo (coste)

                                                                         bono (fecha,cuenta)
                                               mensaje
                                                                      Llamada recursiva

                                                 retorno
      Ocurrencia de
      ejecución




                                      X         destrucción




           Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                           Ingeniería Web
                                                           El Lenguaje Unificado de Modelado



     Diagramas de secuencia

Fragmentos combinados                                                              objetos activos


   Encapsulan porciones del                                  emisor                  intercambio                     receptor
   diagrama de secuencia                  restricciones     a         levantar auricular
                                                                                                     mensaje
                                          {b-a < 1 seg}
   Tienen un operador de
                                                                       tono de marcado
                                                            b
                                          {c-b < 10 seg} loop
   interacción que indica como                            c           marcar dígito

   se maneja el fragmento                 comentario
                                                                             ...
                                                                                                      mensaje
                                                            d             encaminar
      alt: estructura alternativa         La llamada se
                                          encamina por
                                                                                                      con duración
                                                            d’
      opt: comportamiento opcional        la red

      loop: bucle                         {d’-d < 5 seg}
                                                                       tono de llamada               suena el teléfono

      par: comportamientos paralelos                                                                  se responde
      critical: región crítica
                                          En este punto los
                                          interesados pueden              tono de fin                deja de sonar
                                          hablar




                                                                 Diagrama de secuencia con control asíncrono




                                                           Ingeniería Web
                                                           El Lenguaje Unificado de Modelado



     Diagramas de comunicación
Un diagrama de comunicación muestra cómo las instancias
específicas de las clases trabajan juntas para conseguir un
objetivo común
  Implementa las asociaciones del diagrama de clases mediante el paso de
  mensajes de un objeto a otro
  Sintaxis de la etiqueta del mensaje :
[predecesor] [condición-guarda] [expresión-secuencia] [valor-retorno :=] nombre-
   mensaje (argumentos)
      Predecesor. lista de números de secuencia separados por comas y seguidos
      por ‘/’
      La condición de guarda es una expresión booleana encerrada entre
      corchetes
      La expresión de secuencia es una lista de términos de secuencia separada
      por puntos y seguida de ‘:’




         Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                                    Ingeniería Web
                                                                                    El Lenguaje Unificado de Modelado



        Diagramas de colaboración
               sd Reservas


                             pedir(pedido, cliente)
                                                                                   2: coste:=reservar(pedido)

                                                      :EncargadoPedidos                                            :BDEntradas
                                                                                                        entradas
                                 flujo de mensajes

               Solicitante
                             1: revisarCrédito (cliente)                     3: cargarCuenta (cliente, coste)



                  número de secuencia                                                             navegación en
                                                                                                  sentido único
                                                                     crédito

                                                           :OficinaCrédito




                                                      rol de clasificador


                                                      Diagrama de comunicación




                                                                                    Ingeniería Web
                                                                                    El Lenguaje Unificado de Modelado



        Diagramas de visión global de la interacción

    Los diagramas de visión global de la interacción (Interaction Overview
    Diagrams) son una variante de los diagramas de actividad en los que los
    nodos son interacciones u ocurrencias de interacciones
    Características de los diagramas de visión global de la interacción:
        Para representarlos se utiliza un marco igual que el de cualquier diagrama de
        interacción pero el texto de cabecera puede incluir una lista de las líneas de
        vida que contiene precedida de la palabra reservada lifelines
        Las interacciones u ocurrencias de interacción que contienen sustituyen a los
        nodos objeto y se consideran formas especiales de invocación a actividades




Universidad de Salamanca. Departamento de Informática y Automática                                                               70




            Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                               Ingeniería Web
                                                                               El Lenguaje Unificado de Modelado



   Diagramas de tiempo

Los diagramas de tiempo (timing diagrams) proporcionan una forma
de mostrar los objetos activos y sus cambios de estado durante sus
interacciones con otros objetos activos y con otros recursos del
sistema

           sd UsuarioAceptado
                                                            {d..3*d}

                       EsperandoAcceso
            :Usuario




                       EsperandoTarjeta
                                                          TarjetaFuera             {t..t+3}
                       Reposo                                {0..13}
                                              código                      OK


                       SinTarjeta
            :Sistema




                       ConTarjeta
                                                                         t=ahora
                                                      d

                                          0   1   2                        t




                                                                               Ingeniería Web
                                                                               El Lenguaje Unificado de Modelado



   Máquinas de estados

La vista de máquina de estados describe el comportamiento dinámico de los
objetos a través del tiempo mediante el modelado del ciclo de vida de los objetos
de cada clase
Cada objeto se trata como una entidad aislada que se relaciona con el resto del
mundo a través de la detección de eventos y su respuesta a ellos
Los eventos representan las clases de cambios que un objeto puede detectar
   Recepción de llamadas o señales explícitas desde un objeto a otro
   Cambio en ciertos valores
   Paso del tiempo
Cualquier cosa que pueda afectar a un objeto se puede caracterizar como evento
Un estado es un conjunto de valores de un objeto para una clase dada, que
tienen la misma respuesta cualitativa a los eventos que ocurren
Cuando un objeto detecta un evento responde de diferente forma dependiendo
de su estado. La respuesta puede incluir la ejecución de una acción o un cambio
de estado




       Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                          Ingeniería Web
                                                          El Lenguaje Unificado de Modelado



   Máquinas de estados

Una máquina de estados es un grafo de estados y transiciones que
describe la respuesta de una instancia de un clasificador frente a la
recepción de eventos (Rumbaugh et al., 1999)
Una máquina de estados completa es un estado compuesto que se ha
descompuesto recursivamente para formar subestados
   Los estados más internos no poseen subestados


UML define dos tipos de máquinas de estados:
   De comportamiento: capturan los ciclos de vida de los objetos,
   subsistemas y sistemas
   De protocolo: se usan para especificar las transformaciones legales
   que pueden ocurrir en un clasificador abstracto como una interfaz o
   un puerto




                                                          Ingeniería Web
                                                          El Lenguaje Unificado de Modelado



   Máquinas de estados


                                                 Reposo
      Estado: notación                                              Estado: notación
      tradicional              Reposo                               con etiqueta


                   Notaciones utilizadas para representar los estados



                   X                                              Y

                exit / p                                      entry / q
                                         f/d
                         S                                              T


               Resultado efectivo -> f / p; d; q
                                  Estados compuestos




      Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                                        Ingeniería Web
                                                                        El Lenguaje Unificado de Modelado



   Máquinas de estados


                                                            Se permite
                            Estado inicial                  bifurcación condicional


         Transición al                       Y
         estado inicial                       [self.tamaño=0]
                                                                              Z
                       e/a                           [else]
        X                                                                    W
                                       entry / b


                                                          Equivale a tamaño != 0




                                                                        Ingeniería Web
                                                                        El Lenguaje Unificado de Modelado



   Máquinas de estados

                                     Compra                    Salida anormal
                Estado inicial       salida/expulsar tarjeta
                                        Referencia de submáquina       Estado final
                   insertar
                   tarjeta                 Incluir identificación
Transición de                                               fallo
terminación
                                     Salida normal Menú de selección                      Acción

            Inactivo                          Seleccionando
                                      elegir (asiento)/añadir a selección(asiento)
                                      pulsar                  pulsar
                                      “compra”                “repetir”
                   pulsar                      Confirmando
                   “cancelar”
                        Transición                        pulsar “confirmar”
Transición exterior     interior
                                                 Vendiendo
                                               entrada/vender()
                  Acción
                  atómica
                                                                          Transición de
                                                                          finalización


         Diagrama de transición de estados con un estado compuesto secuencial




        Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web




                                                             Ingeniería Web
                                                             El Lenguaje Unificado de Modelado



Máquinas de estados

                                   Clase Elegida
                                     Incompleto
                                                                       laboratorio
                                         laboratorio                    realizado
                                          realizado
                       Laboratorio 1                   Laboratorio 2




                                              proyecto
                        Período de            realizado
                         proyecto



                                              aprobado
                       Prueba final



                              suspenso



                         Suspenso                               Aprobado


           Diagrama de transición de estados con un estado compuesto concurrente




  Tema 2: El Lenguaje Unificado de Modelado

Contenu connexe

En vedette

Ingenieria web
Ingenieria webIngenieria web
Ingenieria webarienneya
 
INGENIERIA WEB
INGENIERIA WEBINGENIERIA WEB
INGENIERIA WEBwilboyman
 
0102 introducción-e_ingeniería_web
0102  introducción-e_ingeniería_web0102  introducción-e_ingeniería_web
0102 introducción-e_ingeniería_webCarlos Angarita
 
Presentacion curso ingenieria web ing. aldo zanabria
Presentacion curso ingenieria web   ing. aldo zanabriaPresentacion curso ingenieria web   ing. aldo zanabria
Presentacion curso ingenieria web ing. aldo zanabriaAldo Hernán Zanabria Gálvez
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria webMirsha01
 
Qué es la ingeniería web
Qué es la ingeniería webQué es la ingeniería web
Qué es la ingeniería webVictor Barraza
 
Team Genisson Grand Prix 1999
Team Genisson Grand Prix 1999Team Genisson Grand Prix 1999
Team Genisson Grand Prix 1999Ulrich Genisson
 
Montserrat batxillerat 2010
Montserrat batxillerat 2010Montserrat batxillerat 2010
Montserrat batxillerat 2010Natzaret
 
Rev industrial 1º
Rev industrial 1ºRev industrial 1º
Rev industrial 1ºLuz García
 
Karina rojas trabajo de grado sustentacion
Karina rojas trabajo de grado sustentacionKarina rojas trabajo de grado sustentacion
Karina rojas trabajo de grado sustentacionguzmanangy
 
Flash hps résultat 2013
Flash hps résultat 2013Flash hps résultat 2013
Flash hps résultat 2013Salma Touab
 

En vedette (20)

Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
Ja ss tutorial español
Ja ss tutorial españolJa ss tutorial español
Ja ss tutorial español
 
Ingeniería web
Ingeniería webIngeniería web
Ingeniería web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
INGENIERIA WEB
INGENIERIA WEBINGENIERIA WEB
INGENIERIA WEB
 
0102 introducción-e_ingeniería_web
0102  introducción-e_ingeniería_web0102  introducción-e_ingeniería_web
0102 introducción-e_ingeniería_web
 
Presentacion curso ingenieria web ing. aldo zanabria
Presentacion curso ingenieria web   ing. aldo zanabriaPresentacion curso ingenieria web   ing. aldo zanabria
Presentacion curso ingenieria web ing. aldo zanabria
 
Ingenieria Web
Ingenieria WebIngenieria Web
Ingenieria Web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 
Qué es la ingeniería web
Qué es la ingeniería webQué es la ingeniería web
Qué es la ingeniería web
 
Team Genisson Grand Prix 1999
Team Genisson Grand Prix 1999Team Genisson Grand Prix 1999
Team Genisson Grand Prix 1999
 
Montserrat batxillerat 2010
Montserrat batxillerat 2010Montserrat batxillerat 2010
Montserrat batxillerat 2010
 
Rev industrial 1º
Rev industrial 1ºRev industrial 1º
Rev industrial 1º
 
Karina rojas trabajo de grado sustentacion
Karina rojas trabajo de grado sustentacionKarina rojas trabajo de grado sustentacion
Karina rojas trabajo de grado sustentacion
 
Flash hps résultat 2013
Flash hps résultat 2013Flash hps résultat 2013
Flash hps résultat 2013
 
Js projects-v1.2
Js projects-v1.2Js projects-v1.2
Js projects-v1.2
 
GSM - 20 ans de folie
GSM - 20 ans de folieGSM - 20 ans de folie
GSM - 20 ans de folie
 

Similaire à UD:INGENIERIA WEB - SESION N°02

Curso uml-clase-01-1211931122395265-9
Curso uml-clase-01-1211931122395265-9Curso uml-clase-01-1211931122395265-9
Curso uml-clase-01-1211931122395265-9duberlisg
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes2008PA2Info3
 
Introobjetos
IntroobjetosIntroobjetos
Introobjetosayreonmx
 
Programación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaProgramación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaIngeniería Nica
 
Qué es-uml uriel-nava_mucio_2°_"C"_
Qué es-uml uriel-nava_mucio_2°_"C"_Qué es-uml uriel-nava_mucio_2°_"C"_
Qué es-uml uriel-nava_mucio_2°_"C"_Uriel Nava
 
Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosEliecer Suarez
 
Teoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoTeoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoRobert Rodriguez
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Lenguaje unificado de modelado.pptx
Lenguaje unificado de modelado.pptxLenguaje unificado de modelado.pptx
Lenguaje unificado de modelado.pptxNiltonTenorio
 
02 uml aplicado-al_diseno_con_componentes
02 uml aplicado-al_diseno_con_componentes02 uml aplicado-al_diseno_con_componentes
02 uml aplicado-al_diseno_con_componentesabysienta
 
Programación
ProgramaciónProgramación
ProgramaciónTensor
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetosmenavi
 

Similaire à UD:INGENIERIA WEB - SESION N°02 (20)

Curso uml-clase-01-1211931122395265-9
Curso uml-clase-01-1211931122395265-9Curso uml-clase-01-1211931122395265-9
Curso uml-clase-01-1211931122395265-9
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes
 
Metodologías de desarrollo orientado a objetos
Metodologías de desarrollo orientado a objetosMetodologías de desarrollo orientado a objetos
Metodologías de desarrollo orientado a objetos
 
Uml
UmlUml
Uml
 
Capitulo01p01
Capitulo01p01Capitulo01p01
Capitulo01p01
 
Clase03 m sw
Clase03 m swClase03 m sw
Clase03 m sw
 
Introobjetos
IntroobjetosIntroobjetos
Introobjetos
 
Programación Orientada a Objeto y Java
Programación Orientada a Objeto y JavaProgramación Orientada a Objeto y Java
Programación Orientada a Objeto y Java
 
Qué es-uml uriel-nava_mucio_2°_"C"_
Qué es-uml uriel-nava_mucio_2°_"C"_Qué es-uml uriel-nava_mucio_2°_"C"_
Qué es-uml uriel-nava_mucio_2°_"C"_
 
Analisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado ObjetosAnalisis Y DiseñO Orientado Objetos
Analisis Y DiseñO Orientado Objetos
 
Teoria del modelado de objetos modificado
Teoria del modelado de objetos modificadoTeoria del modelado de objetos modificado
Teoria del modelado de objetos modificado
 
MDE & DSLs
MDE & DSLsMDE & DSLs
MDE & DSLs
 
Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
Lenguaje unificado de modelado.pptx
Lenguaje unificado de modelado.pptxLenguaje unificado de modelado.pptx
Lenguaje unificado de modelado.pptx
 
Metodologia oohdm
Metodologia oohdmMetodologia oohdm
Metodologia oohdm
 
Metodologia oohdm
Metodologia oohdmMetodologia oohdm
Metodologia oohdm
 
02 uml aplicado-al_diseno_con_componentes
02 uml aplicado-al_diseno_con_componentes02 uml aplicado-al_diseno_con_componentes
02 uml aplicado-al_diseno_con_componentes
 
Programación
ProgramaciónProgramación
Programación
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 

UD:INGENIERIA WEB - SESION N°02

  • 1. SESION N Web Ingeniería °2 02 FUNDAMENTOS DE LA INGENIERIA WEB Ingeniería Web El Lenguaje Unificado de Modelado.de Tema 2: El Lenguaje Unificado UML 2 PT. Henry Gomez Sernaque ( hegomezsernaque@servigenhegs.com ) Ingeniería Web El Lenguaje Unificado de Modelado Contenidos Introducción Visión global de UML Modelado de la estructura Diagramas de clases Estructuras compuestas Arquitectura física Modelado del comportamiento Modelado de casos de uso Diagramas de actividad Modelado de las interacciones Máquinas de estados Referencias Tema 2: El Lenguaje Unificado de Modelado
  • 2. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado 1. Introducción Ingeniería Web El Lenguaje Unificado de Modelado Introducción En la vida real, se construyen muchas clases de modelos con distintos propósitos antes de construirlos Objetivos de los modelos Probar una entidad física antes de construirla Comunicación con el cliente Visualización Reducción de la complejidad Estructurar las ideas Un modelo es una abstracción de un sistema semánticamente cerrada Un lenguaje de modelado es un lenguaje para especificar, construir, visualizar, y documentar ingenios software Tema 2: El Lenguaje Unificado de Modelado
  • 3. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado ¿Por qué es necesario un lenguaje de modelado? Los sistemas complejos son difíciles de entender si no se cuenta con un modelo que los describa El conseguir un lenguaje de modelado capaz de captar la semántica de cualquier sistema software, es esencial a la hora de llevar a cabo un proyecto software de una cierta Método = Qué + Cómo + Porqué complejidad La representación de un modelo • Sintácticas en un lenguaje de modelado Lenguaje de obviamente tiene un valor Modelado = Notación + Reglas • Semánticas añadido si dicho lenguaje de • Pragmáticas modelado es estándar Ingeniería Web El Lenguaje Unificado de Modelado Modelos basados en el paradigma objetual Con la orientación a objetos se busca una suma sinérgica ¡Soy ¿Datos? orientado a ¿Procesos? edad objetos! ladrar raza comer color dormir ¡Objetos! = características + comportamiento 6 Tema 2: El Lenguaje Unificado de Modelado
  • 4. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Necesidad de la unificación en un estándar Necesidad de estandarización a mediados de los noventa Ingeniería Web El Lenguaje Unificado de Modelado Caminos al estándar UML OMG Microsoft Oracle ... Estandarización Prestigio Reconocimiento Tema 2: El Lenguaje Unificado de Modelado
  • 5. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado 2. Visión global de UML Ingeniería Web El Lenguaje Unificado de Modelado ¿Qué es UML? Lenguaje para especificar, construir, visualizar y documentar ingenios software, cuyo alcance pretende cubrir los conceptos de Booch, OMT y OOSE resultando un lenguaje simple, común y ampliamente utilizable por usuarios de otros métodos UML es un lenguaje de modelado de objetos independiente del método que se implemente UML no es una notación propietaria UML no es una metodología, método o proceso La especificación UML se define usando el enfoque de metamodelado La infraestructura de UML 2.0 se define en el paquete InfrastructureLibrary: Define un metalenguaje núcleo (core) Permite la personalización de UML mediante Perfiles (Profiles) Tema 2: El Lenguaje Unificado de Modelado
  • 6. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Modelos de representación En UML 2 se definen 13 diagramas diferentes : Modelado estructural Diagrama de clases Diagrama de estructuras compuestas Diagrama de componentes Diagrama de despliegue Diagrama de objetos Diagrama de paquetes Modelado de comportamiento Diagrama de casos de uso Diagrama de actividad Diagramas de interacción Diagrama de secuencia Diagrama de comunicación o colaboración Diagrama de visión global de la interacción Diagrama de tiempo Diagrama de maquina de estados 13 Ingeniería Web El Lenguaje Unificado de Modelado Elementos de modelado Elemento: Clase Objeto Constituyente del modelo que Atributos Atributos Estado Métodos Métodos tiene la capacidad de tener otros elementos Interfaz Un elemento de modelado Caso de Uso Nodo puede tener su Actor <<Component>> correspondiente elemento de Nota Componente Paquete representación (símbolo gráfico utilizado para Dependencia Generalización representar el elemento en los diagramas) Asociación Agregación Composición Tema 2: El Lenguaje Unificado de Modelado
  • 7. Curso de Doctorado Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Mecanismos de extensibilidad Mecanismos de extensibilidad: mecanismos que permiten ofrecer información extra y especializar los modelos Mecanismos estándar: Estereotipos: especializan las clases del metamodelo Etiquetas: cadenas asociadas a un símbolo gráfico del modelo Valores etiquetados: extienden los atributos de las clases del metamodelo Restricciones: extienden la semántica del metamodelo Perfiles: mecanismos para extender un metamodelo de referencia con objeto de adaptarlo a las características específicas de una plataforma (.NET, J2EE …) o de un dominio de aplicación (tiempo real, modelado de procesos de negocio …) Ingeniería Web El Lenguaje Unificado de Modelado 3. Modelado de la estructura Tema 2: El Lenguaje Unificado de Modelado
  • 8. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Introducción El modelado estructural captura la vista estática del sistema Constituye el fundamento de UML Los elementos de la vista estática de un modelo son los conceptos que tienen significado en una aplicación, incluyendo conceptos del mundo real y conceptos computacionales Los elementos clave de la vista estática son los clasificadores y sus relaciones Un clasificador es un elemento de modelado que describe cosas: clases, interfaces, tipos de datos, casos de uso, paquetes... Las relaciones entre clasificadores son asociación, generalización y varias clases de dependencia entre las que se incluyen realización y uso Ingeniería Web El Lenguaje Unificado de Modelado Concepto de clasificador Un clasificador es un concepto discreto en el modelo, que tiene identidad, estado, comportamiento y relaciones Tiene un nombre único Declara una colección de características como métodos, operaciones o atributos Un clasificador es un tipo y puede tener relaciones de generalización con otros clasificadores «caso de uso» Obtener pedido Representación de un clasificador de tipo “caso de uso” Tema 2: El Lenguaje Unificado de Modelado
  • 9. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Clases Una clase representa un concepto discreto dentro de la aplicación que se está modelando Una clase es un descriptor de un conjunto de objetos con estructura, comportamiento y relaciones similares Un objeto es una entidad discreta con identidad, estado y comportamiento invocable Una clase define un conjunto de objetos que tienen un estado y comportamiento El estado se describe por atributos y asociaciones Los atributos se utilizan generalmente para los valores puros de los datos sin identidad Las asociaciones se utilizan para las conexiones entre objetos con identidad Las piezas individuales de comportamiento invocable se describen mediante operaciones; un método es la implementación de una operación Los diagramas que muestran la estructura estática del modelo son los diagramas de clases Las clases se representan por rectángulos compartimentados. El primero de ellos contiene el nombre de la clase, que debe ser único en el paquete que la contiene. El segundo contiene los atributos y el último los métodos Ingeniería Web El Lenguaje Unificado de Modelado Clases Ejemplos de definición de clases <<controlador>> PenTracker {abstract} Ventana Ventana {abstract, Rectángulo autor=Jose estado=comprobada} P1: Punto +tamaño: Área =(100,100) P2: Punto #visibilidad: Lógico= invisible <<constructor>> Ventana +tamaño-por-defecto: Rectángulo Rectangulo (p1:Punto, p2:Punto) #tamaño-máximo: Rectángulo <<consulta>> -xptr: XWindows* área ():Real Tamaño: Área visibilidad: Lógico +display () aspecto (): Real +hide () ... display () +create () <<actualización>> hide () -attrachXWindow(xwin:Xwindows*) mueve (delta: Punto escala (ratio: Real) ... Tema 2: El Lenguaje Unificado de Modelado
  • 10. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Relaciones Una relación es una conexión semántica entre elementos de un modelo Pueden ser de varios tipos: Asociación: relación que describe un conjunto de enlaces entre objetos Generalización: relación entre un elemento más general y otro más específicos Dependencia: relación entre Asociación elementos, uno dependiente y otro independiente. Un cambio en el Generalización independiente afectará al dependiente Dependencia Abstracción/realización: relación entre dos descripciones de una Realización misma cosa a diferentes niveles Ingeniería Web El Lenguaje Unificado de Modelado Relaciones Asociación: describe las conexiones semánticas entre objetos de diferentes clases. Una instancia de una asociación es un enlace multiplicidad nombre de rol 0..* nombre rol ClaseA NombreCalificador:NombreClase ClaseB nombre asociación agregación/ composición ruta de indicador de calificador nombre de asociación navegación asociación Compañía 1..* w Trabaja para 1..* Persona Empleador Empleado Tema 2: El Lenguaje Unificado de Modelado
  • 11. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Relaciones * Reparto Concierto * Asociación reflexiva Orquesta * Titular * Intérprete 0..1 Suplente * Suplente Compañía 1..* 1..* Persona Empleador Empleado Trabajo salario Jefe 0..1 trabajador * Dirige a... Ingeniería Web El Lenguaje Unificado de Modelado Relaciones La multiplicidad al final de una asociación representa el número potencial de instancias, cuando los otros n-1 están fijados. Es decir, la multiplicidad con que una clase participa en una relación n-aria se define con respecto a las otras n-1 clases Alumno * * 0..1 Curso Profesor Registro Asociación ternaria Tema 2: El Lenguaje Unificado de Modelado
  • 12. Curso de Doctorado Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Relaciones {subsets <nombrePropiedad>} el extremo es un subconjunto {subsets <nombrePropiedad>} el extremo es un subconjunto de la propiedad llamada <nombrePropiedad> de la propiedad llamada <nombrePropiedad> {redefined <nombreExtremo>} el extremo redefine otro {redefined <nombreExtremo>} el extremo redefine otro extremo llamado <nombreExtremo> extremo llamado <nombreExtremo> {union} el extremo se deriva de la unión de sus subconjuntos {union} el extremo se deriva de la unión de sus subconjuntos {ordered} el extremo representa un conjunto ordenado {ordered} el extremo representa un conjunto ordenado {bag} el extremo representa una bolsa {bag} el extremo representa una bolsa {sequence} o {seq} el extremo representa una secuencia {sequence} o {seq} el extremo representa una secuencia Si el extremo es navegable se le puede aplicar cualquier Si el extremo es navegable se le puede aplicar cualquier cadena de propiedades aplicable a los atributos cadena de propiedades aplicable a los atributos Cadenas de propiedades aplicables a extremos de una asociación Ingeniería Web El Lenguaje Unificado de Modelado Relaciones Ejemplo de propiedades aplicables a extremos de una asociación Tema 2: El Lenguaje Unificado de Modelado
  • 13. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Relaciones Agregación: forma de asociación que representa una relación todo-parte entre un agregado (el todo) y las partes que los componen Composición: Forma de asociación de agregación con fuerte sentido de posesión Un objeto sólo puede ser parte de un compuesto a la vez El objeto compuesto es el único responsable de la disponibilidad de todas sus partes MensajeCorreo * * * * 1 1 Compañía División Departamento Dirección Cuerpo Ingeniería Web El Lenguaje Unificado de Modelado Relaciones Propiedades de las agregaciones La relación de agregación es transitiva y antisimétrica a través de los enlaces de agregación (las relaciones entre objetos son acíclicas) Una ruta dirigida de asociaciones de agregación de una clase a sí misma es una recursividad Propiedades de las composiciones: Las partes tienen tiempo de vida coincidente con el conjunto (las partes con multiplicidad no fija, se pueden crear después del elemento compuesto y se pueden quitar explícitamente antes de la muerte del elemento compuesto) La multiplicidad debe ser 1 ó 0..1 al lado del compuesto 1 0..1 Transacción Autentificación * Elemento Icono Contenedor Compra Venta 28 Tema 2: El Lenguaje Unificado de Modelado
  • 14. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Relaciones Generalización: Es una relación de taxonomía entre un elemento general y otro más específico que es plenamente consistente con el primer elemento y que le añade información adicional Restricciones Disjoint (disjunto) – Ningún elemento puede tener dos hijos en el conjunto como antecesores (en una situación de generalización múltiple). Ninguna instancia puede ser una instancia directa o indirecta de dos de los hijos (en una semántica múltiple de la clasificación) Overlapping (solapado) – Un elemento puede tener dos o más hijos en el conjunto de antecesores. Una instancia puede ser una instancia de dos o más hijos Complete (completo) – Todos los hijos posibles se han enumerado en el conjunto y no puede ser agregado ninguna más Incomplete (incompleto) – No se ha enumerado todavía todos los hijos posibles en el conjunto. Se esperan más hijos o se conocen pero no se han declarado aún Ingeniería Web El Lenguaje Unificado de Modelado Relaciones restricciones, se Generalization set Trabajador aplican a todos los hijos ocupación {disjoint, incomplete} Carnicero Panadero Pescadero Atleta {overlapping, incomplete} Futbolista Nadador Tema 2: El Lenguaje Unificado de Modelado
  • 15. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Paquetes Los paquetes constituyen un mecanismo de agrupación para organizar elementos UML Proporcionan un espacio de nombres a los elementos agrupados Un elemento de modelado puede pertenecer a más de un paquete La agrupación de elementos de modelado en un paquete no es necesario que coincida con la agrupación física de elementos del sistema Los paquetes se organizan jerárquicamente, siendo el paquete raíz el que contiene todo el sistema P P A B A B Ingeniería Web El Lenguaje Unificado de Modelado Paquetes Las relaciones permitidas entre paquetes son generalización, dependencia y refinamiento Dependencias específicas para paquetes Importación: permite a un paquete importar los elementos de otro y referenciarlos sin usar el nombre calificado. Puede ser de dos tipos <<import>> o <<access>> Fusión (merge): relación entre dos paquetes en la que el contenido del paquete objetivo es fusionado con el contenido del paquete fuente usando generalizaciones y redefiniciones. Se utiliza el estereotipo <<merge>> Tema 2: El Lenguaje Unificado de Modelado
  • 16. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Modelos y subsistemas Un modelo es un paquete que recoge una descripción completa de una vista particular del sistema Un subsistema es un paquete que tiene partes separadas de especificación y de realización. Es una unidad coherente del modelo que generalmente representa la partición funcional del sistema venta de billetes <<model>> VentaBilletes Servicio Pedidos crédito Análisis Diseño Precios Selección asientos Ingeniería Web El Lenguaje Unificado de Modelado Diagrama de estructuras compuestas Representación de la estructura interna de un clasificador. Están formados por: Partes: roles de los clasificadores Conectores: enlaces entre instancias de las partes conectadas. El extremo de un conector puede ser un puerto Coche P eje posterior:Rueda [2] m:Motor Tema 2: El Lenguaje Unificado de Modelado
  • 17. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Arquitectura física Arquitectura física: asignación de artefactos de software a nodos físicos Diagramas de componentes Componentes: empaquetamiento físico de una colección de elementos de modelado Artefactos: Manifestación física de un componente Diagramas de despliegue Dispositivos: recursos computacionales (nodos) Caminos de comunicación: mecanismos de comunicación entre nodos Entornos de ejecución: subnodos de los dispositivos Pedidos :Cuenta <<manifest>> <<artifact>> Producto Cuenta.jar Diagrama de componentes Ingeniería Web El Lenguaje Unificado de Modelado Arquitectura física <<T :NodoClienteA CP /IP >> :ServidorBDBiblioteca > /IP> :NodoClienteB CP <<T * 1 ServidorAplicacion ServidorBD <<deploy>> <<deploy>> <<artifact>> <<artifact>> GestorCompra.jar Pedido.jar Diagramas de despliegue Tema 2: El Lenguaje Unificado de Modelado
  • 18. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado 5. Modelado del comportamiento Ingeniería Web El Lenguaje Unificado de Modelado Modelado de casos de uso La vista de casos de uso captura la funcionalidad de un sistema, de un subsistema, o de una clase, tal como se muestra a un usuario exterior Reparte la funcionalidad del sistema en transacciones significativas para los usuarios ideales de un sistema Los usuarios del sistema se denominan actores y las particiones funcionales se conocen con el nombre de casos de uso La técnica que se utiliza para modelar esta vista es el diagrama de casos de uso Tema 2: El Lenguaje Unificado de Modelado
  • 19. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Casos de uso Los casos de uso son una técnica para la especificación de requisitos funcionales propuesta inicialmente por Ivar Jacobson (Jacobson, 1987; Jacobson et al., 1992) e incorporadas actualmente en UML (OMG, 2003) No pertenecen estrictamente al enfoque orientado a objetos Técnica de captura de requisitos Los casos de uso cubren la carencia existente en métodos previos (OMT, Booch) en cuanto a la determinación de requisitos Están basados en el lenguaje natural Accesibles a los usuarios Presentan ventajas sobre la descripción meramente textual de los requisitos funcionales Existen múltiples propuestas para la utilización concreta de los casos de uso como técnica tanto de obtención como de especificación de los requisitos funcionales del sistema Para la descripción concreta de los casos de uso se proponen plantillas, en las que las interacciones se numeran siguiendo diversas propuestas y se describen usando lenguaje natural Ingeniería Web El Lenguaje Unificado de Modelado Casos de uso CU-<id> <nombre descriptivo> Versión <nº de la versión actual> (<fecha de la versión actual>) Autores • <autor de la versión actual> (<organización del autor>) Plantilla para requisitos funcionales ... Fuentes • <fuente de la versión actual> (<organización de la fuente>) ... Objetivos • OBJ-x <nombre del objetivo> asociados ... Requisitos • Rx-y <nombre del requisito> asociados ... Descripción El sistema debe comportarse tal como se describe en el siguiente caso de uso {abstracto durante la realización de los siguientes casos de uso: <lista de casos de uso>, cuando <evento de activación> [o durante la realización de los siguientes casos de uso: <lista de casos de uso>]} Precondición <precondición del caso de uso> Secuencia Paso Acción normal p1 {El actor <actor>, El sistema} <acción/es realizada/s por actor/sistema> p2 Se realiza el caso de uso <caso de uso (RF-x)> p3 Si <condición>, {el actor <actor>, el sistema} <acción/es realizada/s por actor/sistema> p4 Si <condición>, se realiza el caso de uso <caso de uso (RF-x)> ... ... Poscondición <poscondición del caso de uso> Excepciones Paso Acción pi Si <condición excepción>, {el actor <actor>, el sistema} <acción/es realizada/s por actor/sistema>, a continuación este caso de uso {continúa, queda sin efecto} pj Si <condición excepción>, se realiza el caso de uso <caso de uso (RF-x)>, a continuación este caso de uso {continúa, queda sin efecto} ... ... Rendimiento Paso Acción q m <unidad de tiempo> ... ... Frecuencia <nº de veces> veces / <unidad de tiempo> Importancia <importancia del requisito> Urgencia <urgencia del requisito> (Durán y Bernárdez, 2002) Estado <estado del requisito> Estabilidad <estabilidad del requisito> Comentarios <comentarios adicionales sobre el requisito> Tema 2: El Lenguaje Unificado de Modelado
  • 20. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Un diagrama de casos de uso es un grafo de actores, un conjunto de casos de uso encerrados por los límites de un sistema (un rectángulo), asociaciones entre los actores y los casos de uso y relaciones de generalización entre los actores (Rumbaugh et al., 1999) Depositar dinero Actor Caso de uso Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso nombre del sistema Cajero automático caso de uso sacar dinero cliente transferencias sistema del banco actor depositar dinero comunicación entre actor y caso de uso administración operador límite del sistema nombre de caso de uso Ejemplo de diagrama de casos de uso Tema 2: El Lenguaje Unificado de Modelado
  • 21. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Un actor es una idealización de una persona, un proceso o una entidad externa que interacciona con un sistema, subsistema o clase Un actor abstrae y caracteriza a un usuario externo o a un conjunto de usuarios externos relacionados que interactúan con el sistema o clasificador Cada actor define un conjunto de roles que los usuarios de un sistema asumen cuando interactúan con el mismo El conjunto completo de actores describe todas las diferentes formas de comunicación entre los usuarios externos y el sistema Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Los actores se representan en UML con el icono estándar de los casos de uso que es el “stick man” o “monigote” con el nombre del actor al pie de la figura Estereotipo de actor Cliente Un actor también se puede representar mediante un símbolo de clase con el estereotipo «actor» «actor» Símbolo de clase Cliente con estereotipo Tema 2: El Lenguaje Unificado de Modelado
  • 22. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Puede definirse en una jerarquía de generalización de actores Los actores descendientes heredan los roles y las relaciones con los casos de uso del actor antecesor Principio de capacidad de sustitución Tomar pedido Vendedor Generalización de actores Establecer crédito Supervisor Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Un caso de uso es una forma, patrón o ejemplo concreto de utilización, un escenario que comienza con algún usuario del sistema que inicia alguna transacción o secuencia de eventos interrelacionados (Jacobson et al., 1992) Un caso de uso es una unidad coherente de funcionalidad que proporciona un clasificador (un sistema, un subsistema o clase) tal como lo manifiestan las secuencias de mensajes que se intercambian entre el sistema y uno o más usuarios externos (que se representan como actores), junto con acciones que realiza el sistema (Rumbaugh et al., 1999) Tema 2: El Lenguaje Unificado de Modelado
  • 23. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso En general, las diferentes definiciones pueden catalogarse en cuatro dimensiones (Cockburn, 1997a; Cockburn, 1997b) Propósito Dimensión Valor Contenido Propósito Requisitos funcionales Pluralidad Contenidos Texto consistente Estructura Pluralidad Múltiples escenarios por caso de uso Estructura Semiformal Enfoque de los casos de uso en UML Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso El propósito de un caso de uso es definir un cierto comportamiento de un clasificador sin revelar la estructura interna del clasificador Cada caso de uso especifica un servicio que proporciona el clasificador a sus usuarios Describe una secuencia completa en términos de interacción entre los usuarios y el clasificador, así como las respuestas ofrecidas por el clasificador Los casos de uso incluyen el comportamiento normal que se tiene como respuesta a una solicitud del usuario También incluyen las posibles variantes de la secuencia normal Secuencias alternativas, comportamiento frente a excepciones y manejo de errores Un caso de uso es un descriptor que describe un comportamiento potencial La ejecución de un caso de uso es una instancia de un caso de uso Tema 2: El Lenguaje Unificado de Modelado
  • 24. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Los casos de uso se representan en UML por una elipse conteniendo el nombre, aunque también puede dibujarse como un rectángulo clasificador con la palabra reservada «use case» «use case» hacer hacer pedido pedido símbolo de clase caso de uso con estereotipo Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Un caso de uso puede participar en varias relaciones, además de poderse asociar con actores Relación Función Notación Asociación Línea de comunicación entre un actor y un caso de uso en el que participa Extensión Inserción de comportamiento adicional en un caso de uso base que no tiene conocimiento «extend» sobre él Generalización Una relación entre un caso de uso general y un de casos de uso caso de uso más específico, que hereda y añade propiedades al caso de uso base Inclusión Inserción de comportamiento adicional en un caso de uso base, que describe explícitamente «include» la inserción Tipos de relaciones en los diagramas de casos de uso Tema 2: El Lenguaje Unificado de Modelado
  • 25. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Relación de generalización Una relación de generalización relaciona un caso de uso especializado con otro caso de uso más general El hijo hereda los atributos, operaciones y secuencias de comportamiento del padre, pudiendo agregar atributos y operaciones propios El caso de uso hijo añade comportamiento al caso de uso padre insertando secuencias de acción adicionales en la secuencia del padre en puntos arbitrarios La capacidad de sustitución para los casos de uso significa que la secuencia de comportamiento de un caso de uso hijo tiene que incluir la secuencia de comportamiento de su padre La notación empleada es la del símbolo normal de generalización Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Comportamiento de caso de uso para el padre, Verificar identidad El padre es abstracto, no hay secuencia de comportamiento Verficar identidad Un descendiente concreto tiene que proporcionar el comportamiento Comportamiento de caso de uso para el hijo, Comprobar Contraseña - Obtener la contraseña en BD maestra - Pedir contraseña al usuario - El usuario proporciona la contraseña - Comparar contraseña con entrada del usuario Comportamiento de caso de uso para el hijo, Explorar retina Comprobar - Obtener signatura de la retina en BD maestra Explorar retina Contraseña - Explorar la retina del usuario y obtener su signatura - Comparar la signatura maestra con la signatura explorada Generalización de casos de uso Tema 2: El Lenguaje Unificado de Modelado
  • 26. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Relación de extensión La relación de extensión es una especie de dependencia El caso de uso cliente añade un comportamiento incremental al caso de uso base mediante la inserción de secuencias de acción adicionales a la secuencia base El caso de uso cliente contiene uno o más segmentos separados de secuencia de comportamiento La relación de extensión contiene una lista de nombres de puntos de extensión del caso de uso base Un punto de extensión representa una localización dentro del caso de uso base donde se puede insertar la extensión Una relación de extensión también puede tener asociada una condición El caso de uso extensor no es necesariamente instanciable por separado Consiste en uno o más segmentos que describen las secuencias adicionales de comportamiento Cada segmento en un caso de uso extensor se puede insertar en una localización separada en el caso de uso base Cuando la ejecución de una instancia de un caso de uso alcanza una localización en el caso de uso base referenciada por el punto de extensión y se cumple cualquier condición en la extensión, entonces la ejecución de la instancia se puede transferir a la secuencia de comportamiento del segmento correspondiente del caso de uso extensor Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Relación de extensión Se pueden aplicar múltiples relaciones de extensión al mismo caso de uso base Un caso de uso extensor puede extender más de un caso de uso base Las extensiones pueden ampliar otras extensiones de una manera jerarquizada Un caso de uso extensor puede ser él mismo la base en una relación de extensión, inclusión o generalización La notación de la relación de extensión es una flecha discontinua desde el caso de uso extensor al símbolo del caso de uso base con una punta de flecha apuntando a la base, a la que se añade la palabra clave «extend» Tema 2: El Lenguaje Unificado de Modelado
  • 27. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Condition: {petición de consulta} Puntos de extensión: posible Caso de uso base para la sesión CA Condition: {petición de reintegro} transacción, detalles de recibo Puntos de extensión: posible transacción, mostrar el anuncio del día detalles de recibo incluye (identificar cliente) inclusión incluye (validar cuenta) inclusión <posible transacción> punto de extensión imprimir cabecera del recibo Sesión CA <detalles del recibo> punto de extensión desconexión Puntos de extensión posible transacción Caso de uso de extensión para la consulta detalles del recibo segmento primer segmento recibir petición de consulta <<extend>> mostrar información de la consulta <<extend>> (posible transacción, (posible transacción, segmento segundo segmento detalles del recibo) detalles del recibo) imprimir la información sobre el reintegro [petición de reintegro] [petición de consulta] Caso de uso de extensión para el reintegro Reintegro segmento primer segmento Consulta <<extend>> recibir petición de retirada de efectivo (petición realizada) especificar cantidad Puntos de extensión <petición realizada> punto de extensión [historia sospechosa] petición realizada segmento segundo segmento desembolsar efectivo Condition: {historia sospechosa} Caso de uso de extensión para la retención de tarjetas Puntos de extensión: petición realizada Retener tarjeta segmento segmento único retener tarjeta terminar la sesión Extensión de casos de uso Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Relación de inclusión Esta relación denota la inclusión de la secuencia de comportamiento del caso de uso proveedor en la secuencia de interacción de un caso de uso cliente, bajo el control del caso de uso cliente, en una localización que especifique el cliente en su descripción Se trata de una dependencia, no de una generalización La instancia de caso de uso está ejecutando el caso de uso cliente Cuando llega al punto de inclusión, comienza a ejecutar el caso de uso proveedor hasta que éste finaliza Después sigue ejecutando el caso de uso cliente más allá de la localización de la inclusión El caso de uso incluido no es un clasificador instanciable independientemente Universidad de Salamanca. Departamento de Informática y Automática 56 Tema 2: El Lenguaje Unificado de Modelado
  • 28. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Relación de inclusión A un mismo caso de uso se le pueden aplicar múltiples relaciones de inclusión El mismo caso de uso proveedor puede incluirse en múltiples casos base Las inclusiones se pueden anidar Una inclusión puede servir como base para otra inclusión, extensión o generalización posterior La inclusión representa un comportamiento encapsulado que, potencialmente, puede ser reutilizado en múltiples casos de uso base La relación de inclusión posee la propiedad de localización, que se define como una situación, dentro del cuerpo de la secuencia de comportamiento del caso de uso base, en que se debe insertar la inclusión La inclusión es una sentencia explícita situada dentro de la secuencia de comportamiento del caso de uso base La notación de la relación de inclusión es una flecha discontinua desde el caso de uso base hasta el símbolo del caso de uso incluido o proveedor, con una cabeza de flecha abierta en la inclusión, sobre la que se pone la palabra reservada «include» Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de casos de uso Caso de uso base para la sesión CA mostrar el anuncio del día incluye (identificar cliente) inclusión incluye (validar cuenta) inclusión imprimir cabecera del recibo desconexión Usuario <<include>> Caso de uso incluido para Identificar cliente Sesión CA obtener nombre cliente <<include>> incluye (verificar identidad) si fracasa la verificación entonces abortar la sesión obtener los números de cuenta del cliente Ident ificar cliente Validar cuenta Caso de uso incluido para Validar cuenta establecer conexión con la BD de cuentas obtener estado de cuenta y límites Inclusión de casos de uso Tema 2: El Lenguaje Unificado de Modelado
  • 29. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Realización de casos de uso Caso de uso Colaboración «Participa» «Participa» «Participa» Objeto Objeto Objeto Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de actividad Un diagrama de actividad representa el comportamiento mediante un modelo de flujo de datos y flujo de control Actividad: especificación de un comportamiento parametrizado que se expresa como un flujo de ejecución por medio de una secuencia de unidades subordinadas Acción: especificación de una unidad fundamental de comportamiento que representa una transformación o procesamiento Las acciones están contenidas en actividades que le proporcionan su contexto Los diagramas de actividad capturan las acciones y sus resultados Nodo acción Nodo objeto Nodos de control Tema 2: El Lenguaje Unificado de Modelado
  • 30. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de actividad Tokens Vehículos para mover información y eventos a través del sistema. Pueden transportar objetos o valores Arcos de actividad Conexiones dirigidas entre nodos de actividad a través de las cuales fluyen los tokens Pueden tener condiciones de guarda para permitir o no el paso de los tokens Nombre de la actividad Actividad «precondition» Pedido completo «postcondition» Pedido cerrado Parámetro [rechazado] [aceptado] Nodo de parámetro Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de actividad Particiones de actividad Cliente Ventas Almacén (swinlanes): Particiones Solicitar producto utilizadas para identificar acciones que comparten características Procesar pedido comunes. Extraer artículos Enviar pedido Recibir pedido Facturar pedido Pagar factura Cerrar pedido Representación de particiones Multidimensionales Tema 2: El Lenguaje Unificado de Modelado
  • 31. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de actividad Región de expansión: región que se ejecuta múltiples veces (concurrent, iterative o streaming) una vez por cada elemento de una colección de elementos de entrada Nodos de expansión: De entrada: flujo de entrada a la región de expansión que contiene una colección que se divide en elementos individuales dentro de la región De salida: flujo de salida de la región de expansión que combina los elementos individuales en una colección que se usa fuera de la región Nodo de expansión Región de de entrada expansión Nodos de expansión de salida Ingeniería Web El Lenguaje Unificado de Modelado Modelado de las interacciones Interacción: unidad de comportamiento que se centra en el intercambio de información observable entre elementos que pueden conectarse La comunicación se realiza mediante mensajes Viene dada por un par de conjuntos de trazas Las interacciones se pueden especializar Diagramas: Diagrama de secuencia: hacen hincapié en la secuencia de intercambio de mensajes entre objetos. Diagrama de comunicación (colaboración): se centra en las interacciones y enlaces entre objetos que colaboran Diagrama de visión global de la interacción: variante del diagrama de actividad que muestra el flujo de control de la interacción a alto nivel Diagrama de tiempo: diagrama de interacción que muestra sobre un eje de tiempo los cambios de estado o condición de una instancia o papel de clasificador Tema 2: El Lenguaje Unificado de Modelado
  • 32. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de secuencia Un diagrama de secuencia representa las interacciones entre objetos organizadas en una secuencia temporal Muestra los objetos participantes en la interacción y la secuencia de mensajes intercambiados Pueden existir en forma de genérica, describiendo todos los posibles escenarios, y en forma de instancia (describiendo un escenario real) Notación Es un diagrama bidimensional La dimensión vertical es el eje de tiempos La dimensión horizontal muestra la línea de vida de los objetos individuales en la colaboración Con frecuencia sólo son importantes las secuencias de mensajes, pero en aplicaciones de tiempo real el eje temporal puede ser una métrica Una ocurrencia de ejecución muestra el periodo durante el cual un objeto realiza una acción bien directamente o a través de un procedimiento subordinado Se representa como una banda vertical Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de secuencia sd Reservas :Ticket :Cuenta Crea ( ) :Orden reserva (fecha,cuenta ) creación cargo (coste) bono (fecha,cuenta) mensaje Llamada recursiva retorno Ocurrencia de ejecución X destrucción Tema 2: El Lenguaje Unificado de Modelado
  • 33. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de secuencia Fragmentos combinados objetos activos Encapsulan porciones del emisor intercambio receptor diagrama de secuencia restricciones a levantar auricular mensaje {b-a < 1 seg} Tienen un operador de tono de marcado b {c-b < 10 seg} loop interacción que indica como c marcar dígito se maneja el fragmento comentario ... mensaje d encaminar alt: estructura alternativa La llamada se encamina por con duración d’ opt: comportamiento opcional la red loop: bucle {d’-d < 5 seg} tono de llamada suena el teléfono par: comportamientos paralelos se responde critical: región crítica En este punto los interesados pueden tono de fin deja de sonar hablar Diagrama de secuencia con control asíncrono Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de comunicación Un diagrama de comunicación muestra cómo las instancias específicas de las clases trabajan juntas para conseguir un objetivo común Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro Sintaxis de la etiqueta del mensaje : [predecesor] [condición-guarda] [expresión-secuencia] [valor-retorno :=] nombre- mensaje (argumentos) Predecesor. lista de números de secuencia separados por comas y seguidos por ‘/’ La condición de guarda es una expresión booleana encerrada entre corchetes La expresión de secuencia es una lista de términos de secuencia separada por puntos y seguida de ‘:’ Tema 2: El Lenguaje Unificado de Modelado
  • 34. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de colaboración sd Reservas pedir(pedido, cliente) 2: coste:=reservar(pedido) :EncargadoPedidos :BDEntradas entradas flujo de mensajes Solicitante 1: revisarCrédito (cliente) 3: cargarCuenta (cliente, coste) número de secuencia navegación en sentido único crédito :OficinaCrédito rol de clasificador Diagrama de comunicación Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de visión global de la interacción Los diagramas de visión global de la interacción (Interaction Overview Diagrams) son una variante de los diagramas de actividad en los que los nodos son interacciones u ocurrencias de interacciones Características de los diagramas de visión global de la interacción: Para representarlos se utiliza un marco igual que el de cualquier diagrama de interacción pero el texto de cabecera puede incluir una lista de las líneas de vida que contiene precedida de la palabra reservada lifelines Las interacciones u ocurrencias de interacción que contienen sustituyen a los nodos objeto y se consideran formas especiales de invocación a actividades Universidad de Salamanca. Departamento de Informática y Automática 70 Tema 2: El Lenguaje Unificado de Modelado
  • 35. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Diagramas de tiempo Los diagramas de tiempo (timing diagrams) proporcionan una forma de mostrar los objetos activos y sus cambios de estado durante sus interacciones con otros objetos activos y con otros recursos del sistema sd UsuarioAceptado {d..3*d} EsperandoAcceso :Usuario EsperandoTarjeta TarjetaFuera {t..t+3} Reposo {0..13} código OK SinTarjeta :Sistema ConTarjeta t=ahora d 0 1 2 t Ingeniería Web El Lenguaje Unificado de Modelado Máquinas de estados La vista de máquina de estados describe el comportamiento dinámico de los objetos a través del tiempo mediante el modelado del ciclo de vida de los objetos de cada clase Cada objeto se trata como una entidad aislada que se relaciona con el resto del mundo a través de la detección de eventos y su respuesta a ellos Los eventos representan las clases de cambios que un objeto puede detectar Recepción de llamadas o señales explícitas desde un objeto a otro Cambio en ciertos valores Paso del tiempo Cualquier cosa que pueda afectar a un objeto se puede caracterizar como evento Un estado es un conjunto de valores de un objeto para una clase dada, que tienen la misma respuesta cualitativa a los eventos que ocurren Cuando un objeto detecta un evento responde de diferente forma dependiendo de su estado. La respuesta puede incluir la ejecución de una acción o un cambio de estado Tema 2: El Lenguaje Unificado de Modelado
  • 36. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Máquinas de estados Una máquina de estados es un grafo de estados y transiciones que describe la respuesta de una instancia de un clasificador frente a la recepción de eventos (Rumbaugh et al., 1999) Una máquina de estados completa es un estado compuesto que se ha descompuesto recursivamente para formar subestados Los estados más internos no poseen subestados UML define dos tipos de máquinas de estados: De comportamiento: capturan los ciclos de vida de los objetos, subsistemas y sistemas De protocolo: se usan para especificar las transformaciones legales que pueden ocurrir en un clasificador abstracto como una interfaz o un puerto Ingeniería Web El Lenguaje Unificado de Modelado Máquinas de estados Reposo Estado: notación Estado: notación tradicional Reposo con etiqueta Notaciones utilizadas para representar los estados X Y exit / p entry / q f/d S T Resultado efectivo -> f / p; d; q Estados compuestos Tema 2: El Lenguaje Unificado de Modelado
  • 37. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Máquinas de estados Se permite Estado inicial bifurcación condicional Transición al Y estado inicial [self.tamaño=0] Z e/a [else] X W entry / b Equivale a tamaño != 0 Ingeniería Web El Lenguaje Unificado de Modelado Máquinas de estados Compra Salida anormal Estado inicial salida/expulsar tarjeta Referencia de submáquina Estado final insertar tarjeta Incluir identificación Transición de fallo terminación Salida normal Menú de selección Acción Inactivo Seleccionando elegir (asiento)/añadir a selección(asiento) pulsar pulsar “compra” “repetir” pulsar Confirmando “cancelar” Transición pulsar “confirmar” Transición exterior interior Vendiendo entrada/vender() Acción atómica Transición de finalización Diagrama de transición de estados con un estado compuesto secuencial Tema 2: El Lenguaje Unificado de Modelado
  • 38. Ingeniería Web Ingeniería Web El Lenguaje Unificado de Modelado Máquinas de estados Clase Elegida Incompleto laboratorio laboratorio realizado realizado Laboratorio 1 Laboratorio 2 proyecto Período de realizado proyecto aprobado Prueba final suspenso Suspenso Aprobado Diagrama de transición de estados con un estado compuesto concurrente Tema 2: El Lenguaje Unificado de Modelado