actividad 3. captura de requisitos como casos de uso

39
CAPTURA DE REQUISITOS COMO CASOS DE USO SANDRA MILENA SÁNCHEZ LÓPEZ ALEJANDRO VARGAS GARCÍA HANNER PADILLA ANDRADE LEIDY MILENA SOLANO WENDY GUALGUAN INSTRUCTOR ING. JULIO CÉSAR SIERRA GONZÁLEZ 1

Upload: alejo-vargas

Post on 28-Dec-2015

9 views

Category:

Documents


2 download

TRANSCRIPT

CAPTURA DE REQUISITOS COMO CASOS DE USO

SANDRA MILENA SÁNCHEZ LÓPEZ

ALEJANDRO VARGAS GARCÍA

HANNER PADILLA ANDRADE

LEIDY MILENA SOLANO

WENDY GUALGUAN

INSTRUCTOR

ING. JULIO CÉSAR SIERRA GONZÁLEZ

CENTRO DE DISEÑO Y METROLOGÍA SENA

TECNÓLOGO ANÁLISIS Y DESARROLLO DE SISTEMAS DE

INFORMACIÓN

COLOMBIA, BOGOTÁ D.C

2014

1

TABLA DE CONTENIDO

Pág.

1 ACTORES Y ESCENARIOS..................................................................4

1.1 Actores...................................................................................................4

1.1.1 Los actores son el entorno del sistema..................................................4

1.2 Escenario...............................................................................................5

2 CASO DE USO......................................................................................6

2.1 Flujo de sucesos....................................................................................6

2.1.1 Contenidos del flujo de sucesos.............................................................7

2.1.2 Creación de un flujo de sucesos............................................................8

2.1.3 Seguimiento de flujos de sucesos........................................................10

2.1.4 Interacción con los procesos en WBE User Console...........................11

2.2 Requisitos especiales...........................................................................13

2.2.1 Requisitos de rendimiento....................................................................13

2.2.1.1 Requisitos especiales para el caso de uso pagar factura.......13

2.2.2 Prototipo de interfaz de usuario...........................................................13

3 REFINACIÓN DE CASOS DE USO. HEURÍSTICAS...........................16

3.1 Refinación............................................................................................16

3.2 Refinación de casos de uso.................................................................16

3.3 Heurística.............................................................................................18

4 RELACIÓN ENTRE CASOS DE USO: INCLUSIÓN Y EXTENSIÓN...19

4.1 Relación de Inclusión...........................................................................19

4.2 Relación de extensión..........................................................................22

5 OBJETOS INICIALES DE ANÁLISIS...................................................27

2

6 REQUISITO NO FUNCIONAL.............................................................28

CONCLUSIONES...............................................................................30

3

1 ACTORES Y ESCENARIOS

1.1 Actores

Los actores representan un tipo de usuario del sistema. Se entiendo como

usuario cualquier cosa externa que interactúa con el sistema. No tiene por qué

ser un ser humano, puede ser otro sistema informático o unidades

organizativas o empresas.

Siempre hay que intentar independizar los actores de la forma en que se

interactúa con el sistema. Por ejemplo un teclado no es un actor en la mayor

parte de los casos, sólo un medio para introducir información al sistema. Suele

ser útil mantener una lista de los usuarios reales para cada actor.

Un actor en un diagrama de casos de uso representa un rol que alguien puede

estar jugando, no un individuo particular por lo tanto puede haber personas

particulares que puedan estar usando el sistema de formas diferentes en

diferentes ocasiones: socio de biblioteca y bibliotecario.

1.1.1 Los actores son el entorno del sistema

No lodos los actores representan a personas. Pueden ser actores otros

sistemas o hardware externo que interactuará con el sistema. Cada actor

asume un conjunto coherente de papeles cuando interactúa con el sistema. Un

usuario físico puede actuar como uno o varios actores, desempeñando los

papeles de esos actores en su interacción con el sistema. Varios usuarios

concretos pueden actuar como diferentes ocurrencias del mismo actor. Por

ejemplo, puede haber miles de personas que actúan como el actor Cliente de

Banco.

Los actores se comunican con el sistema mediante el envío y recepción de

mensajes (Apéndice A) hacia y desde el sistema según éste lleva a cubo los

4

casos de Uso. A medida 111W definimos lo que hacen los actores y lo que

hacen los casos de uso trazaremos tina clara separación entre las

responsabilidades de los actores y las del sistema. Esta separación nos ayuda

a delimitar el alcance del sistema.

Podemos encontrar especificar todos los actores examinando los usuarios que

utilizarán el sistema y a otros sistemas que deben interactuar con él. Cada

categoría de usuarios o sistemas que interactúan se representan por tanto

como actores.

1.2 Escenario

Un caso de uso debe especificar un comportamiento deseado, pero no imponer

cómo se llevará a cabo ese comportamiento, es decir, debe decir QUÉ pero no

CÓMO. Esto se realiza utilizando escenarios.

Un escenario es una interacción entre el sistema y los actores, que puede ser

descrito mediante una secuencia de mensajes. Un caso de uso es una

generalización de un escenario.

Webgrafía

http://sistemas.uniandes.edu.co/~csof5101/dokuwiki/lib/exe/fetch.php?

media=principal:csof5101-requerimientos.pdf

http://www2.uah.es/jcaceres/capsulas/DiagramaCasosDeUso.pdf

5

2 CASO DE USO

2.1 Flujo de sucesos

Un flujo de sucesos es una representación gráfica de un conjunto de sucesos

relacionados, bloques de interacción contenidos en conjuntos de interacción

que se evaluarán cuando los sucesos se disparen, y acciones que pueden

desencadenarse como resultado de esos bloques de interacción y son

verdaderas. Los pasos en un flujo de sucesos especifican otros sucesos que se

espera que sigan a las acciones desencadenadas. WebSphere Business

Events Runtime utiliza flujos de sucesos para establecer un ámbito para

bloques de interacción de proceso de sucesos complejos y para producir

estadísticas con el fin de documentar el estado de los contextos que se están

ejecutando en un flujo de sucesos. En un entorno empresarial, los flujos de

sucesos pueden ser los pasos necesarios para realizar una comprobación de

crédito para una solicitud de préstamo o los pasos que se llevan a cabo para

cambiar una reserva de avión cuando se cancela un vuelo.

Los flujos de sucesos normalmente están compuestos tanto por pasos

manuales (humanos) como por pasos automatizados (sistema). Por ejemplo, si

se cancela un vuelo, el sistema de asistencia advertirá a un empleado de la

compañía aérea que se encuentre en el centro de atención al cliente de dicha

cancelación, y éste recibirá una lista de pasajeros. A continuación, el empleado

se pondrá en contacto con cada pasajero por vía telefónica para notificarles la

cancelación y ofrecerles un vuelo alternativo. De acuerdo con la respuesta de

cada pasajero, el empleado realizará una reserva para otro vuelo o efectuará

un reembolso.

WebSphere Business Events: Design se utiliza para definir y gestionar flujos de

sucesos.

6

2.1.1 Contenidos del flujo de sucesos

Cada flujo de sucesos contiene uno o varios conjuntos de interacción. Los

conjuntos de interacción que hacen que se inicie el flujo de sucesos se

denominan conjuntos de interacción iniciales. (En un flujo de sucesos puede

haber más de un conjunto de interacción inicial).

En el siguiente diagrama, el recuadro "Solicitud de cambio de contraseña de

cuenta" muestra el suceso al que hace referencia el filtro complejo; el recuadro

Solicitud de cambio de contraseña de proceso muestra el conjunto de

interacción; el recuadro Alerta por posible fraude muestra los dos bloques de

interacción.

Las líneas de puntos rojas indican una relación compleja entre sucesos. Los

filtros de bloques de interacción en el conjunto de interacción Alerta por posible

fraude hacen referencia al suceso Solicitud de cambio de contraseña de

cuenta.

Un flujo de sucesos también puede contener pasos empresariales. Un paso de

empresarial indica un suceso que se espera que siga a una acción en un

proceso de negocio. Los pasos empresariales se crean automáticamente en un

flujo de sucesos cuando una acción de un conjunto de interacción del flujo de

sucesos está en el mismo punto de contacto que un suceso en otro conjunto de

interacción. Los pasos empresariales también se pueden crear de forma

manual arrastrando un suceso sobre una acción.

7

Se creó un paso empresarial arrastrando la acción Retirar dinero sobre el

suceso Cambiar contraseña de cuenta. El paso empresarial describe lo que se

espera en este proceso: que se pueda producir una retirada de dinero tras

cambiar la contraseña. Si el suceso y la acción estuvieran en el mismo punto

de contacto, el paso empresarial se habría creado automáticamente. El paso

empresarial predeterminado se puede renombrar.

2.1.2 Creación de un flujo de sucesos

¿Por qué y cuándo se efectúa esta tarea?, para crear un flujo de sucesos en

WBE Design, resalte la carpeta donde quiere guardar el flujo de sucesos y

pulse el botón Flujo de sucesos. Una vez creado el flujo de sucesos, puede

realizar las siguientes acciones:

• Agregar conjuntos de interacción arrastrándolos desde el Árbol de

activos al espacio de trabajo. Si una acción de un conjunto de interacción se

encuentra en el punto de contacto como un suceso en otro punto de contacto,

se crea automáticamente un paso empresarial.

8

• Cree manualmente un paso de negocio arrastrando un suceso de un

conjunto de interacción en un punto de contacto a una acción de un conjunto

de interacción en otro punto de contacto distinto (o viceversa)

• Para modificar la ubicación de los objetos, pulse en ellos y arrástrelos

hasta la posición deseada.

Ejemplo de construcción de un flujo de sucesos en WBE Design:

Después de pulsar el botón Flujo de sucesos para crear un espacio de trabajo,

se construye el flujo de sucesos arrastrando un conjunto de interacción (1) al

espacio de trabajo (2). Al arrastrar conjuntos de interacción adicionales al

9

espacio de trabajo (3), se pueden construir automáticamente pasos

empresariales, siempre y cuando un suceso de un conjunto de interacción

comparta el mismo punto de contacto que una acción en otro conjunto de

interacción (4). Esto continúa hasta que el proceso está definido por completo

(5).

2.1.3 Seguimiento de flujos de sucesos

Los flujos de sucesos (al igual que los contextos ad-hoc) se pueden seguir en

tiempo de ejecución mediante WBE Administration. Para los flujos de sucesos,

WBE Administration muestra un gráfico que muestra las acciones pendientes

de un contexto y enumera cada contexto (la instancia de un flujo de suceso).

Puede detallar más en cada contexto para ver detalles sobre sucesos y

acciones individuales que están en el contexto. También se pueden mirar

detalles de filtros y de instancias de objetos intermedios que se utilizan en el

contexto.

Este ejemplo muestra los sucesos y las acciones que se han producido hasta la

fecha en un contexto en concreto.

10

2.1.4 Interacción con los procesos en WBE User Console

La mayoría de procesos de negocio son una mezcla de actividad de sistema e

interacción humana. Revisar una solicitud de crédito, investigar un fraude

potencial o aprobar un informe de gastos son todos ellos ejemplos en los que

es probable que se requiera un paso humano.

WBE User Console admite la interacción de personas y sistemas en el entorno

de proceso de sucesos de negocio que gestiona WebSphere Business

Events.WBE User Console sólo trata la parte de interacción humana como otro

conjunto de suceso/acción que interacciona con otros procesos en un flujo de

suceso. Cuando se dirija a ello, WebSphere Business Events Runtime enviará

una acción a WBE User Console, que mostrará los campos de objetos de

acción como datos. También se proporcionan campos de entrada de datos que

se definen como resultado de la acción. Cuando el usuario escribe información

en los campos y pulsa la tecla Intro, los datos se envían como un resultado de

vuelta a WebSphere Business Events Runtime, donde se tratan igual que

cualquier otro suceso que entra en el sistema. La figura 9-1 ilustra esto.

11

En WBE Design Data, una acción se define como que utiliza el conector User

Console y también se define un resultado de la acción. En el tiempo de

ejecución, se envía una acción utilizando el conector a WBE User Console. El

nombre de la acción se utiliza para compilar la cabecera en la pantalla de

detalles:

1. el nombre del objeto de acción se utiliza para compilar la subcabecera

2. Los nombres de campo de objeto de acción.

3. forman la primera columna y los valores de campo del objeto de acción

4. forman la segunda columna. El nombre del objeto de resultado se utiliza

para compilar la cabecera para el área de entrada de datos.

5. cada campo de resultados se enumera en el área de entrada de datos,

junto con el área de entrada adecuada para el tipo de datos del campo.

6. Cuando el usuario termina de introducir datos y pulsa Aceptar, se crea

un suceso de resultado y se envía a WebSphere Business Events Runtime,

donde se trata como un suceso.

12

WBE User Console consta de:

• Un conector de tecnología que dirige acciones desde WebSphere

Business Events Runtime a WBE User Console.

• Una interfaz de usuario que muestra acciones y permite la entrada de

datos como un resultado que se envía de nuevo a WebSphere Business Events

Runtime para tratarlo como un suceso

2.2 Requisitos especiales

Los requisitos especiales podrían generalizarse con los “requisitos no

funcionales” como la eficacia. Pues son solo especiales para el caso de uso

“pagar factura”

2.2.1 Requisitos de rendimiento

2.2.1.1 Requisitos especiales para el caso de uso pagar factura

Cuando un comprador envía una factura para su pago, el sistema debería

responder con una verificación de la solicitud en menos de 1.0 segundos en el

90 por ciento de los casos. La duración de esta verificación nunca deberá

exceder los 10.0 segundos a menos que la conexión de red no funcione (en

cuyo caso se debe informar al usuario).

2.2.2 Prototipo de interfaz de usuario

Un prototipo de interfaz de usuario es una representación parcial de la interfaz

de usuario que tendrá el software, que muestra la forma en que el usuario

interaccionará con él. Este prototipo es un elemento muy importante para la

13

comunicación con el usuario en la definición de los requerimientos, pues al

revisar la interfaz, el usuario puede refinar sus necesidades y comunicarlas al

desarrollador.

Se llama pantalla o interfaz al mecanismo con el cual interactúa el usuario con

el sistema. Cuando se diseñen estas pantallas podrán ser código html, o

ventanas o entradas de modo texto.

Para diseñar el prototipo de la interfaz se consideran los casos de uso

planteados en el diagrama general y se puede construir al mismo tiempo que

se detallan los casos de uso. Si el diagrama general tiene los casos de uso X,

Y y Z, en la pantalla principal del sistema deberán estar las opciones del menú

X, Y y Z. Si en la descripción del flujo de un caso de uso dice “el sistema

presenta la pantalla de X...”, en el prototipo deberá existir esa pantalla. Si en el

flujo dice “el usuario oprime el botón M...”, deberá haber un botón M en la

pantalla.

En resumen, se debe cuidar que exista coincidencia entre el detalle de los

casos de uso y el prototipo. Deben coincidir:

• Las opciones del menú y los casos de uso

• Los nombres de las pantallas

•Los nombres de los botones

14

3 REFINACIÓN DE CASOS DE USO. HEURÍSTICAS.

3.1 Refinación

¿Qué significa aquí recopilar la mayor parte de los requisitos”? Esta cuestión

nació al empezar a planificar la fase de elaboración, nuestra aspiración debería

ser identificar alrededor del 81 por ciento de los casos de uso. Aquí podemos

describir detalladamente entre el 40 y el 80 por ciento de todos los casos de

uso. No es necesario identificar todos los casos de uso, y no es necesario

describir en detalle todos los que identificamos, puesto que sabemos que

algunos sistemas pueden ser diseñados (arquitectónicamente) en seguida, no

contener riesgos inesperados y pueden ser tasados de forma exacta.

Puede ser necesario considerar sólo una fracción de los escenarios durante el

diseño, implementación y pruebas, con objeto de obtener la arquitectura y

mitigar los riesgos. El objetivo es recopilar los requisitos hasta el punto de

lograr los objetivos de esta fase.

3.2 Refinación de casos de uso

Cada caso de uso es una colección de escenarios y cada escenario es una

secuencia de pasos. Como puede ver, tales pasos no aparecen en el diagrama.

No se encuentran en notas adjuntas a los casos de uso. Aunque el UML no lo

prohíbe, la claridad es clave en la generación de cualquier diagrama y el

adjuntar notas a cada caso de uso podría volverlo confuso. ¿Cómo y dónde

haría Ia secuencia de pasos? El uso de los diagramas de casos de uso será,

por lo general, parte de un documento de diseño que el cliente y el equipo de

diseño tomarán como referencia. Cada diagrama tendrá su propia página, de

igual manera, cada escenario de caso de uso tendrá su propia página, donde

se listará en modo de texto a:

El actor que inicia al caso de uso

15

Condiciones previas para el caso de uso

Pasos en el escenario

Condiciones posteriores cuando se finaliza el escenario

El actor que se beneficia del caso de uso

También puede enumerar las conjeturas del escenario (por ejemplo, que un

cliente a la vez utilizará la máquina de gaseosas) y una breve descripción de

una sola frase del escenario.

Las clases pueden heredarse entre sí y esto también se aplica a los casos de

uso. En la herencia de los casos de uso, el caso de uso secundario hereda las

acciones y significado del primario, y además agrega sus propias acciones.

Puede aplicar el caso de uso secundado en cualquier lugar donde aplique el

primario. En el ejemplo, deberá imaginar un caso de uso “Comprar un vaso de

gaseosa” que se hereda de “Comprar gaseosa”. El caso de uso secundario

tiene acciones como “agregar hielo y mezclar marcas de gaseosas. Modelara la

generalización de casos de uso de Ia misma forma que lo hace con las clases:

con líneas continuas y una punta de flecha en forma de triángulo sin rellenar

que apunta hacia el caso de uso primario, como se muestra en la figura.

La relación de generalización puede establecerse entre actores, así como entre

casos de uso. Quizá tenga personificados al representante del proveedor, al

recolector y al agente del proveedor. Si cambia el nombre del representante

como Reabastecedor, tanto éste como el Recolector serán secundarios del

Agente Proveedor, como muestra la figura.

16

3.3 Heurística

Una heurística es un método basado en la experiencia que puede utilizarse

como ayuda para resolver problemas de diseño, desde calcular los recursos

necesarios hasta en planear las condiciones de operación de los sistemas.

Mediante el uso de heurísticas, es posible resolver más rápidamente problemas

conocidos o similares a otros conocidos. Existen varios métodos heurísticos

disponibles para los ingenieros como, por ejemplo, el Análisis modal de fallos y

efectos y los árboles de fallo. En el primero se depende de un grupo de

ingenieros experimentados que evalúan los problemas y fallos, los ordenan

según su importancia y recomiendan soluciones.

Dado que las heurísticas pueden equivocarse, es fundamental conocer los

casos en los que son aplicables y los límites a su uso. En general, deben

considerarse como ayudas o apoyos para hacer estimaciones rápidas y

diseños preliminares, pero no como justificaciones finales de un diseño o

proyecto u otros.

17

4 RELACIÓN ENTRE CASOS DE USO: INCLUSIÓN Y EXTENSIÓN

4.1 Relación de Inclusión

El modelado de casos de uso persigue capturar la funcionalidad del sistema

visto desde el punto de vista de sus operadores (actores) por lo que es

fundamentalmente una construcción de elementos de modelado comprensibles

por los clientes y no solo por los analistas.

Sin embargo, en ocasiones es conveniente introducir algunos pocos elementos

que no sean directamente los conceptos que manejan los clientes. Por ejemplo,

en aras de evitar la redundancia, es posible pensar en extraer algunos

fragmentos que nos permita indicar en uno o más casos de uso este fragmento

repetido, por referencia en lugar de repetirlo en cada caso.

A este proceso de extracción del fragmento repetido lo modelamos por medio

de la relación de inclusión <<include>>, tal como se ve en el siguiente

diagrama:

Relación de inclusión entre casos de uso

En la figura, el caso de uso “A” es un fragmento, que define un trozo de un flujo

de eventos que es referido por el caso de uso “B”. En este tipo de relación, el

caso incluido (el “A”) debe ser un fragmento, nunca un caso concreto, en tanto

que el caso que incluye (el “B” del ejemplo) si ha de ser un caso de uso

completo.

18

A diferencia de la relación de extensión, aquí ninguno de los casos de uso

involucrados puede ser entendido por completo como piezas aisladas. Por un

lado, el caso incluido es solo un fragmento, por lo que no es posible

considerarlo un caso de uso pleno; en tanto que el caso que incluye al hacer

referencia a un fragmento externo tiene necesariamente que ser entendido en

presencia del fragmento.

Formalmente, como para el glosario:

Relación de Inclusión <<include>> Un caso de uso concreto incluye a un

fragmento de caso de uso, cuando como parte de su descripción breve o su

flujo de eventos, se hace referencia al texto del fragmento; de forma tal que lo

dicho en el fragmento pasa a ser parte de la especificación del caso de uso.

Para lograr que se entienda el concepto, nada mejor que un ejemplo.

Supongamos que estamos hablando de un sistema de gestión de agenda de

unas empresas con gerentes y asistentes. En este sistema hemos identificado

dos casos de uso:

Código: UC-0100.

Nombre: Acepta cita.

Actor: Gerente.

Descripción: El Gerente visualiza su calendario de citas y aprueba aquellas

citas que desee aceptar.

Código: UC-0200.

Nombre: Coordina cita.

Actor: Asistente.

Descripción: El asistente busca un momento apropiado para las citas

pendientes al visualizar el calendario de citas del Gerente. Indica para cada cita

propuesta la descripción, el día y la hora.

Tabla de casos de uso del sistema

19

Como se nota, en ambos casos se requiere de visualizar la agenda. Es posible

imaginar que esta función abarca no solo la visualización del calendario, sino

también ciertas funciones de búsqueda y filtrado por criterios. Para especificar

esta funcionalidad pero evitar hacerlo en cada uno de los flujos de eventos de

los casos de uso ya definidos, se opta por crear un fragmento que contenta

esos detalles e incluirlo en los casos de uso originales. La situación da lugar al

siguiente diagrama:

Modelo de casos de uso con un ejemplo de relación de inclusión

De esta forma, evitamos tener que definir en múltiples lugares una misma

funcionalidad. Sin embargo, el fragmento que se incluye ha de ser visto

siempre como lo que es: un fragmento sin significado completo. En verdad es

una lástima que de momento no tengamos una forma de marcar a los

20

fragmentos de manera que se diferencien a simple vista de los casos de uso.

Sugiero que al menos, en tanto surge un estereotipo estándar para esta tarea,

tengamos una serie de numeración particular para los fragmentos. O bien,

tomar la iniciativa y definir un estereotipo de UML por nosotros mismos.

Naturalmente que a la hora de hacer la especificación detallada de los casos

de uso, en particular en los flujos de eventos, debemos marcar muy claramente

en qué lugar se ha de realizar la inclusión de lo dicho en el fragmento.

La relación de inclusión es claramente diferente a la relación de extensión y

espero que haya quedado claro. La inclusión es una relación entre un caso de

uso concreto y un fragmento, en tanto que la extensión involucra casos de uso

concretos.

Por otra parte, a diferencia de la relación de extensión, la inclusión en cierta

forma modifica al caso que incluye, por cuanto el fragmento define una parte de

la funcionalidad del caso de uso completo. Esto significa que el caso de uso

que incluye no puede ser entendido por completo en ausencia del fragmento

que se incluye; algo muy diferente a la situación en una relación de extensión.

Webgrafía:

http://synergix.wordpress.com/2008/06/07/casos-de-uso-avanzados-relacion-de-

inclusion/

4.2 Relación de extensión

En muchas ocasiones el uso de características avanzadas de los casos de uso

genera dudas en los equipos de desarrollo. La razón básica es que estos

modelos deben ser claros antes que cualquier otra cosa, lo que lleva a evitar el

uso de las relaciones de inclusión y extensión, entre otras características.

Sin embargo, por muy de acuerdo que podamos estar con el deseo de claridad

y sencillez, existen situaciones en que hacer uso de una relación avanzada

21

entre casos de uso mejora en lugar de reducir, la claridad del modelo de

requisitos. De ahí por tanto que todo analista de requisitos debe comprender

perfectamente el significado de estas relaciones. En el presente post

abordamos la relación de extensión <<extend>>.

Técnicamente como para el glosario, la relación de extensión <<extend>> se

define como:

Relación <<extend>> Un caso de uso extiende a otro cuando sin alterar a este,

se incorpora su funcionalidad como parte integral del primero. Se denota con

una relación que apunta del caso extendido al caso base y la conexión se hace

o bien al principio del flujo de eventos principal del caso base o en alguno de

los puntos de extensión que este haya definido.

La notación gráfica es la siguiente:

Relación de extensión <<extend>>

La relación del ejemplo significa que un caso de uso ya existente (el caso “A”)

se aprovecha en la definición de un segundo caso (el caso “B”). Dado que la

reutilización que requerimos agrega funcionalidad pero no altera al caso base,

se ha optado por la relación de extensión. Dicha relación se ha denotado

gráficamente con una flecha de dependencia desde el caso extendido (el caso

“B”) al caso base (el caso “A”). La dependencia la hemos estereotipado con

<<extend>> para que quede claro lo que pretendemos decir.

A nivel de los flujos de eventos, se podría decir que el flujo principal del caso

base no se ve alterado, pero que en cambio, el flujo de eventos del caso

22

extendido hace referencia al primero, de manera tal que no puede ser

entendido en ausencia de los pasos del caso base.

A fin de contar con un ejemplo completo, consideremos un sistema de compras

electrónico. Digamos que este sistema va a atender tanto a clientes finales

como a clientes corporativos, permitiendo que adquieran productos en nuestra

tienda en línea. La diferencia será que los clientes corporativos hacen compras

masivas, quizás programando la entrega a lo largo de un periodo de tiempo de

lo que compraron. Esta visión la podemos expresar en el siguiente diagrama:

Ejemplo de relación <<extend>> en un sistema de tienda electrónica en Internet

Ahora si vamos al caso de uso base “Compra artículo (UC-0100)” podríamos

tener la funcionalidad de escoger el artículo a comprar y el de pagar con tarjeta

de crédito, por ejemplo. Esta funcionalidad está disponible a los clientes finales,

tal como se ve en el diagrama.

23

Por su parte, los clientes corporativos pueden escoger el artículo a comprar y el

modo de pago: digamos tarjetas de crédito. Además el caso de uso captura

también la funcionalidad de programar la entrega parcial de lo comprado a lo

largo de un periodo de tiempo. Dado que gran parte del caso de uso “Compra

masiva (UC-0200)” es idéntica a la encontrada en el caso del cliente final,

optamos por reutilizar la especificación por vía de la relación de extensión.

Los criterios a aplicar para saber si la relación de extensión es aplicable son los

siguientes:

Hay cuando menos un caso base y un caso extendido.

El caso base no se ve modificado por la existencia del caso extendido.

El caso base es un caso concreto atado a cuando menos un actor.

El caso extendido incorpora al caso base por completo.

La relación de extensión guarda relación con todos los restantes tipos de

reutilización que están definidas para los casos de uso; en particular la relación

es muy íntima con la relación de inclusión <<include>> sin embargo la

diferencia primordial entre <<extend>> e <<include>> es la modificación del

caso base. Extensión no implica cambio, en tanto que la inclusión añade

funcionalidad al caso base.

Otra relación, la herencia, es similar también a la extensión. En este caso la

diferencia es que la herencia cambia o puede cambiar, la naturaleza de lo dicho

en el caso base. Por ejemplo, podemos decir que aquello que fue llamado

“artículo” en el caso base es ahora referido más detalladamente como “libro” o

“juguete”. La herencia de casos de uso reutiliza al caso base sí, pero nos

permite alterar la semántica de los detalles; algo que la relación de extensión

(ni la de inclusión) pueden hacer.

24

Por tanto concluyamos: la relación de extensión permite reutilizar una

especificación pero sin modificar al caso base.

Webgrafía:

http://synergix.wordpress.com/2008/06/05/casos-de-uso-avanzados-relacion-

extend/

25

5 OBJETOS INICIALES DE ANÁLISIS.

Analizar los requisitos en la forma de un modelo de análisis es importante por

varios motivos, como ya hemos explicado:

• Un modelo de análisis ofrece una especificación más precisa de los requisitos

que la que tenemos como resultado de la captura de requisitos, incluyendo al

modelo de casos de uso.

• Un modelo de análisis se describe utilizando el lenguaje de los

desarrolladores, y puede por tanto introducir un mayor formalismo y ser

utilizado para razonar sobre los funcionamientos internos del sistema.

• Un modelo de análisis estructura los requisitos de un modo que facilita su

comprensión, su preparación, su modificación, y en general, su mantenimiento.

Un modelo de análisis puede considerarse como una primera aproximación al

modelo de diseño (aunque es un modelo por sí mismo), y es por tanto una

entrada fundamental cuando se da forma al sistema en el diseño y en la

implementación. Esto se debe a que debería ser mantenible el sistema en su

conjunto, y no sólo la descripción de sus requisitos.

Webgrafía:

http://www.cannes.itam.mx/Alfredo/Espaniol/Publicaciones/MINT/Requisitos.pdf

26

6 REQUISITO NO FUNCIONAL

Un requisito no funcional o atributo de calidad es, en la ingeniería de sistemas y

la ingeniería de software, un requisito que específica criterios que pueden

usarse para juzgar la operación de un sistema en lugar de sus

comportamientos específicos, ya que éstos corresponden a los requisitos

funcionales. Por tanto, se refieren a todos los requisitos que ni describen

información a guardar, ni funciones a realizar.

Algunos ejemplos de requisitos no funcionales típicos son los siguientes:

Rendimiento.

Disponibilidad.

Seguridad.

Accesibilidad.

Usabilidad.

Estabilidad.

Portabilidad.

Costo.

Operatividad.

Interoperabilidad.

Escalabilidad.

Concurrencia.

Mantenibilidad.

Interfaz.

Los requerimientos no funcionales hacen relación a las características del

sistema que aplican de manera general como un todo, más que a rasgos

particulares del mismo. Estos requerimientos son adicionales a los

requerimientos funcionales que debe cumplir el sistema, y corresponden a

aspectos tales como:

Flexibilidad.

Desempeño.

27

Facilidad de uso e ingreso de información.}

Facilidad para las pruebas.

Administración.

Validación de información.

Arquitectura.

Backups.

Integración.

Interoperabilidad.

Políticas y gestión de la información para la administración.

Webgrafía:

http://es.wikipedia.org/wiki/Requisito_no_funcional

http://www.procuraduria.gov.co/infosim/media/file/VERSIONES_EN_PDF/

Etapa4-ReqNoFunc.pdf

CONCLUSIONES

28

En la relación entre casos de usos, encontramos la relación de inclusión, la

cual nos indica que un caso de uso llama al fragmento de otro caso para

completar una función ya que ambos tienen un mismo objetivo; pero este

llamado genera cambios en el caso de uso base.

También existe la relación de extensión, en ella se ve el llamado que hace un

caso de uso a otro, sin alterar al caso base, en pocas palabras es una función

adicional y opcional, que no es necesario que todas las veces se cumpla.

En la relación entre casos de usos, encontramos la relación de inclusión, la

cual nos indica que un caso de uso llama al fragmento de otro caso para

completar una función ya que ambos tienen un mismo objetivo; pero este

llamado genera cambios en el caso de uso base.

También existe la relación de extensión, en ella se ve el llamado que hace un

caso de uso a otro, sin alterar al caso base, en pocas palabras es una función

adicional y opcional, que no es necesario que todas las veces se cumpla.

Un modelo de análisis puede considerarse como una primera aproximación al

modelo de diseño (aunque es un modelo por sí mismo), y es por tanto una

entrada fundamental cuando se da forma al sistema en el diseño y en la

implementación. Esto se debe a que debería ser mantenible el sistema en su

conjunto, y no sólo la descripción de sus requisitos.

29