ud:ingenieria web - sesion n°02

38
Ingeniería Web Tema 2: El Lenguaje Unificado de Modelado Ingeniería Web Tema 2: El Lenguaje Unificado de Modelado. UML 2 ) 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 SESION N°2 FUNDAMENTOS DE LA INGENIERIA WEB SESION 02 PT. Henry Gomez Sernaque ( [email protected] El Lenguaje Unificado de

Upload: game-over

Post on 13-Jun-2015

401 views

Category:

Documents


4 download

DESCRIPTION

Reconociendo aplicaciones Web

TRANSCRIPT

Page 1: UD:INGENIERIA WEB - SESION N°02

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 ([email protected]

El Lenguaje Unificado de

Page 2: UD:INGENIERIA WEB - SESION N°02

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

Page 3: UD:INGENIERIA WEB - SESION N°02

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!

Page 4: UD:INGENIERIA WEB - SESION N°02

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

Page 5: UD:INGENIERIA WEB - SESION N°02

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

Page 6: UD:INGENIERIA WEB - SESION N°02

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>>

Page 7: UD:INGENIERIA WEB - SESION N°02

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

Page 8: UD:INGENIERIA WEB - SESION N°02

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”

Page 9: UD:INGENIERIA WEB - SESION N°02

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)...

Page 10: UD:INGENIERIA WEB - SESION N°02

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

Page 11: UD:INGENIERIA WEB - SESION N°02

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

Page 12: UD:INGENIERIA WEB - SESION N°02

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

Page 13: UD:INGENIERIA WEB - SESION N°02

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

Page 14: UD:INGENIERIA WEB - SESION N°02

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

Page 15: UD:INGENIERIA WEB - SESION N°02

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>>

Page 16: UD:INGENIERIA WEB - SESION N°02

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

Page 17: UD:INGENIERIA WEB - SESION N°02

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>>

Page 18: UD:INGENIERIA WEB - SESION N°02

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

Page 19: UD:INGENIERIA WEB - SESION N°02

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)

Page 20: UD:INGENIERIA WEB - SESION N°02

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

Page 21: UD:INGENIERIA WEB - SESION N°02

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

Page 22: UD:INGENIERIA WEB - SESION N°02

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

Page 23: UD:INGENIERIA WEB - SESION N°02

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

Page 24: UD:INGENIERIA WEB - SESION N°02

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

Page 25: UD:INGENIERIA WEB - SESION N°02

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

Page 26: UD:INGENIERIA WEB - SESION N°02

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

Page 27: UD:INGENIERIA WEB - SESION N°02

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

Page 28: UD:INGENIERIA WEB - SESION N°02

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>>

Page 29: UD:INGENIERIA WEB - SESION N°02

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

Page 30: UD:INGENIERIA WEB - SESION N°02

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

Page 31: UD:INGENIERIA WEB - SESION N°02

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

Page 32: UD:INGENIERIA WEB - SESION N°02

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

Page 33: UD:INGENIERIA WEB - SESION N°02

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 ‘:’

Page 34: UD:INGENIERIA WEB - SESION N°02

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

Page 35: UD:INGENIERIA WEB - SESION N°02

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

Page 36: UD:INGENIERIA WEB - SESION N°02

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

Page 37: UD:INGENIERIA WEB - SESION N°02

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

Page 38: UD:INGENIERIA WEB - SESION N°02

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