Post on 13-Jun-2015
description
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado. UML 2
)
Ingeniería WebEl Lenguaje Unificado de Modelado
Contenidos
IntroducciónVisión global de UMLModelado de la estructura
Diagramas de clasesEstructuras compuestasArquitectura física
Modelado del comportamientoModelado de casos de usoDiagramas de actividad
Modelado de las interaccionesMáquinas de estados
Referencias
SESION N°2
FUNDAMENTOS DE LA INGENIERIA WEB
SESION 02
PT. Henry Gomez Sernaque (hegomezsernaque@servigenhegs.com
El Lenguaje Unificado de
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
1. Introducción
Ingeniería WebEl Lenguaje Unificado de Modelado
Introducción
En la vida real, se construyen muchas clases de modelos con distintos propósitos antes de construirlosObjetivos de los modelos
Probar una entidad física antes de construirlaComunicación con el clienteVisualizaciónReducción de la complejidadEstructurar las ideas
Un modelo es una abstracción de un sistema semánticamente cerradaUn lenguaje de modelado es un lenguaje para especificar, construir, visualizar, y documentar ingenios software
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 describaEl 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 complejidadLa representación de un modelo en un lenguaje de modelado obviamente tiene un valor añadido si dicho lenguaje de modelado es estándar
Método = Qué + Cómo + Porqué
Lenguaje deModelado = Notación + Reglas
• Sintácticas
• Semánticas
• Pragmáticas
6
Ingeniería WebEl Lenguaje Unificado de Modelado
Modelos basados en el paradigma objetual
Con la orientación a objetos se busca una suma sinérgica
¡Objetos! = características + comportamiento
¿Datos?edadrazacolor
¿Procesos?ladrarcomerdormir
¡Soyorientado a
objetos!
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Necesidad de la unificación en un estándar
Necesidad de estandarización a mediados de los noventa
Ingeniería WebEl Lenguaje Unificado de Modelado
Caminos al estándar
UMLMicrosoftOracle...
OMG
EstandarizaciónPrestigioReconocimiento
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
2. Visión global de UML
Ingeniería WebEl Lenguaje Unificado de Modelado
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)
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
¿Qué es UML?
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
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
13
Ingeniería WebEl 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 comportamientoDiagrama de casos de uso
Diagrama de actividad
Diagramas de interacciónDiagrama 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
Ingeniería WebEl Lenguaje Unificado de Modelado
Elementos de modelado
Elemento: Constituyente del modelo que tiene la capacidad de tener otros elementosUn elemento de modelado puede tener su correspondiente elemento de representación (símbolo gráfico utilizado para representar el elemento en los diagramas)
Interfaz
Métodos
Atributos
Clase
Métodos
Atributos
Objeto
Estado
Caso deUso
Actor
Nodo
Paquete NotaComponente
Dependencia Generalización
Asociación Agregación
Composición
<<Component>>
Curso de DoctoradoIngeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 WebEl Lenguaje Unificado de Modelado
3. Modelado de la estructura
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Introducción
El modelado estructural captura la vista estática del sistemaConstituye el fundamento de UMLLos 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 computacionalesLos elementos clave de la vista estática son los clasificadores y sus relacionesUn 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 WebEl 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 únicoDeclara una colección de características como métodos, operaciones o atributosUn 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”
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Clases
Una clase representa un concepto discreto dentro de la aplicación que se estámodelandoUna clase es un descriptor de un conjunto de objetos con estructura, comportamiento y relaciones similaresUn objeto es una entidad discreta con identidad, estado y comportamiento invocableUna clase define un conjunto de objetos que tienen un estado y comportamiento
El estado se describe por atributos y asociacionesLos atributos se utilizan generalmente para los valores puros de los datos sin identidadLas asociaciones se utilizan para las conexiones entre objetos con identidadLas 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 clasesLas 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 WebEl Lenguaje Unificado de Modelado
Clases
Ejemplos de definición de clases
Ventana
Ventana
Tamaño: Áreavisibilidad: Lógico
display ()hide ()
+tamaño: Área =(100,100)#visibilidad: Lógico= invisible+tamaño-por-defecto: Rectángulo
#tamaño-máximo: Rectángulo-xptr: XWindows*
+display ()+hide ()+create ()-attrachXWindow(xwin:Xwindows*)
Ventana{abstract,autor=Joseestado=comprobada}
<<controlador>>PenTracker
{abstract}
Rectángulo
P1: PuntoP2: Punto
<<constructor>>Rectangulo (p1:Punto, p2:Punto)
<<consulta>>área ():Realaspecto (): Real...
<<actualización>>mueve (delta: Puntoescala (ratio: Real)...
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
Una relación es una conexión semántica entre elementos de un modeloPueden ser de varios tipos:
Asociación: relación que describe un conjunto de enlaces entre objetosGeneralización: relación entre un elemento más general y otro más específicos
Asociación
Generalización
Dependencia
Realización
Asociación
Generalización
Dependencia
Realización
Dependencia: relación entre elementos, uno dependiente y otro independiente. Un cambio en el independiente afectará al dependiente
Abstracción/realización: relación entre dos descripciones de una misma cosa a diferentes niveles
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
ClaseA ClaseBNombreCalificador:NombreClasenombre rol0..*
nombreasociación
multiplicidad nombre de rol
ruta deasociación nombre de
asociaciónindicador de navegación
agregación/composición
calificador
Compañía PersonawTrabaja para 1..*1..*Empleador Empleado
Asociación: describe las conexiones semánticas entre objetos de diferentes clases. Una instancia de una asociación es un enlace
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
Concierto
Intérprete
*
*
*
*
Reparto
Orquesta
Suplente
Titular
Suplente *
0..1
Compañía Persona1..*1..*Empleador Empleado
salario
Trabajo
0..1*
Jefe
trabajador Dirige a...
Asociación reflexiva
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
Alumno
ProfesorCurso*
*
0..1
Registro
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
Asociación ternaria
Curso de DoctoradoIngeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
Cadenas de propiedades aplicables a extremos de una asociación
{subsets <nombrePropiedad>} el extremo es un subconjunto de la propiedad llamada <nombrePropiedad>
{redefined <nombreExtremo>} el extremo redefine otro extremo llamado <nombreExtremo>
{union} el extremo se deriva de la unión de sus subconjuntos
{ordered} el extremo representa un conjunto ordenado
{bag} el extremo representa una bolsa
{sequence} o {seq} el extremo representa una secuencia
Si el extremo es navegable se le puede aplicar cualquier cadena de propiedades aplicable a los atributos
{subsets <nombrePropiedad>} el extremo es un subconjunto de la propiedad llamada <nombrePropiedad>
{redefined <nombreExtremo>} el extremo redefine otro extremo llamado <nombreExtremo>
{union} el extremo se deriva de la unión de sus subconjuntos
{ordered} el extremo representa un conjunto ordenado
{bag} el extremo representa una bolsa
{sequence} o {seq} el extremo representa una secuencia
Si el extremo es navegable se le puede aplicar cualquier cadena de propiedades aplicable a los atributos
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
Ejemplo de propiedades aplicables a extremos de una asociación
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
Agregación: forma de asociación que representa una relación todo-parteentre 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 vezEl objeto compuesto es el único responsable de la disponibilidad de todas sus partes
MensajeCorreo
Dirección Cuerpo
* *
11 Compañía División Departamento* *
28
Ingeniería WebEl Lenguaje Unificado de Modelado
Relaciones
Elemento
Icono Contenedor
*
Propiedades de las agregacionesLa 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
Transacción Autentificación
Compra Venta
1 0..1
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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
RestriccionesDisjoint (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 hijosComplete (completo) – Todos los hijos posibles se han enumerado en el conjunto y no puede ser agregado ninguna másIncomplete (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 WebEl Lenguaje Unificado de Modelado
Relaciones
{overlapping, incomplete}
Atleta
Futbolista Nadador
Trabajador
Panadero PescaderoCarnicero
{disjoint, incomplete}ocupación
Generalization setrestricciones, se
aplican a todos loshijos
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Paquetes
Los paquetes constituyen un mecanismo de agrupación para organizar elementos UMLProporcionan un espacio de nombres a los elementos agrupadosUn elemento de modelado puede pertenecer a más de un paqueteLa agrupación de elementos de modelado en un paquete no es necesario que coincida con la agrupación física de elementos del sistemaLos paquetes se organizan jerárquicamente, siendo el paquete raíz el que contiene todo el sistema
BA
PP
BA
BA
P
BA
PP
BA
PP
BA
Ingeniería WebEl Lenguaje Unificado de Modelado
Paquetes
Las relaciones permitidas entre paquetes son generalización, dependencia yrefinamientoDependencias 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>>
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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
Precios
Pedidos
Selecciónasientos
Serviciocrédito
<<model>>VentaBilletes
Análisis Diseño
<<model>>VentaBilletes
Análisis Diseño
Ingeniería WebEl 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
posterior:Rueda [2] m:MotorP
eje
Coche
posterior:Rueda [2] m:MotorP
eje
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Arquitectura física
Arquitectura física: asignación de artefactos de software a nodos físicosDiagramas de componentes
Componentes: empaquetamiento físico de una colección de elementos de modeladoArtefactos: Manifestación física de un componente
Diagramas de despliegueDispositivos: recursos computacionales (nodos)Caminos de comunicación: mecanismos de comunicación entre nodosEntornos de ejecución: subnodos de los dispositivos
Pedidos :Cuenta
Producto
Pedidos :Cuenta
Producto<<artifact>>
Cuenta.jar
<<manifest>>
<<artifact>>
Cuenta.jar
<<manifest>>
Diagrama de componentes
Ingeniería WebEl Lenguaje Unificado de Modelado
Arquitectura física
<<artifact>>
GestorCompra.jar
<<artifact>>
Pedido.jar
ServidorBDServidorAplicacion* 1
<<deploy>> <<deploy>>
<<artifact>>
GestorCompra.jar
<<artifact>>
Pedido.jar
<<artifact>>
Pedido.jar
ServidorBDServidorAplicacion ServidorBDServidorAplicacion* 1
<<deploy>> <<deploy>>
Diagramas de despliegue
:NodoClienteA
:ServidorBDBiblioteca
:NodoClienteB
<<TCP/IP>>
<<TCP/IP>>
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
5. Modelado del comportamiento
Ingeniería WebEl 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 exteriorReparte la funcionalidad del sistema en transacciones significativas para los usuarios ideales de un sistemaLos usuarios del sistema se denominan actores y las particiones funcionales se conocen con el nombre de casosde usoLa técnica que se utiliza para modelar esta vista es el diagrama de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 requisitosLos casos de uso cubren la carencia existente en métodos previos (OMT, Booch) en cuanto a la determinación de requisitosEstá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 sistemaPara 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 WebEl Lenguaje Unificado de Modelado
Casos de usoCU-<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>)
... Fuentes • <fuente de la versión actual> (<organización de la fuente>)
... Objetivos asociados
• OBJ-x <nombre del objetivo> ...
Requisitos asociados
• Rx-y <nombre del requisito> ...
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> Paso Acción 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)>
Secuencia normal
... ... Poscondición <poscondición del caso de uso>
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}
Excepciones
... ... Paso Acción q m <unidad de tiempo>
Rendimiento
... ... Frecuencia <nº de veces> veces / <unidad de tiempo> Importancia <importancia del requisito> Urgencia <urgencia del requisito> Estado <estado del requisito> Estabilidad <estabilidad del requisito> Comentarios <comentarios adicionales sobre el requisito>
Plan
tilla
par
a re
quis
itos
func
iona
les
(Durán y Bernárdez, 2002)
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 WebEl Lenguaje Unificado de Modelado
Diagramas de casos de uso
sacar dinero
transferencias
depositar dinero
administración
cliente
operador
sistema del banco
Cajero automático
nombre del sistema
caso de uso
comunicación entreactor y caso de uso
nombre de caso de usolímite del sistema
actor
Ejemplo de diagrama de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Un actor es una idealización de una persona, un proceso o una entidad externa que interacciona con un sistema, subsistema o claseUn actor abstrae y caracteriza a un usuario externo o a un conjunto de usuarios externos relacionados que interactúan con el sistema o clasificadorCada 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
Diagramas de casos de uso
Ingeniería WebEl Lenguaje Unificado de Modelado
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
Un actor también se puede representar mediante un símbolo de clase con el estereotipo «actor»
Cliente
Estereotipo deactor
«actor»
ClienteSímbolo de clasecon estereotipo
Diagramas de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Puede definirse en una jerarquía de generalización de actores
Los actores descendientes heredan los roles y las relaciones conlos casos de uso del actor antecesorPrincipio de capacidad de sustitución
Vendedor
Supervisor
Tomarpedido
Establecercrédito
Generalización deactores
Diagramas de casos de uso
Ingeniería WebEl Lenguaje Unificado de Modelado
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)
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)
Diagramas de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
En general, las diferentes definiciones pueden catalogarse en cuatro dimensiones (Cockburn, 1997a; Cockburn, 1997b)
PropósitoContenidoPluralidad Estructura
Diagramas de casos de uso
Dimensión Valor
Propósito Requisitos funcionales
Contenidos Texto consistente
Pluralidad Múltiples escenarios por caso de uso
Estructura Semiformal
Enfoque de los casos de uso en UML
Ingeniería WebEl Lenguaje Unificado de Modelado
El propósito de un caso de uso es definir un cierto comportamiento de un clasificador sin revelar la estructura interna del clasificadorCada 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 normalSecuencias 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
Diagramas de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
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 pedido
símbolo de clasecon estereotipocaso de uso
hacerpedido
Diagramas de casos de uso
Ingeniería WebEl 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 sobre él
«extend»«extend»
Generalización de casos de uso
Una relación entre un caso de uso general y un 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 la inserción
«include»«include»
Tipos de relaciones en los diagramas de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de casos de uso
Relación de generalizaciónUna relación de generalización relaciona un caso de uso especializado con otro caso de uso más generalEl hijo hereda los atributos, operaciones y secuencias de comportamiento del padre, pudiendo agregar atributos y operaciones propiosEl 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 arbitrariosLa 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 padreLa notación empleada es la del símbolo normal de generalización
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de casos de uso
Verficar identidad
ComprobarContraseña Explorar retina
Comportamiento de caso de uso para el padre, Verificar identidad
El padre es abstracto, no hay secuencia de comportamiento
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
- Obtener signatura de la retina en BD maestra
- Explorar la retina del usuario y obtener su signatura
- Comparar la signatura maestra con la signatura explorada
Generalización de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de casos de uso
Relación de extensiónLa 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 comportamientoLa relación de extensión contiene una lista de nombres de puntos de extensión del caso de uso baseUn punto de extensión representa una localización dentro del caso de uso base donde se puede insertar la extensiónUna 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 comportamientoCada 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 WebEl Lenguaje Unificado de Modelado
Relación de extensiónSe pueden aplicar múltiples relaciones de extensión al mismo caso de uso baseUn caso de uso extensor puede extender más de un caso de uso baseLas 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»
Diagramas de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
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 <posible transacción> punto de extensión imprimir cabecera del recibo <detalles del recibo> punto de extensión desconexión
Caso de uso de extensión para la consulta
segmento primer segmento recibir petición de consulta mostrar información de la consulta
segmento segundo segmento imprimir la información sobre el reintegro
Caso de uso de extensión para el reintegro
segmento primer segmento recibir petición de retirada de efectivo especificar cantidad <petición realizada> punto de extensión
segmento segundo segmento desembolsar efectivo
Caso de uso de extensión para la retención de tarjetas
segmento segmento único retener tarjeta terminar la sesión
Extensión de casos de uso
Diagramas de casos de uso
Sesión CA
Puntos de extensiónposible transaccióndetalles del recibo
Consulta
<<extend>>(posible transacción,detalles del recibo)[petición de consulta]
Reintegro
Puntos de extensiónpetición realizada
<<extend>>(posible transacción,detalles del recibo)[petición de reintegro]
Retener tarjeta
<<extend>>(petición realizada)[historia sospechosa]
Condition: {petición de consulta}Puntos de extensión: posible transacción, detalles de recibo
Condition: {petición de reintegro}Puntos de extensión: posible transacción, detalles de recibo
Condition: {historia sospechosa}Puntos de extensión: petición realizada
56Universidad de Salamanca. Departamento de Informática y Automática
Ingeniería WebEl Lenguaje Unificado de Modelado
Relación de inclusiónEsta 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ónSe trata de una dependencia, no de una generalizaciónLa 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 finalizaDespué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 instanciableindependientemente
Diagramas de casos de uso
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Relación de inclusiónA un mismo caso de uso se le pueden aplicar múltiples relaciones de inclusiónEl mismo caso de uso proveedor puede incluirse en múltiples casos baseLas 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 baseLa 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»
Diagramas de casos de uso
Ingeniería WebEl Lenguaje Unificado de Modelado
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
Caso de uso incluido para Identificar cliente
obtener nombre cliente incluye (verificar identidad) si fracasa la verificación entonces abortar la sesión obtener los números de cuenta del cliente
Caso de uso incluido para Validar cuenta
establecer conexión con la BD de cuentas obtener estado de cuenta y límites
Diagramas de casos de uso
Inclusión de casos de uso
Ident ificar cl ienteValidar cuenta
UsuarioSesión CA
<<include>>
<<include>>
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Realización de casos de uso
Objeto Objeto Objeto
Caso de uso Colaboración
«Participa» «Participa»«Participa»
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de actividad
Un diagrama de actividad representa el comportamiento mediante un modelo de flujo de datos y flujo de controlActividad: especificación de un comportamiento parametrizado que se expresa como un flujo de ejecución por medio de una secuencia de unidades subordinadasAcció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 contextoLos diagramas de actividad capturan las acciones y sus resultados
Nodo acción Nodo objetoNodos de control
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de actividad
TokensVehículos para mover información y eventos a través del sistema. Pueden transportar objetos o valores
Arcos de actividadConexiones dirigidas entre nodos de actividad a través de las cuales fluyen los tokensPueden tener condiciones de guarda para permitir o no el paso de los tokens
Parámetro
Nodo de parámetro
Nombre de la actividad«precondition» Pedido completo«postcondition» Pedido cerrado
[aceptado]
[rechazado]
Actividad
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de actividad
Particiones de actividad (swinlanes): Particiones utilizadas para identificar acciones que comparten características comunes.
Solicitar producto
Procesar pedido
Extraer artículos
Enviar pedido
Facturar pedidoRecibir pedido
Pagar factura
Cerrar pedido
Cliente Ventas Almacén
Representación de particionesMultidimensionales
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 entradaNodos 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ónDe 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
Región de expansión
Nodos de expansión de salida
Nodo de expansión de entradaRegión de
expansión
Nodos de expansión de salida
Nodo de expansión de entrada
Ingeniería WebEl 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 mensajesViene dada por un par de conjuntos de trazasLas 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 colaboranDiagrama 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 nivelDiagrama 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
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 bidimensionalLa dimensión vertical es el eje de tiemposLa dimensión horizontal muestra la línea de vida de los objetos individuales en la colaboraciónCon frecuencia sólo son importantes las secuencias de mensajes, pero en aplicaciones de tiempo real el eje temporal puede ser una métricaUna 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 WebEl Lenguaje Unificado de Modelado
Diagramas de secuencia
cargo (coste)
:Orden
:Ticket :Cuenta
Crea ( )
reserva (fecha,cuenta )creación
mensajeLlamada recursiva
Ocurrencia de ejecución
Xdestrucción
bono (fecha,cuenta)
retorno
sd Reservas
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de secuencia
Fragmentos combinadosEncapsulan porciones del diagrama de secuenciaTienen un operador de interacción que indica como se maneja el fragmento
alt: estructura alternativa
opt: comportamiento opcional
loop: bucle
par: comportamientos paralelos
critical: región crítica
emisor intercambio receptorlevantar auriculara
tono de marcadob
marcar dígitoc
d encaminar
. . .
d’
tono de llamada{d’-d < 5 seg}
suena el teléfono
se responde
deja de sonartono de fin
{b-a < 1 seg}
{c-b < 10 seg}
La llamada seencamina porla red
En este punto losinteresados puedenhablar
objetos activos
restricciones
comentario mensajecon duración
mensaje
Diagrama de secuencia con control asíncrono
loop
Ingeniería WebEl 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 corchetesLa expresión de secuencia es una lista de términos de secuencia separada por puntos y seguida de ‘:’
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de colaboración
Solicitante
:EncargadoPedidos
pedir(pedido, cliente)
:BDEntradas
2: coste:=reservar(pedido)
entradas
:OficinaCrédito
1: revisarCrédito (cliente) 3: cargarCuenta (cliente, coste)
crédito
flujo de mensajes
número de secuencia navegación ensentido único
rol de clasificador
Diagrama de comunicación
sd Reservas
70Universidad de Salamanca. Departamento de Informática y Automática
Ingeniería WebEl Lenguaje Unificado de Modelado
Diagramas de visión global de la interacción
Los diagramas de visión global de la interacción (Interaction OverviewDiagrams) son una variante de los diagramas de actividad en los que los nodos son interacciones u ocurrencias de interaccionesCaracterí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 lifelinesLas interacciones u ocurrencias de interacción que contienen sustituyen a los nodos objeto y se consideran formas especiales de invocación a actividades
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 delsistema
sd UsuarioAceptado
EsperandoAcceso
EsperandoTarjeta
Reposo
SinTarjeta
ConTarjeta
t=ahora
código
TarjetaFuera{0..13}
OK
0 1 2
d
t
:Usu
ario
:Sis
tem
a
{d..3*d}
{t..t+3}
sd UsuarioAceptado
EsperandoAcceso
EsperandoTarjeta
Reposo
SinTarjeta
ConTarjeta
t=ahora
código
TarjetaFuera{0..13}
OK
0 1 2
d
t
:Usu
ario
:Sis
tem
a
{d..3*d}
{t..t+3}
Ingeniería WebEl 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 claseCada 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 ellosLos eventos representan las clases de cambios que un objeto puede detectar
Recepción de llamadas o señales explícitas desde un objeto a otroCambio en ciertos valoresPaso del tiempo
Cualquier cosa que pueda afectar a un objeto se puede caracterizar como eventoUn estado es un conjunto de valores de un objeto para una clase dada, quetienen la misma respuesta cualitativa a los eventos que ocurrenCuando 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
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl 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 sistemasDe protocolo: se usan para especificar las transformaciones legales que pueden ocurrir en un clasificador abstracto como una interfaz o un puerto
Ingeniería WebEl Lenguaje Unificado de Modelado
Máquinas de estados
S
X
exit / p
T
Y
entry / qf / d
Resultado efectivo -> f / p; d; q
Reposo
ReposoEstado: notación tradicional
Estado: notación con etiqueta
Notaciones utilizadas para representar los estados
Estados compuestos
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Máquinas de estados
X
ZY
e / a
[self.tamaño=0]
entry / b
Transición al estado inicial
Estado inicial
Se permite bifurcación condicional
W[else]
Equivale a tamaño != 0
Ingeniería WebEl Lenguaje Unificado de Modelado
Máquinas de estados
Incluir identificación
Confirmando
Vendiendo
fallo
SeleccionandoInactivo
Compra
Menú de selección
insertar tarjeta
pulsar “cancelar”
pulsar “compra”
pulsar “repetir”
pulsar “confirmar”
elegir (asiento)/añadir a selección(asiento)
Diagrama de transición de estados con un estado compuesto secuencial
salida/expulsar tarjeta
Estado finalReferencia de submáquinaEstado inicial
Salida anormal
Acción
entrada/vender()Acciónatómica
Transición definalización
Transición determinación
Transición exteriorTransición interior
Salida normal
Ingeniería Web
Tema 2: El Lenguaje Unificado de Modelado
Ingeniería WebEl Lenguaje Unificado de Modelado
Máquinas de estados
Laboratorio 1 Laboratorio 2laboratoriorealizado
laboratoriorealizado
Período deproyecto
proyectorealizado
Prueba final aprobado
Incompleto
AprobadoSuspenso
Clase Elegida
Diagrama de transición de estados con un estado compuesto concurrente
suspenso