Uses” vs. “Extends”

Download Report

Transcript Uses” vs. “Extends”

“Uses” Vs. “Extends”
Roberto Barriga Rodríguez
Aitana Giner Martín
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia
28/01/03
1
Introducción

Un caso de uso es una típica interacción entre un usuario
y un sistema de computador. La esencia de los casos de
uso es capturar los requerimientos de un sistema.

Se pueden organizar casos de uso especificando
relaciones de generalización, include y extend entre otros.
Se aplican esas relaciones para factorizar un
comportamiento común (tomando tal comportamiento de
otros casos de uso que lo incluyan) y variantes
(asignando tal comportamiento en otros casos de uso que
lo extiendan).
28/01/03
2
Uses y Extend por Martin Fowler y Kendall
Scott
Se utiliza la relación extends cuando se tiene un caso de uso
que es similar a otro pero hace algo más, es decir, cuando se
describa una variación en un comportamiento normal.

Las relaciones uses ocurren cuando se tiene una buena parte
del comportamiento que es similar que alcanza más de un caso de
uso y no se quiere conservar copias de la descripción del
comportamiento.

28/01/03
3
Uses y Extend por Martin Fowler y Kendall
Scott
Ejemplo de extends:
Poner las variaciones dentro del
caso de uso Capture Deal puede
abarrotarlo con mucha lógica.
Poner el comportamiento normal
en un caso de uso y el
comportamiento inusual en otro sitio
es lo más adecuado. Los pasos a
seguir son los siguientes:
1.Capturar primero el caso de uso
básico.
2.En todos los pasos que se
realicen preguntarse “¿qué puede ir
mal aquí?” y “¿cómo afecta a la
forma de trabajar?”
3.Dibujar todas las variaciones
como extensiones.
28/01/03
Analyz
e Risk
Price
Dela
Trader
Actor
<<Usses>>
<<Usses>>
Valuatio
n
Captur
e Deal
<<Extends>
>
Caso de uso
Limits
Exceede
d
4
Uses y Extend por Martin Fowler y Kendall
Scott
Ejemplo de uses:
Tanto en Analyze Risk como
en Price Deal se realizan
operaciones similares. La
descripción de estas
operaciones es muy extensa.
Lo más adecuado es derivar
un caso de uso separado
Valuation, con el fin de evitar
copiar y pegar, y hacer
referencia a él desde el caso
de uso original.
28/01/03
Analyz
e Risk
Price
Dela
Trader
Actor
<<Usses>>
<<Usses>>
Valuatio
n
Captur
e Deal
<<Extends>
>
Caso de uso
Limits
Exceede
d
5
Uses y Extend por Martin Fowler y Kendall
Scott

Existen semejanzas y diferencias entre extends y uses. En
ambos hay que sacar fuera el comportamiento común de la
mayoría de los casos de uso a un caso de uso simple que es
usado, o extendido por otros muchos casos de uso. Sin
embargo, el propósito es diferente.

En el caso del extends, los actores tienen una relación con el
caso de uso que está siendo extendido. Se asume que el actor
podrá trabajar con el caso de uso base y con todas las
extensiones. Con una relación de uses, a menudo no hay
actores asociados con el caso de uso común.
28/01/03
6
Invokes y Precedes por Doug Rosenberg y Kendall
Scott

A diferencia de UML, OML (Open Modeling Language) no
utiliza los estereotipos uses o (includes), ni extends, OML
define nuevos conceptos como el invokes y el precedes.
Estos nuevos conceptos, toman la forma de estereotipo
definido por el usuario en los diagramas de caso de uso.
 En OML, la idea de invokes está basada en que un caso
de uso llama a otro caso de uso, de la misma manera que
una función principal llama a una subfunción. Por otra
parte, precedes es definido por OML para indicar que un
caso de uso es precedido por otro dentro de una
secuencia lógica en un diagrama de casos de uso.
28/01/03
7
Invokes y Precedes por Doug Rosenberg y Kendall
Scott
Precedes
Ejecutar Entrada
Orden
Entrada Orden
Compra
Precedes
Entrada Orden
Venta
invokes
Definir Clientes
Ejecutar
Mantenimiento
Clientes
28/01/03
Precedes
8
Invokes y Precedes por Doug Rosenberg y Kendall
Scott
 Ejemplo de Invokes y precedes :
 Siempre que usemos Entrada Orden Compra o
Entrada Orden Venta, irá precedido del uso de
Ejecutar Entrada Orden.
 El uso de Definir Clientes irá precedido por Ejecutar
Mantenimiento Clientes o podrá ser invocado por
Ejecutar Entrada Orden.
28/01/03
9