Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Este trabajo ha sido o est siendo financiado por los siguientes proyectos:
Proyecto CICYT "MENHIR"(TIC 970593C0503)
Proyecto CICYT "GEOZOCO"(TIC 20001106C0201)
Proyecto CYTED "WEST"(VII.18)
Lista de cambios
Nm.
0
Fecha
13/10/1998
04/11/1998
04/11/1998
04/11/1998
04/11/1998
5
6
04/11/1998
18/10/1999
7
8
18/10/1999
18/10/2000
9
10
18/10/2000
26/10/2001
11
12
13
26/10/2001
10/04/2002
10/04/2002
Descripcin
Versin 1.0
[pg. 18] En el apartado de importancia de la plantilla general de
requisitos del sistema, donde apareca "En este apartado se indica la
importancia que tiene el caso de uso para el cliente" aparece ahora "En
este apartado se indica la importancia que tiene el requisito para el cliente".
[pg. 18] En el apartado de urgencia de la plantilla general de requisitos del sistema, donde apareca ". . . incluyendo la funcionalidad
expresada en el caso de uso" aparece ahora . . . incluyendo las capacidades expresadas en el requisito".
[pg. 23] En la descripcin de la relacin extends entre casos de uso,
donde apareca "En cierta forma, B completa la funcionalidad de A"
aparece ahora "En cierta forma, A completa la funcionalidad de B".
[pgs. 3, 6, 8, 15, 16, 17, 18, 19, 22, 23, 24, 26, 27, 30] Correcciones
ortogrficas diversas.
Publicacin de la versin 1.1.
En la versin 2.0 se han introducido numerosos cambios, los principales son los siguientes:
El ttulo cambia de Norma para la Recoleccin de Requisitos de un Sistema Software a Metodologa para la Elicitacin de Requisitos de Sistemas
Software.
La primera seccin del documento pasa de denominarse Objetivo y
alcance a Objetivo de la metodologa.
Se han eliminado de la tarea 1 las referencias relativas a la construccin de modelos de anlisis del dominio.
En la tarea 2 se habla de reuniones en lugar de hacerlo especficamente de entrevistas.
Se ha aadido la tarea 3 Identificar los objetivos del sistema como tarea
previa a la identificacin de los requisitos y se ha diseado una
plantilla especfica para los objetivos.
Se han cambiado todas las apariciones de otros requisitos por requisitos no funcionales.
Se ha cambiado el contenido de las secciones Introduccin y Objetivos del sistema del DRS.
Se han aadido al DRS las secciones Participantes en el proyecto y
Matriz de rastreabilidad.
Se ha contemplado la posibilidad de organizar los requisitos de forma que no sean una lista plana.
Se han aadido las descripciones de las tcnicas de JAD y brainstorming.
Se ha reescrito la descripcin de la tcnica de los casos de uso.
Se ha cambiado el nombre de la relacin uses entre casos de uso a
includes para adaptar la notacin a UML.
Se han aadido plantillas especficas para objetivos y actores.
Se han aadido nuevos campos y patronesL a todas las plantillas,
introduciendo el concepto de patrn lingstico.
Se han eliminado los subpasos de la plantilla para requisitos funcionales (casos de uso).
Se ha reescrito la mayor parte del ejemplo de aplicacin de la metodologa.
Versin 2.0.
En la versin 2.1 se han introducido algunos cambios realizados
durante la elaboracin de la tesis doctoral de A. Durn [Durn
2000].
Versin 2.1 (Informe Tcnico LSI200010)
En la versin 2.2 se han introducido algunos cambios realizados
durante la implementacin de la herramienta CASE REM. Estos
cambios afectan a algunos campos de algunas plantillas, aunque
no de una forma significativa.
Versin 2.2.
Correciones menores
Versin 2.3.
Autor/es
A. Durn y B.
Bernrdez
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
A. Durn
ndice
1. Objetivo de la metodologa
2. Tareas recomendadas
2.1.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2. Descripcin . . . . . . . . . . . . . . . . . . . . . . . .
2.2.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Descripcin . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2. Descripcin . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2. Descripcin . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.2. Descripcin . . . . . . . . . . . . . . . . . . . . . . . .
2.6.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6.2. Descripcin . . . . . . . . . . . . . . . . . . . . . . . .
10
10
10
3. Productos entregables
10
11
3.1.1. Portada . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
11
3.1.3. ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
14
3.1.5. Introduccin . . . . . . . . . . . . . . . . . . . . . . . .
14
14
14
15
15
15
15
15
15
16
16
II
17
4.1. Entrevistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.1. Preparacin de entrevistas . . . . . . . . . . . . . . . . 18
4.1.2. Realizacin de entrevistas . . . . . . . . . . . . . . . . 19
4.1.3. Anlisis de las entrevistas . . . . . . . . . . . . . . . . 20
4.2. Joint Application Development . . . . . . . . . . . . . . . . . 21
4.2.1. Participantes del JAD . . . . . . . . . . . . . . . . . . 22
4.2.2. Fases del JAD . . . . . . . . . . . . . . . . . . . . . . . 23
4.3. Brainstorming . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3.1. Fases del brainstorming . . . . . . . . . . . . . . . . . 25
4.4. Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4.1. Diagramas de casos de uso . . . . . . . . . . . . . . . 27
4.4.2. Relaciones entre casos de uso . . . . . . . . . . . . . . 28
4.4.3. Organizacin de casos de uso . . . . . . . . . . . . . . 30
5. Plantillas y patrones lingsticos para elicitacin de requisitos
30
48
52
52
55
55
71
IV
ndice de figuras
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Diagrama de subsistemas . . . . . . . . . . . . . . . . . . . . 52
21.
22.
23.
52
VI
Objetivo de la metodologa
1. Objetivo de la metodologa
El objetivo de esta metodologa es la definicin de las tareas a realizar,
los productos a obtener y las tcnicas a emplear durante la actividad de
elicitacin de requisitos de la fase de ingeniera de requisitos del desarrollo de
software.
En esta metodologa se distinguen dos tipos de productos: los productos entregables y los productos no entregables o internos. Los productos entregables son aquellos que se entregan oficialmente al cliente como parte
del desarrollo en fechas previamente acordadas, mientras que los no entregables son productos internos al desarrollo que no se entregan al cliente.
El nico producto entregable definido en esta metodologa es el Documento de Requisitos del Sistema (DRS), definido en la seccin 3.1, pg. 11.
La estructura de este documento es la siguiente: en la seccin 2 se describen las tareas recomendadas, en la seccin 3 se definen los productos
entregables, en este caso el DRS, y por ltimo, en la seccin 4 se describen
algunas de las tcnicas recomendadas para obtener los productos. Tambin se incluye como apndice un ejemplo de aplicacin de esta metodologa.
2. Tareas recomendadas
Las tareas recomendadas para obtener los productos descritos en esta
metodologa son las siguientes:
Tarea 1: Obtener informacin sobre el dominio del problema y el sistema
actual.
Tarea 2: Preparar y realizar las reuniones de elicitacin/negociacin.
Tarea 3: Identificar/revisar los objetivos del sistema.
Tarea 4: Identificar/revisar los requisitos de informacin.
Tarea 5: Identificar/revisar los requisitos funcionales.
Tarea 6: Identificar/revisar los requisitos no funcionales.
Tarea 7: Priorizar objetivos y requisitos.
A. Durn, B. Bernrdez
El orden recomendado de realizacin para estas tareas es: 1. . . 7, aunque las tareas 4, 5, y 6 pueden realizarse simultneamente o en cualquier
orden que se considere oportuno (ver figura 1). La tarea 1 es opcional y
depende del conocimiento previo que tenga el equipo de desarrollo sobre
el dominio del problema y el sistema actual.
Identificar/revisar los
objetivos del sistema
Identificar/revisar los
requisitos de informacin
Identificar/revisar los
requisitos no funcionales
Identificar/revisar los
requisitos funcionales
Priorizar objetivos y
requisitos
2.1. Tarea 1: Obtener informacin sobre el dominio del problema y el sistema actual
2.1.1. Objetivos
Conocer el dominio del problema.
Conocer la situacin actual.
2.1.2. Descripcin
Antes de mantener las reuniones con los clientes y usuarios e identificar los requisitos es fundamental conocer el dominio del problema y los
contextos organizacional y operacional, es decir, la situacin actual.
Enfrentarse a un desarrollo sin conocer las caractersticas principales ni
el vocabulario propio de su dominio suele provocar que el producto final
no sea el esperado por clientes ni usuarios.
Por otro lado, mantener reuniones con clientes y usuarios sin conocer
las caractersticas de su actividad har que probablemente no se entiendan sus necesidades y que su confianza inicial hacia el desarrollo se vea
deteriorada enormemente.
Esta tarea es opcional, ya que puede que no sea necesario realizarla si
el equipo de desarrollo tiene experiencia en el dominio del problema y el
sistema actual es conocido.
2.1.3. Productos internos
Informacin recopilada: libros, artculos, folletos comerciales, desarrollos previos sobre el mismo dominio, etc.
Modelos del sistema actual.
2.1.4. Productos entregables
Introduccin, participantes en el proyecto, principalmente clientes
y desarrolladores, descripcin del sistema actual y glosario de trminos como parte del DRS (ver secciones 3.1.53.1.7 y 3.1.17, pgs.
1414 y 17).
A. Durn, B. Bernrdez
de los conflictos identificados. Puede que los objetivos hayan sido proporcionados antes de comenzar el desarrollo.
2.3.3. Productos internos
No hay productos internos en esta tarea.
2.3.4. Productos entregables
Objetivos del sistema como parte del DRS (ver seccin 3.1.8, pg. 15).
2.3.5. Tcnicas recomendadas
Anlisis de factores crticos de xito [MAP 1995] o alguna tcnica
similar de identificacin de objetivos.
Plantilla para especificar los objetivos del sistema (ver seccin 5.1,
pg. 32).
en esta tarea se debe identificar, o revisar si existen conflictos, qu informacin relevante para el cliente deber gestionar y almacenar el sistema
software a desarrollar as como qu restricciones o reglas de negocio debe
cumplir dicha informacin.
Inicialmente se partirn de conceptos generales para posteriormente ir
detallndolos hasta obtener todos los datos relevantes.
2.5.2. Descripcin
A partir de la informacin obtenida en las tareas 1 y 2, y teniendo en
cuenta los objetivos identificados en la tarea 3 y el resto de los requisitos,
en esta tarea se debe identificar, o revisar si existen conflictos, qu debe
hacer el sistema a desarrollar con la informacin identificada en la tarea
anterior.
Inicialmente se identificarn los actores que interactuarn con el sistema, es decir aquellas personas u otros sistemas que sern los orgenes o
destinos de la informacin que consumir o producir el sistema a desarrollar y que forman su entorno.
A continuacin se identificarn los casos de uso asociados a los actores,
los pasos de cada caso de uso y posteriormente se detallarn los casos de
uso con las posibles excepciones hasta definir todas las situaciones posibles.
En el caso de que se considere necesario, se podr optar por expresar
algunos o todos los requisitos funcionales de la forma tradicional, es decir,
mediante un prrafo en lenguaje natural, en lugar de hacerlo mediante
casos de uso.
2.5.3. Productos internos
No hay productos internos en esta tarea.
2.5.4. Productos entregables
Requisitos funcionales como parte del DRS (ver seccin 3.1.11, pg.
15).
2.5.5. Tcnicas recomendadas
Casos de uso (ver seccin 4.4, pg. 27).
Plantilla para actores (ver seccin 5.3, pg. 36).
Plantilla para casos de uso (ver seccin 5.4, pg. 37).
Plantilla para requisitos funcionales (ver seccin 5.4, pg. 37).
Dpto. de Lenguajes y Sistemas Informticos
10
fiabilidad mide la probabilidad del sistema de producir una respuesta satisfactoria a las demandas del usuario. Por ejemplo: la tasa de
fallos del sistema no podr ser superior a 2 fallos por semana.
Requisitos de entorno de desarrollo
Este tipo de requisitos especifican si el sistema debe desarrollarse con
un producto especfico. Por ejemplo: el sistema deber desarrollarse con
Oracle 7 como servidor y clientes Visual Basic 4.
Requisitos de portabilidad
Los requisitos de portabilidad definen qu caractersticas deber tener el software para que sea fcil utilizarlo en otra mquina o bajo
otro sistema operativo. Por ejemplo: el sistema deber funcionar en los
sistemas operativos Windows 95, Windows 98 y Windows NT 4.0, siendo
adems posible el acceso al sistema a travs de Internet usando cualquier
navegador compatible con HTML 3.0.
3. Productos entregables
El nico producto entregable que se contempla en esta metodologa es
el Documento de Requisitos del Sistema (DRS).
Dpto. de Lenguajes y Sistemas Informticos
11
3.1.1. Portada
La portada del DRS debe tener el formato que puede verse en la figura
3. Los elementos que deben aparecer son los siguientes:
Nombre del proyecto: el nombre del proyecto al que pertenece el
DRS.
Versin: la versin del DRS que se entrega al cliente. La versin se
compone de dos nmeros X e Y . El primero indica la versin, y se
debe incrementar cada vez que se hace una nueva entrega formal
al cliente. Cuando se incremente el primer nmero, el segundo debe volver a comenzar en cero. El segundo nmero indica cambios
dentro de la misma versin an no entregada, y se debe incrementar
cada vez que se publica una versin con cambios respecto a la ltima que se public y que no se vaya a entregar formalmente todava.
Este tipo de versiones pueden ser internas al equipo de desarrollo o
ser entregadas al cliente a ttulo orientativo.
Fecha: fecha de la publicacin de la versin.
Equipo de desarrollo: nombre de la empresa o equipo de desarrollo.
Cliente: nombre del cliente, normalmente otra empresa.
12
Portada
Lista de cambios
ndice
Lista de figuras
Lista de tablas
1.
Introduccin
2.
Participantes en el proyecto
3.
4.
5.
6.
7.
Glosario de trminos
8.
Apndices [opcionales]
13
Documento de
Requisitos del Sistema
Versin X:Y
Fecha fecha
Nm.
0
1
Fecha
fecha0
fecha1
..
.
..
.
fechan
Descripcin
Versin x.y
descripcin cambio1
Autores
autor0
autor1
..
.
descripcin cambion
..
.
autorn
A. Durn, B. Bernrdez
14
3.1.3. ndice
El ndice del DRS debe indicar la pgina en la que comienza cada seccin, subseccin o apartado del documento. En la medida de lo posible, se
sangrarn las entradas del ndice para ayudar a comprender la estructura
del documento.
3.1.5. Introduccin
Esta seccin debe contener una descripcin breve de las principales
caractersticas del sistema software que se va a desarrollar, la situacin
actual que genera la necesidad del nuevo desarrollo, la problemtica que
se acomete, y cualquier otra consideracin que site al posible lector en el
contexto oportuno para comprender el resto del documento.
15
16
Este apartado debe contener una lista con los actores que se hayan
identificado, especificados mediante la plantilla para actores de casos de
uso descrita en la seccin 5.3, pg. 36.
RI01
RI02
...
RF01
RF02
...
RNF01
RNF02
...
OBJ01
OBJ02
...
OBJ-n
Tcnicas
17
3.1.19. Apndices
Los apndices se usarn para proporcionar informacin adicional a la
documentacin obligatoria del documento. Slo deben aparecer si se consideran oportunos y se identificarn con letras ordenadas alfabticamente:
A, B, C, etc.
4. Tcnicas
A continuacin, se describen algunas de las tcnicas que se proponen
en esta metodologa para obtener los productos de las tareas que se han
descrito.
Las tcnicas ms habituales en la elicitacin de requisitos son las entrevistas, el Joint Application Development (JAD) o Desarrollo Conjunto de
Aplicaciones, el brainstorming o tormenta de ideas y la utilizacin de escenarios [Weidenhaput et al. 1998, Rolland et al. 1998], ms conocidos como
casos de uso [Jacobson et al. 1993, Booch et al. 1999].
A estas tcnicas, que se describen en los siguientes apartados, se las
suele apoyar con otras tcnicas complementarias como la observacin in
situ, el estudio de documentacin, los cuestionarios, la inmersin en el negocio del cliente [Goguen y Linde 1993] o haciendo que los ingenieros de
requisitos sean aprendices del cliente [Beyer y Holtzblatt 1995].
A. Durn, B. Bernrdez
18
4.1. Entrevistas
Las entrevistas son la tcnica de elicitacin ms utilizada, y de hecho
son prcticamente inevitables en cualquier desarrollo ya que son una de
las formas de comunicacin ms naturales entre personas.
En las entrevistas, y en otras tcnicas de interaccin, se pueden identificar tres fases: preparacin, realizacin y anlisis [Piattini et al. 1996].
4.1.1. Preparacin de entrevistas
Las entrevistas no deben improvisarse, por lo que conviene realizar las
siguiente tareas previas:
Estudiar el dominio del problema: conocer las categoras y conceptos de la comunidad de clientes y usuarios es fundamental para poder entender las necesidades de dicha comunidad y su forma de expresarlas [Goguen y Linde 1993], y para generar en los clientes y
usuarios la confianza de que el ingeniero de requisitos entiende sus
problemas.
Para conocer el dominio del problema se puede recurrir a tcnicas
de estudio de documentacin, a bibliografa sobre el tema, documentacin de proyectos similares realizados anteriormente, la inmersin
dentro de la organizacin para la que se va a desarrollar [Goguen y
Linde 1993] o a periodos de aprendizaje por partes de los ingenieros
de requisitos [Beyer y Holtzblatt 1995].
Seleccionar a las personas a las que se va a entrevistar: se debe minimizar el nmero de entrevistas a realizar, por lo que es fundamental seleccionar a las personas a entrevistar. Normalmente se comienza por los directivos, que pueden ofrecer una visin global, y se contina con los futuros usuarios, que pueden aportar informacin ms
detallada, y con el personal tcnico, que aporta detalles sobre el entorno operacional de la organizacin.
Tal como se recomienda en [Piattini et al. 1996], conviene tambin
estudiar el perfil de los entrevistados, buscando puntos en comn
con el entrevistador que ayuden a romper el hielo.
Determinar el objetivo y contenido de las entrevistas: para minimizar el tiempo de la entrevista es fundamental fijar el objetivo que se
pretende alcanzar y determinar previamente su contenido.
Dpto. de Lenguajes y Sistemas Informticos
19
Entrevistas
20
Preguntas abiertas: tambin denominadas de libre contexto [Gause y Weinberg 1989], estas preguntas no pueden responderse
con un "s" o un "no", permiten una mayor comunicacin y evitan la sensacin de interrogatorio. Por ejemplo, "Qu se hace
para registrar un pedido?", "Dgame qu se debe hacer cuando un
cliente pide una factura" o "Cmo se rellena un albarn?".
Estas preguntas se suelen utilizar al comienzo de la entrevista,
pasando posteriormente a preguntas ms concretas.
En general, se debe evitar la tendencia a anticipar una respuesta
a las preguntas que se formulan [Raghavan et al. 1994]. En [Gause y Weinberg 1989, cap. 6] se exponen interesantes ejemplos de
este tipo de preguntas y consejos para su utilizacin.
Una posibilidad es utilizar las plantillas descritas en la seccin 5,
pg. 30, como mecanismos tanto de obtencin de informacin,
ya que su estructura indica la informacin a buscar, como de
registro de las respuestas a este tipo de preguntas.
Utilizar palabras apropiadas: se deben evitar tecnicismos que
no conozca el entrevistado y palabras o frases que puedan perturbar emocionalmente la comunicacin [Goleman 1996, Goleman 1999].
Mostrar inters en todo momento: es fundamental cuidar la
comunicacin no verbal [Davis 1985] durante la entrevista: tono
de voz, movimiento, expresin facial, etc.
Por ejemplo, para animar a alguien a hablar puede asentirse con
la cabeza, decir "ya entiendo", "s", repetir algunas respuestas dadas, hacer pausas, poner una postura de atencin, etc. Debe evitarse bostezar, reclinarse en el silln, mirar hacia otro lado, etc.
3. Terminacin: al terminar la entrevista se debe recapitular para confirmar que no ha habido confusiones en la informacin recogida,
agradecer al entrevistado su colaboracin y citarle para una nueva
entrevista si fuera necesario, dejando siempre abierta la posibilidad
de volver a contactar para aclarar dudas que surjan al estudiar la
informacin o al contrastarla con otros entrevistados.
4.1.3. Anlisis de las entrevistas
Una vez realizada la entrevista es necesario leer las notas tomadas, pasarlas a limpio, reorganizar la informacin, contrastarla con otras entrevistas o fuentes de informacin, etc.
Dpto. de Lenguajes y Sistemas Informticos
21
22
23
24
A medida que se van elicitando requisitos, el analista los escribe en transparencias o en algn otro medio que permita que
permanezcan visibles durante la discusin. Una posibilidad es
utilizar para ello las plantillas descritas en la seccin 5, pg. 30.
c) Delimitar el mbito del sistema: una vez obtenido un nmero
importante de requisitos, es necesario organizarlos y llegar a un
acuerdo sobr el mbito del nuevo sistema.
En el caso de los sistemas de informacin, es til identificar a los
usuarios potenciales (actores) y determinar qu tareas les ayudar a realizar (casos de uso).
d) Documentar temas abiertos: aquellas cuestiones que hayan surgido durante la sesin que no se han podido resolver, deben documentarse para las siguientes sesiones y ser asignadas a una
persona responsable de su solucin para una fecha determinada, para lo cual puede utilizarse la plantilla de conflictos descrita en la seccin 5.6, pg. 42.
e) Concluir la sesin: el jefe del JAD concluye la sesin revisando
con los dems participantes la informacin elicitada y las decisiones tomadas. Se da la oportunidad a todos los participantes
de expresar cualquier consideracin adicional, fomentando por
parte del jefe del JAD el sentimiento de propiedad y compromiso de todos los participantes sobre los requisitos elicitados.
3. Conclusin: una vez terminadas las sesiones es necesario transformar las transparencias, notas y dems documentacin generada en
documentos formales. Se distinguen tres pasos:
a) Completar la documentacin: los analistas recopilan la documentacin generada durante las sesiones en documentos conformes a las normas o estndares vigentes en la organizacin
para la que se desarrolla el proyecto.
b) Revisar la documentacin: la documentacin generada se enva a todos los participantes para que la comenten. Si los comentarios son lo suficientemente importantes, se convoca otra
reunin para discutirlos.
c) Validar la documentacin: una vez revisados todos los comentarios, el jefe del JAD enva el documento al patrocinador ejecutivo para su aprobacin. Una vez aprobado el documento se
envan copias definitivas a cada uno de los participantes.
Dpto. de Lenguajes y Sistemas Informticos
Brainstorming
25
4.3. Brainstorming
El brainstorming o tormenta de ideas es una tcnica de reuniones en
grupo cuyo objetivo es la generacin de ideas en un ambiente libre de crticas o juicios [Gause y Weinberg 1989, Raghavan et al. 1994]. Las sesiones
de brainstorming suelen estar formadas por un nmero de cuatro a diez
participantes, uno de los cuales es el jefe de la sesin, encargado ms de
comenzar la sesin que de controlarla.
Como tcnica de elicitacin de requisitos, el brainstorming puede ayudar a generar una gran variedad de vistas del problema y a formularlo
de diferentes formas, sobre todo al comienzo del proceso de elicitacin,
cuando los requisitos son todava muy difusos.
Frente al JAD, el brainstorming tiene la ventaja de que es muy fcil
de aprender y requiere poca organizacin, de hecho, hay propuestas de
realizacin de brainstorming por vdeoconferencia a travs de Internet
[Raghavan et al. 1994]. Por otro lado, al ser un proceso poco estructurado,
puede no producir resultados con la misma calidad o nivel de detalle que
otras tcnicas.
4.3.1. Fases del brainstorming
En el brainstorming se distinguen las siguientes fases [Raghavan et al.
1994]:
1. Preparacin: la preparacin para una sesin de brainstorming requiere que se seleccione a los participantes y al jefe de la sesin,
citarlos y preparar la sala donde se llevar a cabo la sesin. Los participantes en una sesin de brainstorming para elicitacin de requisitos son normalmente clientes, usuarios, ingenieros de requisitos,
desarrolladores y, si es necesario, algn experto en temas relevantes
para el proyecto.
2. Generacin: el jefe abre la sesin exponiendo un enunciado general
del problema a tratar, que hace de semilla para que se vayan generando ideas. Los participantes aportan libremente nuevas ideas sobre el
problema semilla, bien por un orden establecido por el jefe de la sesin, bien aleatoriamente. El jefe es siempre el responsable de dar la
palabra a un participante. Este proceso contina hasta que el jefe decide parar, bien porque no se estn generando suficientes ideas, en
cuyo caso la reunin se pospone, bien porque el nmero de ideas sea
A. Durn, B. Bernrdez
26
Casos de uso
27
28
y los casos de uso en los que stos intervienen. Las interacciones concretas
entre los actores y el sistema no se muestran en este tipo de diagramas.
El caso de uso B se realiza siempre dentro del caso de uso A. Adems, siempre que ocurre A ocurre tambin B , por lo que se dice que
B es un caso de uso abstracto [Jacobson et al. 1997, Firesmith 1997].
Un caso de uso es abstracto si no puede ser realizado por s mismo, por lo que slo tiene significado cuando se utiliza para describir
alguna funcionalidad que es comn a otros casos de uso. Por otra
parte, un caso de uso ser concreto si puede ser iniciado por un actor
y realizado por s mismo.
Se suele utilizar esta relacin cuando se detectan subsecuencias de
interacciones comunes a varios casos de uso. Dichas subsecuencias
comunes se sacan "factor comn"de los casos de uso que las contienen y se les da forma de casos de uso que son incluidos por los casos
de uso de los que se han "extrado". De esta forma se evita repetir
las mismas subsecuencias de interacciones una y otra vez en varios
casos de uso.
extends: un caso de uso A extiende a otro caso de uso B cuando A es
una subsecuencia de interacciones de B que ocurre en una determinada circunstancia.
En cierta forma, A completa la funcionalidad de B . El caso de uso
A puede realizarse o no cuando se realiza el caso de uso B , segn
se den las circunstancias. Por otro lado, el caso de uso A puede ser
un caso de uso abstracto o concreto, en cuyo caso puede ocurrir sin
necesidad de que ocurra el caso de uso B .
Dpto. de Lenguajes y Sistemas Informticos
29
Casos de uso
Caso de uso A
Caso de uso B
Actor 1
Actor 2
Caso de uso C
Sistema
B
<<includes>>
<<includes>>
<<includes>>
<<extends>>
A. Durn, B. Bernrdez
30
A
<<subsistema>>
B
<<subsistema>>
Actor 1
Actor 2
C
<<subsistema>>
Sistema
31
32
Ambos aspectos, la estructuracin de la informacin en forma de plantilla y la propuesta de frases "estndar", facilita la redaccin de los requisitos, permitiendo a los participantes en las actividades de elicitacin centrarse en expresar sus necesidades y no en cmo expresarlas.
En la notacin usada para describir los patronesL, las palabras o frases entre < y > deben ser convenientemente reemplazadas, las palabras
o frases que se encuentren entre { y } y separadas por comas representan
opciones de las que se debe escoger una y las palabras entre [ y ] son opcionales, es decir, pueden aparecer o no.
En las siguientes secciones se describen las plantillas propuestas y los
patronesL identificados.
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
El sistema deber <objetivo a cumplir por el sistema>
OBJx <nombre del subobjetivo>
...
<importancia del objetivo>
<urgencia del objetivo>
<estado del objetivo>
<estabilidad del objetivo>
<comentarios adicionales sobre el objetivo>
<
<
33
34
IRQ<id>
Versin
Autores
Fuentes
Objetivos asociados
Requisitos asociados
Descripcin
Datos especficos
Tiempo de vida
Ocurrencias simult.
Importancia
Urgencia
Estado
Estabilidad
Comentarios
35
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
...
Rxy <nombre del requisito>
...
El sistema deber almacenar la informacin correspondiente
a <concepto relevante>. En concreto:
<datos especficos sobre el concepto relevante>
...
Medio
Mximo
<tiempo medio de vida>
<tiempo mximo de vida>
Medio
Mximo
o
o
<n medio de ocurr. simult.>
<n mximo de ocurr. simult.>
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
<
<
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
...
Rxy <nombre del requisito>
...
La informacin almacenada por el sistema deber satisfacer
la siguiente restriccin: <restriccin o regla de negocio>.
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
<
<
36
Objetivos asociados: este campo debe contener una lista con los objetivos a los que est asociado el requisito, es decir de los objetivos
de los que depende. Esto permite conocer qu requisitos harn que
el sistema a desarrollar alcance los objetivos propuestos y justifican
de esta forma la existencia o propsito del requisito.
Requisitos asociados: en este campo se indican otros requisitos que
estn asociados por algn motivo con el requisito que se est describiendo, es decir de los requisitos de los que depende. De esta forma
se posibilita tener una rastreabilidad horizontal, similar a las relaciones entre assets del mismo nivel descritas en [Garca 2000].
Descripcin: para los requisitos de almacenamiento de informacin
este campo usa un patrnL que se debe completar con el concepto relevante sobre el que se debe almacenar informacin. En el caso
de los requisitos de restricciones de informacin, este campo usa un
patrnL que se debe completar con la restriccin o regla de negocio
que debe cumplir la informacin almacenada por el sistema.
Datos especficos: este campo contiene una lista de los datos especficos asociados al concepto relevante, de los que pueden indicarse todos aquellos aspectos que se considere oportunos (descripcin,
restricciones, ejemplos, etc.).
Tiempo de vida: este campo indica el tiempo de vida medio y mximo que se espera para cada ocurrencia del concepto relevante.
Ocurrencias simultneas: este campo indica el nmero medio y mximo de ocurrencias simultneas del concepto relevante. Tanto este
campo como el anterior permiten a los diseadores prever determinadas necesidades del sistema a desarrollar en lo relativo a las necesidades de almacenamiento de informacin.
Importancia, Urgencia, Estado, Estabilidad, Comentarios: estos campos tienen el mismo significado que en la plantilla para objetivos
aunque referidos al requisito.
37
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
Este actor representa a <rol que representa el actor>
<comentarios adicionales sobre el actor>
<
<
38
UC<id>
Versin
Autores
Fuentes
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Importancia
Urgencia
Estado
Estabilidad
Comentarios
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
<
<
...
Rxy <nombre del requisito>
...
El sistema deber comportarse tal como se describe en el siguiente
caso de uso { abstracto durante la realizacin de los siguientes casos
de uso: <lista de casos de uso>, cuando <evento de activacin> [o durante la realizacin de los siguientes casos de uso: <lista de casos de
uso>]}
<precondicin del caso de uso>
Paso Accin
p1
{El actor <actor>, El sistema} <accin/es realizada/s por
actor/sistema>
p2
Se realiza el caso de uso <caso de uso (RFx)>
p3
Si <condicin>, {el actor <actor>, el sistema} <accin/es realizada/s por actor/sistema>
p4
Si <condicin>, se realiza el caso de uso <caso de uso (RFx)>
...
...
<postcondicin del caso de uso>
Paso Accin
pi
Si <condicin de excepcin>, {el actor <actor>, el sistema}
<accin/es realizada/s por actor/sistema>, a continuacin este
caso de uso {contina, queda sin efecto}
pj
Si <condicin de excepcin>, se realiza el caso de uso <caso
de uso (RFx)>, a continuacin este caso de uso {contina,
queda sin efecto}
...
...
Paso Cota de tiempo
q
m <unidad de tiempo>
...
...
o
<n de veces> veces / <unidad de tiempo>
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
39
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
...
Rxy <nombre del requisito>
...
El sistema deber <capacidad del sistema>
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
<
<
40
Otro ejemplo puede ser especificar que el usuario puede intentar conectarse al sistema un mximo de tres veces. Una posible especificacin sera la que puede verse en la figura 16, bastante ms natural y
fcil de entender que la que puede verse en la figura 17 utilizando la
propuesta descrita en [Coleman 1998].
Postcondicin: en este campo se expresan en lenguaje natural las
condiciones que se deben cumplir despus de la terminacin normal del caso de uso. Al igual que en el caso de las precondiciones,
las postcondiciones se pueden establecer tanto sobre el entorno del
sistema como sobre el estado del propio sistema.
Excepciones: este campo especifica el comportamiento del sistema
en el caso de que se produzca alguna situacin excepcional durante
la realizacin de un paso determinado.
Despus de realizar las acciones o el caso de uso asociados a la excepcin (una extensin), el caso de uso puede continuar la secuencia
Dpto. de Lenguajes y Sistemas Informticos
41
Secuencia
normal
Paso
1
2
3
4
5
Excepciones
Paso
4
Accin
El sistema solicita al usuario su nombre de usuario y su
clave de acceso
El usuario proporciona el sistema su nombre y su clave
de acceso
El sistema comprueba si el nombre de usuario y la clave
de acceso son correctas
Si el nombre de usuario y la clave no son correctas, el
sistema permite al usuario repetir el intento (pasos 13)
hasta un mximo de tres veces
Si el nombre de usuario y la clave son correctas, el sistema
permite el acceso al usuario
Accin
Si el usuario ha intentado tres veces acceder sin xito, el
sistema rechaza el acceso del usuario, a continuacin este
caso de uso termina
A. Durn, B. Bernrdez
42
normal o quedar sin efecto, en cuyo caso se cancelan todas las acciones realizadas en el caso de uso dejando al sistema en el mismo
estado que antes de comenzar el caso de uso, asumiendo una semntica transaccional del mismo, tal como se describe en [Jacobson et al.
1997].
Inicialmente, la expresin utilizada para indicar una terminacin anormal del caso de uso como resultado de una excepcin era "este caso
de uso aborta". La experiencia durante su aplicacin nos llev a la
conclusin de que el termino abortar resultaba emocionalmente molesto para algunos participantes [Goleman 1996], por lo que se cambi
por "este caso de uso queda sin efecto" con el significado comentado
anteriormente.
Rendimiento: en este campo puede especificarse el tiempo mximo
para cada paso en el que el sistema realice un accin.
Frecuencia esperada: en este campo se indica la frecuencia esperada de realizacin del caso de uso, que aunque no es realmente un
requisito, es una informacin interesante para los desarrolladores.
43
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
...
Rxy <nombre del requisito>
...
El sistema deber <capacidad del sistema>
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
<
<
44
CFL<id>
Versin
Autores
Fuentes
Objs./Reqs.
en conflicto
Descripcin
Alternativas
Solucin
Importancia
Urgencia
Estado
Comentarios
nombre descriptivo>
no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJ/Ryy--x <nombre del objetivo o requisito en conflicto>
...
<descripcin del conflicto>
<descripcin alternativa de solucin> (<autores alternativa>)
...
<descripcin de la solucin adoptada (si se ha acordado)>
<importancia de la resolucin del conflicto>
<urgencia de la resolucin del conflicto>
<estado del resolucin del conflicto>
<comentarios adicionales sobre el conflicto>
<
<
Referencias
[Beyer y Holtzblatt 1995] H. R. Beyer y K. Holtzblatt. Apprenticing with
the Customer. Communications of the ACM, 38(5), Mayo 1995.
[Boehm et al. 1994] B. W. Boehm, P. Bose, E. Horowitz, y M.J. Lee.
Software Requirements as Negotiated Win Conditions.
En Proceedings of the First International Conference on Requirements Engineering, 1994.
Disponible en
http://sunset.usc.edu/TechRpts/Papers/NGPM-Requirements93.ps.
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Brackett 1990] J. W. Brackett. Software Requirements. Curriculum Module SEICM191.2, Software Engineering Institute, Carnegie Mellon
University, 1990. Disponible en http://www.sei.cmu.edu.
[Cockburn 1997] A. Cockburn. Structuring Use Cases with Goals. Journal
of ObjectOriented Programming, Sept. y Nov./Dic. 1997. Disponible en
http://members.aol.com/acockburn/papers/usecases.htm.
Dpto. de Lenguajes y Sistemas Informticos
45
Referencias
46
Referencias
47
A. Durn, B. Bernrdez
48
OBJ02
Descripcin
Estabilidad
Comentarios
OBJ02
Descripcin
Estabilidad
Comentarios
Requisitos de informacin
49
Descripcin
Datos especficos
Tiempo de vida
Ocurrencias simult.
Estabilidad
Comentarios
CRQ01
Objetivos asociados
Requisitos asociados
Descripcin
Estabilidad
Comentarios
A. Durn, B. Bernrdez
50
IRQ02
Objetivos asociados
Requisitos asociados
Descripcin
Datos especficos
Estabilidad
Comentarios
CRQ02
Objetivos asociados
Requisitos asociados
Descripcin
Estabilidad
Comentarios
Requisitos de informacin
IRQ03
Objetivos asociados
Requisitos asociados
Descripcin
Datos especficos
Estabilidad
Comentarios
CRQ03
Objetivos asociados
Requisitos asociados
Descripcin
Estabilidad
Comentarios
A. Durn, B. Bernrdez
51
52
<<subsistema>>
Gestin de
Socios
<<subsistema>>
Gestin de
Pelculas
<<subsistema>>
Gestin de
Alquileres
<<includes>>
Socio
Empleado del
vdeo-club
53
Requisitos funcionales
Empleado del
vdeo-club
Baja de cinta de vdeo (UC-08)
A. Durn, B. Bernrdez
54
Socio
Empleado del
vdeo-club
Requisitos funcionales
55
Socio
Este actor representa a los socios del vdeoclub
ninguno
ACT02
Descripcin
Comentarios
A. Durn, B. Bernrdez
56
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Estabilidad
Comentarios
Alta de socio
OBJ02 Gestionar las socios
Requisitos funcionales
UC02
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Estabilidad
Comentarios
57
Baja de socio
OBJ02 Gestionar las socios
A. Durn, B. Bernrdez
58
UC03
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
Requisitos funcionales
UC11
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
59
Consulta de un socio
OBJ02 Gestionar las socios
A. Durn, B. Bernrdez
60
UC12
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
Requisitos funcionales
UC15
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
61
Identificacin de socio
OBJ02 Gestionar las socios
50 veces/da
ninguno
A. Durn, B. Bernrdez
62
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
Alta de pelcula
OBJ01 Gestionar las cintas y pelculas
Requisitos funcionales
UC05
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
63
A. Durn, B. Bernrdez
64
UC08
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
Requisitos funcionales
UC10
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
65
A. Durn, B. Bernrdez
66
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
Requisitos funcionales
UC07
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
67
A. Durn, B. Bernrdez
68
UC09
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
Ingreso a cuenta
OBJ03 Gestionar los alquileres
69
Requisitos funcionales
UC13
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Importancia
Urgencia
Comentarios
A. Durn, B. Bernrdez
70
UC14
Objetivos
asociados
Requisitos
asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia
Comentarios
71
Requisitos no funcionales
Comentarios
NFR03
Objetivos asociados
Requisitos asociados
Descripcin
Comentarios
A. Durn, B. Bernrdez
Copias de seguridad
72