Comprension de Los Requerimientos CAP 5
Comprension de Los Requerimientos CAP 5
Comprension de Los Requerimientos CAP 5
COMPRENSIÓN
LOS REQUERIMIENTOS
DE
5
CONCEPTOS ntender los requerimientos de un problema es una de las tareas más difíciles que enfrenta
E
CLAVE
administración de los el ingeniero de software. Cuando se piensa por primera vez, no parece tan difícil desarro-
requerimientos . . . . . . . . . . 105 llar un entendimiento claro de los requerimientos. Después de todo, ¿acaso no sabe el
casos de uso . . . . . . . . . . . . 113 cliente lo que se necesita? ¿No deberían tener los usuarios finales una buena comprensión de
colaboración . . . . . . . . . . . . 107 las características y funciones que le darán un beneficio? Sorprendentemente, en muchas ins-
concepción . . . . . . . . . . . . . 102 tancias la respuesta a estas preguntas es “no”. E incluso si los clientes y los usuarios finales
despliegue de la función explican sus necesidades, éstas cambiarán mientras se desarrolla el proyecto.
de calidad . . . . . . . . . . . . . . 111
En el prólogo a un libro escrito por Ralph Young [You01] sobre las prácticas eficaces respecto
elaboración . . . . . . . . . . . . . 117
de los requerimientos, escribí lo siguiente:
especificación . . . . . . . . . . . 104
indagación . . . . . . . . . . . . . 103 Es la peor de las pesadillas. Un cliente entra a la oficina, toma asiento, lo mira a uno fijamente a los
indagación de los ojos y dice: “Sé que cree que entiende lo que digo, pero lo que usted no entiende es que lo que digo
requerimientos . . . . . . . . . . 108 no es lo que quiero decir.” Invariablemente, esto pasa cuando ya está avanzado el proyecto, después
ingeniería de de que se han hecho compromisos con los plazos de entrega, que hay reputaciones en juego y mucho
requerimientos . . . . . . . . . . 102 dinero invertido.
modelo del análisis . . . . . . . 117
Todos los que hemos trabajado en el negocio de los sistemas y del software durante algunos años
negociación . . . . . . . . . . . . . 121
hemos vivido la pesadilla descrita, pero pocos hemos aprendido a escapar. Batallamos cuando trata-
participantes. . . . . . . . . . . . 106
mos de obtener los requerimientos de nuestros clientes. Tenemos problemas para entender la infor-
patrones de análisis . . . . . . 120
mación que obtenemos. Es frecuente que registremos los requerimientos de manera desorganizada y
productos del trabajo. . . . . . 112
que dediquemos muy poco tiempo a verificar lo que registramos. Dejamos que el cambio nos controle
puntos de vista . . . . . . . . . . 107
en lugar de establecer mecanismos para controlarlo a él. En pocas palabras, fallamos en establecer un
validación . . . . . . . . . . . . . . 105 fundamento sólido para el sistema o software. Cada uno de los problemas es difícil. Cuando se com-
validación de los binan, el panorama es atemorizador aun para los gerentes y profesionales más experimentados. Pero
requerimientos . . . . . . . . . . 122
hay solución.
UNA
MIRADA ¿Qué es? Antes de comenzar cualquier tra- a definir lo que se requiere. Después sigue la elaboración,
RÁPIDA
bajo técnico es una buena idea aplicar un donde se refinan y modifican los requerimientos básicos.
conjunto de tareas de ingeniería a los requeri- Cuando los participantes definen el problema, tiene lugar
mientos. Éstas llevarán a la comprensión de una negociación: ¿cuáles son las prioridades, qué es lo
cuál será el efecto que tendrá el software en el negocio, esencial, cuándo se requiere? Por último, se especifica el
qué es lo que quiere el cliente y cómo interactuarán los problema de algún modo y luego se revisa o valida para
usuarios finales con el software. garantizar que hay coincidencia entre la comprensión que
¿Quién lo hace? Los ingenieros de software (que en el usted tiene del problema y la que tienen los participantes.
mundo de las tecnologías de información a veces son lla- ¿Cuál es el producto final? El objetivo de los requeri-
mados ingenieros de sistemas o analistas) y todos los mientos de ingeniería es proporcionar a todas las partes
demás participantes del proyecto (gerentes, clientes y un entendimiento escrito del problema. Esto se logra por
usuarios) intervienen en la ingeniería de requerimientos. medio de varios productos del trabajo: escenarios de uso,
¿Por qué es importante? Diseñar y construir un elegan- listas de funciones y de características, modelos de reque-
te programa de cómputo que resuelva el problema equivo- rimientos o especificaciones.
cado no satisface las necesidades de nadie. Por eso es ¿Cómo me aseguro de que lo hice bien? Se revisan
importante entender lo que el cliente desea antes de con los participantes los productos del trabajo de la inge-
comenzar a diseñar y a construir un sistema basado en niería de requerimientos a fin de asegurar que lo que se
computadora. aprendió es lo que ellos quieren decir en realidad. Aquí
¿Cuáles son los pasos? La ingeniería de requerimientos cabe una advertencia: las cosas cambiarán aun después
comienza con la concepción, tarea que define el alcance y de que todas las partes estén de acuerdo, y seguirán cam-
la naturaleza del problema que se va a resolver. Va segui- biando durante todo el proyecto.
da de la indagación, labor que ayuda a los participantes
101
www.FreeLibros.me
Es razonable afirmar que las técnicas que se estudiarán en este capítulo no son una “solu-
ción” verdadera para los retos que se mencionaron, pero sí proveen de un enfoque sólido para
enfrentarlos.
5. 1 INGENIERÍA DE REQUERIMIENTOS
“Las semillas de los desastres Concepción. ¿Cómo inicia un proyecto de software? ¿Existe un solo evento que se convierte
enormes del software por lo en el catalizador de un nuevo sistema o producto basado en computadora o la necesidad evo-
general se vislumbran en los
luciona en el tiempo? No hay respuestas definitivas a estas preguntas. En ciertos casos, una
tres primeros meses del inicio
del proyecto.” conversación casual es todo lo que se necesita para desencadenar un trabajo grande de inge-
niería de software. Pero en general, la mayor parte de proyectos comienzan cuando se identifica
Coper Jones
una necesidad del negocio o se descubre un nuevo mercado o servicio potencial. Los partici-
1 Esto es cierto en particular para los proyectos pequeños (menos de un mes) y muy pequeños, que requieren re-
lativamente poco esfuerzo de software sencillo. A medida que el software crece en tamaño y complejidad, estos
argumentos comienzan a ser falsos.
www.FreeLibros.me
pantes de la comunidad del negocio (por ejemplo, los directivos, personal de mercadotecnia,
gerentes de producto, etc.) definen un caso de negocios para la idea, tratan de identificar el ritmo
y profundidad del mercado, hacen un análisis de gran visión de la factibilidad e identifican una
descripción funcional del alcance del proyecto. Toda esta información está sujeta a cambio, pero
es suficiente para desencadenar análisis con la organización de ingeniería de software.2
En la concepción del proyecto,3 se establece el entendimiento básico del problema, las per-
sonas que quieren una solución, la naturaleza de la solución que se desea, así como la eficacia
de la comunicación y colaboración preliminares entre los otros participantes y el equipo de
software.
Indagación. En verdad que parece muy simple: preguntar al cliente, a los usuarios y a otras
personas cuáles son los objetivos para el sistema o producto, qué es lo que va a lograrse, cómo
se ajusta el sistema o producto a las necesidades del negocio y, finalmente, cómo va a usarse el
sistema o producto en las operaciones cotidianas. Pero no es simple: es muy difícil.
Christel y Kang [Cri92] identificaron cierto número de problemas que se encuentran cuando
ocurre la indagación:
Negociación. No es raro que los clientes y usuarios pidan más de lo que puede lograrse dado
lo limitado de los recursos del negocio. También es relativamente común que distintos clientes
www.FreeLibros.me
I NFOR MACIÓN
Formato de especificación de requerimientos de software
Una especificación de requerimientos de software (ERS) es 2.2 Características del producto
un documento que se crea cuando debe especificarse una 2.3 Clases y características del usuario
descripción detallada de todos los aspectos del software que se va a 2.4 Ambiente de operación
elaborar, antes de que el proyecto comience. Es importante notar que 2.5 Restricciones de diseño e implementación
una ERS formal no siempre está en forma escrita. En realidad, hay 2.6 Documentación para el usuario
muchas circunstancias en las que el esfuerzo dedicado a la ERS esta- 2.7 Suposiciones y dependencias
ría mejor aprovechado en otras actividades de la ingeniería de soft- 3. Características del sistema
ware. Sin embargo, se justifica la ERS cuando el software va a ser 3.1 Característica 1 del sistema
desarrollado por una tercera parte, cuando la falta de una especifica- 3.2 Característica 2 del sistema (y así sucesivamente)
ción crearía problemas severos al negocio, si un sistema es complejo
4. Requerimientos de la interfaz externa
en extremo o si se trata de un negocio de importancia crítica.
4.1 Interfaces de usuario
Karl Wiegers [Wie03], de la empresa Process Impact Inc., desa-
4.2 Interfaces del hardware
rrolló un formato útil (disponible en www.processimpact.com/
4.3 Interfaces del software
process_assets/srs_template.doc) que sirve como guía para
4.4 Interfaces de las comunicaciones
aquellos que deben crear una ERS completa. Su contenido normal es
el siguiente: 5. Otros requerimientos no funcionales
5.1 Requerimientos de desempeño
Tabla de contenido 5.2 Requerimientos de seguridad
Revisión de la historia 5.3 Requerimientos de estabilidad
5.4 Atributos de calidad del software
1. Introducción
1.1 Propósito 6. Otros requerimientos
1.2 Convenciones del documento Apéndice A: Glosario
1.3 Audiencia objetivo y sugerencias de lectura Apéndice B: Modelos de análisis
1.4 Alcance del proyecto Apéndice C: Lista de conceptos
1.5 Referencias Puede obtenerse una descripción detallada de cada ERS si se descar-
2. Descripción general ga el formato desde la URL mencionada antes.
2.1 Perspectiva del producto
www.FreeLibros.me
Validación. La calidad de los productos del trabajo que se generan como consecuencia de la
ingeniería de los requerimientos se evalúa durante el paso de validación. La validación de los
requerimientos analiza la especificación5 a fin de garantizar que todos ellos han sido enuncia-
dos sin ambigüedades; que se detectaron y corrigieron las inconsistencias, las omisiones y los
errores, y que los productos del trabajo se presentan conforme a los estándares estableci-
dos para el proceso, el proyecto y el producto.
CONSEJO
El mecanismo principal de validación de los requerimientos es la revisión técnica (véase el
Un aspecto clave durante la capítulo 15). El equipo de revisión que los valida incluye ingenieros de software, clientes, usua-
validación de los requerimientos es rios y otros participantes, que analizan la especificación en busca de errores de contenido o de
la consistencia. Utilice el modelo de
interpretación, de aspectos en los que tal vez se requiera hacer aclaraciones, falta de informa-
análisis para asegurar que los
requerimientos se han enunciado de ción, inconsistencias (problema notable cuando se hace la ingeniería de productos o sistemas
manera consistente. grandes) y requerimientos en conflicto o irreales (no asequibles).
I NFOR MACIÓN
Lista de verificación para validar • ¿El requerimiento viola algunas restricciones del dominio?
requerimientos • ¿Puede someterse a prueba el requerimiento? Si es así, ¿es posible
especificar las pruebas (en ocasiones se denominan criterios de
Con frecuencia es útil analizar cada requerimiento en
validación) para ensayar el requerimiento?
comparación con preguntas de verificación. A continuación se pre-
sentan algunas:
• ¿Puede rastrearse el requerimiento hasta cualquier modelo del sis-
tema que se haya creado?
• ¿Los requerimientos están enunciados con claridad? ¿Podrían inter- • ¿Es posible seguir el requerimiento hasta los objetivos del sistema o
pretarse mal? producto?
• ¿Está identificada la fuente del requerimiento (por ejemplo, una per- • ¿La especificación está estructurada en forma que lleva a entender-
sona, reglamento o documento)? ¿Se ha estudiado el planteamiento lo con facilidad, con referencias y traducción fáciles a productos
final del requerimiento en comparación con la fuente original? del trabajo más técnicos?
• ¿El requerimiento está acotado en términos cuantitativos? • ¿Se ha creado un índice para la especificación?
• ¿Qué otros requerimientos se relacionan con éste? ¿Están compa- • ¿Están enunciadas con claridad las asociaciones de los requeri-
rados con claridad por medio de una matriz de referencia cruzada mientos con las características de rendimiento, comportamiento y
u otro mecanismo? operación? ¿Cuáles requerimientos parecen ser implícitos?
5 Recuerde que la naturaleza de la especificación variará con cada proyecto. En ciertos casos, la “especificación”
no es más que un conjunto de escenarios de usuario. En otros, la especificación tal vez sea un documento que
contiene escenarios, modelos y descripciones escritas.
6 La administración formal de los requerimientos sólo se practica para proyectos grandes que tienen cientos
de requerimientos identificables. Para proyectos pequeños, esta actividad tiene considerablemente menos for-
malidad.
www.FreeLibros.me
H ERRAMIENTAS DE SOFTWARE
Ingeniería de requerimientos
Objetivo: Las herramientas de la ingeniería de los reque- EasyRM, desarrollada por Cybernetic Intelligence GmbH (www.
rimientos ayudan a reunir éstos, a modelarlos, administrar- easy-rm.com), construye un diccionario/glosario especial
los y validarlos. para proyectos, que contiene descripciones y atributos detallados
Mecánica: La mecánica de las herramientas varía. En general, éstas de los requerimientos.
elaboran varios modelos gráficos (por ejemplo, UML) que ilustran los Rational RequisitePro, elaborada por Rational Software (www-306.
aspectos de información, función y comportamiento de un sistema. ibm.com/software/awdtools/reqpro/), permite a los
Estos modelos constituyen la base de todas las demás actividades del usuarios construir una base de datos de requerimientos, represen-
proceso de software. tar relaciones entre ellos y organizarlos, indicar su prioridad y
rastrearlos.
Herramientas representativas:7
En el sitio de Volere Requirements, en www.volere.co.uk/tools. En el sitio de Volere ya mencionado, se encuentran muchas herra-
htm, se encuentra una lista razonablemente amplia (y actualizada) mientas adicionales para administrar requerimientos, así como en
de herramientas para la ingeniería de requerimientos. En los capítulos la dirección www.jiludwig.com/Requirements_
6 y 7 se estudian las herramientas que sirven para modelar aquéllos. Management_Tools.html
Las que se mencionan a continuación se centran en su administración.
En el caso ideal, los participantes e ingenieros de software trabajan juntos en el mismo equipo.8
En esas condiciones, la ingeniería de requerimientos tan sólo consiste en sostener conversacio-
nes significativas con colegas que sean miembros bien conocidos del equipo. Pero es frecuente
que en la realidad esto sea muy diferente.
Los clientes o usuarios finales tal vez se encuentren en ciudades o países diferentes, quizá
sólo tengan una idea vaga de lo que se requiere, puede ser que tengan opiniones en conflicto
sobre el sistema que se va a elaborar, que posean un conocimiento técnico limitado o que dis-
pongan de poco tiempo para interactuar con el ingeniero que recabará los requerimientos.
Ninguna de estas posibilidades es deseable, pero todas son muy comunes y es frecuente verse
forzado a trabajar con las restricciones impuestas por esta situación.
PU En las secciones que siguen se estudian las etapas requeridas para establecer las bases que
NT
O
permiten entender los requerimientos de software a fin de que el proyecto comience en forma
CLAVE tal que se mantenga avanzando hacia una solución exitosa.
Un participante es cualquier persona
que tenga interés directo o que se
beneficie del sistema que se va a 5.2.1 Identificación de los participantes
desarrollar. Sommerville y Sawyer [Som97] definen participante como “cualquier persona que se beneficie
en forma directa o indirecta del sistema en desarrollo”. Ya se identificaron los candidatos habi-
tuales: gerentes de operaciones del negocio, gerentes de producto, personal de mercadotecnia,
clientes internos y externos, usuarios finales, consultores, ingenieros de producto, ingenieros de
software e ingenieros de apoyo y mantenimiento, entre otros. Cada participante tiene un punto
de vista diferente respecto del sistema, obtiene distintos beneficios cuando éste se desarrolla
con éxito y corre distintos riesgos si fracasa el esfuerzo de construcción.
7 Las herramientas mencionadas aquí no son obligatorias sino una muestra de las que hay en esta categoría. En la
mayoría de casos, los nombres de las herramientas son marcas registradas por sus respectivos desarrolladores.
8 Este enfoque es ampliamente recomendable para proyectos que adoptan la filosofía de desarrollo de soft-
ware ágil.
www.FreeLibros.me
Durante la concepción, debe hacerse la lista de personas que harán aportes cuando se reca-
ben los requerimientos (véase la sección 5.3). La lista inicial crecerá cuando se haga contac-
to con los participantes porque a cada uno se le hará la pregunta: “¿A quién más piensa que debe
consultarse?”
I NFOR MACIÓN
Uso de “puntos de prioridad”
Una manera de resolver requerimientos conflictivos y, al con la asignación de uno o más puntos de prioridad. Los puntos gas-
mismo tiempo, mejorar la comprensión de la importancia tados ya no pueden utilizarse otra vez. Cuando un participante agota
relativa de todos, es usar un esquema de “votación” con base en pun- sus puntos de prioridad, ya no tiene la posibilidad de hacer algo con
tos de prioridad. Se da a todos los participantes cierto número de los requerimientos. El total de puntos asignados a cada requerimiento
puntos de prioridad que pueden “gastarse” en cualquier número de por los participantes da una indicación de la importancia general de
requerimientos. Se presenta una lista de éstos y cada participante cada requerimiento.
indica la importancia relativa de cada uno (desde su punto de vista)
La colaboración no significa necesariamente que todos los requerimientos los defina un co-
mité. En muchos casos, los participantes colaboran con la aportación de su punto de vista res-
pecto de los requerimientos, pero un influyente “campeón del proyecto” (por ejemplo, el director
www.FreeLibros.me
del negocio o un tecnólogo experimentado) toma la decisión final sobre los requerimientos que
lo integrarán.
• ¿Cuál sería una “buena” salida generada por una solución exitosa?
? ¿Cuáles preguntas
ayudarían a tener un • ¿Qué problemas resolvería esta solución?
entendimiento
preliminar del • ¿Puede mostrar (o describir) el ambiente de negocios en el que se usaría la solución?
problema? • ¿Hay aspectos especiales del desempeño o restricciones que afecten el modo en el que
se enfoque la solución?
Las preguntas finales se centran en la eficacia de la actividad de comunicación en sí. Gause
y Weinberg [Gau89] las llaman “metapreguntas” y proponen la siguiente lista (abreviada):
• ¿Es usted la persona indicada para responder estas preguntas? ¿Sus respuestas son
Cita: “oficiales”?
“El que hace una pregunta es • ¿Mis preguntas son relevantes para el problema que se tiene?
tonto durante cinco minutos; el • ¿Estoy haciendo demasiadas preguntas?
que no la hace será tonto para
siempre.” • ¿Puede otra persona dar información adicional?
Proverbio chino
• ¿Debería yo preguntarle algo más?
Estas preguntas (y otras) ayudarán a “romper el hielo” y a iniciar la comunicación, que es esen-
cial para una indagación exitosa. Pero una reunión de preguntas y respuestas no es un enfoque
que haya tenido un éxito apabullante. En realidad, la sesión de preguntas y respuestas sólo debe
usarse para el primer encuentro y luego ser reemplazada por un formato de indagación de re-
querimientos que combine elementos de solución de problemas, negociación y especificación.
En la sección 5.3 se presenta un enfoque de este tipo.
www.FreeLibros.me
10 Este ejemplo (con extensiones y variantes) se usa para ilustrar métodos importantes de la ingeniería de software
en muchos de los capítulos siguientes. Como ejercicio, sería provechoso que el lector realizara su propia reunión
para recabar requerimientos y que desarrollara un conjunto de listas para ella.
www.FreeLibros.me
que producirá éste y los que usará para realizar sus funciones. Además, se solicita a cada asis-
tente que haga otra lista de servicios (procesos o funciones) que manipulen o interactúen con
los objetos. Por último, también se desarrollan listas de restricciones (por ejemplo, costo, ta-
maño, reglas del negocio, etc.) y criterios de desempeño (como velocidad y exactitud). Se in-
forma a los asistentes que no se espera que las listas sean exhaustivas, pero sí que reflejen la
percepción que cada persona tiene del sistema.
Entre los objetos descritos por CasaSegura tal vez estén incluidos el panel de control, detec-
Cita: tores de humo, sensores en ventanas y puertas, detectores de movimiento, alarma, un evento
(activación de un sensor), una pantalla, una computadora, números telefónicos, una llamada
“Los hechos no dejan de existir
porque se les ignore.” telefónica, etc. La lista de servicios puede incluir configurar el sistema, preparar la alarma, vigilar
los sensores, marcar el teléfono, programar el panel de control y leer la pantalla (observe que los
Aldous Huxley
servicios actúan sobre los objetos). En forma similar, cada asistente desarrollará una lista de
restricciones (por ejemplo, el sistema debe reconocer cuando los sensores no estén operando,
debe ser amistoso con el usuario, debe tener una interfaz directa con una línea telefónica están-
dar, etc.) y de criterios de desempeño (un evento en un sensor debe reconocerse antes de un
segundo, debe implementarse un esquema de prioridad de eventos, etcétera).
Las listas de objetos pueden adherirse a las paredes del cuarto con el empleo de pliegos de
CONSEJO
papel grandes o con láminas adhesivas, o escribirse en un tablero. Alternativamente, las listas
Evite el impulso de desechar alguna podrían plasmarse en un boletín electrónico, sitio web interno o en un ambiente de grupo de
idea de un cliente con expresiones conversación para revisarlas antes de la reunión. Lo ideal es que cada entrada de las listas pueda
como “demasiado costosa” o
manipularse por separado a fin de combinar las listas o modificar las entradas y agregar otras.
“impráctica”. La intención aquí es
negociar una lista aceptable para En esta etapa, están estrictamente prohibidos las críticas y el debate.
todos. Para lograrlo, debe tenerse la Una vez que se presentan las listas individuales acerca de un área temática, el grupo crea una
mente abierta. lista, eliminando las entradas redundantes o agregando ideas nuevas que surjan durante el
análisis, pero no se elimina ninguna. Después de crear listas combinadas para todas las áreas
temáticas, sigue el análisis, coordinado por el facilitador. La lista combinada se acorta, se alarga
o se modifica su redacción para que refleje de manera apropiada al producto o sistema que se
va a desarrollar. El objetivo es llegar a un consenso sobre la lista de objetos, servicios, restric-
ciones y desempeño del sistema que se va a construir.
En muchos casos, un objeto o servicio descrito en la lista requerirá mayores explicaciones.
Para lograr esto, los participantes desarrollan miniespecificaciones para las entradas en las lis-
tas.11 Cada miniespecificación es una elaboración de un objeto o servicio. Por ejemplo, la corres-
pondiente al objeto Panel de control de CasaSegura sería así:
El panel de control es una unidad montada en un muro, sus dimensiones aproximadas son de 9 por 5
pulgadas. Tiene conectividad inalámbrica con los sensores y con una PC. La interacción con el usuario
tiene lugar por medio de un tablero que contiene 12 teclas. Una pantalla de cristal líquido de 3 por 3
pulgadas brinda retroalimentación al usuario. El software hace anuncios interactivos, como eco y
funciones similares.
Las miniespecificaciones se presentan a todos los participantes para que sean analizadas. Se
hacen adiciones, eliminaciones y otras modificaciones. En ciertos casos, el desarrollo de las
miniespecificaciones descubrirá nuevos objetos, servicios o restricciones, o requerimientos de
desempeño que se agregarán a las listas originales. Durante todos los análisis, el equipo debe
posponer los aspectos que no puedan resolverse en la reunión. Se conserva una lista de aspectos
para volver después a dichas ideas.
11 En vez de crear una miniespecificación, muchos equipos de software eligen desarrollar escenarios del usuario
llamados casos de uso. Éstos se estudian en detalle en la sección 5.4 y en el capítulo 6.
www.FreeLibros.me
C ASA S EGURA
Conducción de una reunión para recabar los requerimientos
La escena: Sala de juntas. Está en marcha la pri- Facilitador: ¿Agrega eso algunas restricciones?
mera reunión para recabar los requerimientos. Jamie: Sí, tanto técnicas como legales.
Participantes: Jamie Lazar, integrante del equipo de software; Representante del producto: ¿Qué significa eso?
Vinod Raman, miembro del equipo de software; Ed Robbins, miem-
Jamie: Nos tendríamos que asegurar de que un extraño no pueda
bro del equipo de software; Doug Miller, gerente de ingeniería de
ingresar al sistema, desactivarlo y robar en el lugar o hacer algo
software; tres trabajadores de mercadotecnia; un representante de
peor. Mucha responsabilidad sobre nosotros.
ingeniería del producto, y un facilitador.
Doug: Muy cierto.
La conversación:
Mercadotecnia: Pero lo necesitamos así… sólo asegúrense de
Facilitador (apunta en un pizarrón): De modo que ésa es la
impedir que ingrese un extraño.
lista actual de objetos y servicios para la función de seguridad del
hogar. Ed: Eso es más fácil de decir que de hacer.
Persona de mercadotecnia: Eso la cubre, desde nuestro punto Facilitador (interrumpe): No quiero que debatamos esto ahora.
de vista. Anotémoslo como un aspecto y continuemos.
Vinod: ¿No dijo alguien que quería que toda la funcionalidad de (Doug, que es el secretario de la reunión, toma debida nota.)
CasaSegura fuera accesible desde internet? Eso incluiría la función Facilitador: Tengo la sensación de que hay más por considerar
de seguridad, ¿o no? aquí.
Persona de mercadotecnia: Sí, así es… tendremos que añadir (El grupo dedica los siguientes 20 minutos a mejorar y aumentar los
esa funcionalidad y los objetos apropiados. detalles de la función de seguridad del hogar.)
WebRef Aunque los conceptos del DFC son aplicables en todo el proceso del software [Par96a], hay téc-
En la dirección www.qfdi.org se nicas específicas de aquél que pueden aplicarse a la actividad de indagación de los requerimien-
encuentra información útil sobre el tos. El DFC utiliza entrevistas con los clientes, observación, encuestas y estudio de datos histó-
DFC.
ricos (por ejemplo, reportes de problemas) como materia prima para la actividad de recabación
www.FreeLibros.me
de los requerimientos. Después, estos datos se llevan a una tabla de requerimientos —llamada
tabla de la voz del cliente— que se revisa con el cliente y con otros participantes. Luego se em-
plean varios diagramas, matrices y métodos de evaluación para extraer los requerimientos es-
perados y tratar de percibir requerimientos emocionantes [Aka04].
C ASA S EGURA
Desarrollo de un escenario preliminar de uso
La escena: Una sala de juntas, donde continúa la Vinod (interrumpe): La página web tendría que ser segura,
primera reunión para recabar los requerimientos. encriptada, para garantizar que estuviéramos seguros y…
Participantes: Jamie Lazar, integrante del equipo de software; Facilitador (interrumpe): Ésa es buena información, Vinod,
Vinod Raman, miembro del equipo de software; Ed Robbins, miem- pero es técnica. Centrémonos en cómo emplearía el usuario final
bro del equipo de software; Doug Miller, gerente de ingeniería de esta capacidad, ¿está bien?
software; tres personas de mercadotecnia; un representante de inge- Vinod: No hay problema.
niería del producto, y un facilitador.
Persona de mercadotecnia: Decía que entraría a un sitio web
La conversación: y daría mi identificación de usuario y dos niveles de clave.
Facilitador: Hemos estado hablando sobre la seguridad para el Jamie: ¿Qué pasa si olvido mi clave?
acceso a la funcionalidad de CasaSegura si ha de ser posible el Facilitador (interrumpe): Buena observación, Jamie, pero no
ingreso por internet. Me gustaría probar algo. Desarrollemos un entraremos a ella por ahora. Lo anotaremos y la llamaremos una
escenario de uso para entrar a la función de seguridad. excepción. Estoy seguro de que habrá otras.
Jamie: ¿Cómo? Persona de mercadotecnia: Después de que introdujera las
Facilitador: Podríamos hacerlo de dos maneras, pero de momento claves, aparecería una pantalla que representaría todas las funcio-
mantengamos las cosas informales. Díganos (señala a una persona nes de CasaSegura. Seleccionaría la función de seguridad del hogar.
de mercadotecnia), ¿cómo visualiza el acceso al sistema? El sistema pediría que verificara quién soy, pidiendo mi dirección o
número telefónico o algo así. Entonces aparecería un dibujo del
Persona de mercadotecnia: Um… bueno, es la clase de cosa
panel de control del sistema de seguridad y la lista de funciones que
que haría si estuviera fuera de casa y tuviera que dejar entrar a
puede realizar —activar el sistema, desactivar el sistema o desacti-
alguien a ella —por ejemplo, una trabajadora doméstica o un técni-
var uno o más sensores—. Supongo que también me permitiría
co de reparaciones— que no tuviera el código de seguridad.
reconfigurar las zonas de seguridad y otras cosas como ésa, pero no
Facilitador (sonríe): Ésa es la razón por la que lo hace… díga- estoy seguro.
me, ¿cómo lo haría en realidad? (Mientras la persona de mercadotecnia habla, Doug toma muchas
Persona de mercadotecnia: Bueno… lo primero que necesita- notas; esto forma la base para el primer escenario informal de uso.
ría sería una PC. Entraría a un sitio web que mantendríamos para Alternativamente, hubiera podido pedirse a la persona de mercado-
todos los usuarios de CasaSegura. Daría mi identificación de usuario tecnia que escribiera el escenario, pero esto se hubiera hecho fuera
y… de la reunión.)
www.FreeLibros.me
• Un conjunto de escenarios de uso que dan perspectiva al uso del sistema o producto en
diferentes condiciones de operación.
En un libro que analiza cómo escribir casos de uso eficaces, Alistair Cockburn [Coc01b] afirma
que “un caso de uso capta un contrato […] [que] describe el comportamiento del sistema en
distintas condiciones en las que el sistema responde a una petición de alguno de sus participan-
tes […]”. En esencia, un caso de uso narra una historia estilizada sobre cómo interactúa un
usuario final (que tiene cierto número de roles posibles) con el sistema en circunstancias espe-
cíficas. La historia puede ser un texto narrativo, un lineamiento de tareas o interacciones, una
descripción basada en un formato o una representación diagramática. Sin importar su forma,
un caso de uso ilustra el software o sistema desde el punto de vista del usuario final.
PU El primer paso para escribir un caso de uso es definir un conjunto de “actores” que estarán
NT
O involucrados en la historia. Los actores son las distintas personas (o dispositivos) que usan el
CLAVE sistema o producto en el contexto de la función y comportamiento que va a describirse. Los
Los casos de uso se definen desde el actores representan los papeles que desempeñan las personas (o dispositivos) cuando opera el
punto de vista de un actor. Un actor
sistema. Con una definición más formal, un actor es cualquier cosa que se comunique con
es un papel que desempeñan las
el sistema o producto y que sea externo a éste. Todo actor tiene uno o más objetivos cuando
personas (usuarios) o los dispositivos
cuando interactúan con el software. utiliza el sistema.
Es importante notar que un actor y un usuario final no necesariamente son lo mismo.
Un usuario normal puede tener varios papeles diferentes cuando usa el sistema, mientras
que un actor representa una clase de entidades externas (gente, con frecuencia pero no
siempre) que sólo tiene un papel en el contexto del caso de uso. Por ejemplo, considere al ope-
rador de una máquina (un usuario) que interactúa con la computadora de control de una celda
de manufactura que contiene varios robots y máquinas de control numérico. Después de una
revisión cuidadosa de los requerimientos, el software para la computadora de control requiere
cuatro diferentes modos (papeles) para la interacción: modo de programación, modo de prueba,
modo de vigilancia y modo de solución de problemas. Por tanto, es posible definir cuatro acto-
res: programador, probador, vigilante y solucionador de problemas. En ciertos casos, el opera-
dor de la máquina desempeñará todos los papeles. En otros, distintas personas tendrán el papel
de cada actor.
WebRef Debido a que la indagación de los requerimientos es una actividad evolutiva, no todos los
Un artículo excelente sobre casos de actores son identificados en la primera iteración. En ésta es posible identificar a los actores
uso puede descargarse desde la
dirección www.ibm.com/ principales [Jac92], y a los secundarios cuando se sabe más del sistema. Los actores principa-
developerworks/ les interactúan para lograr la función requerida del sistema y obtienen el beneficio previsto de
webservices/library/ éste. Trabajan con el software en forma directa y con frecuencia. Los actores secundarios dan
codesign7.html
apoyo al sistema, de modo que los primarios puedan hacer su trabajo.
www.FreeLibros.me
Una vez identificados los actores, es posible desarrollar casos de uso. Jacobson [Jac92] su-
giere varias preguntas12 que debe responder un caso de uso:
1. El propietario observa el panel de control de CasaSegura (véase la figura 5.1) para determinar si el
sistema está listo para recibir una entrada. Si el sistema no está listo, se muestra el mensaje no está
listo en la pantalla de cristal líquido y el propietario debe cerrar físicamente ventanas o puertas de
modo que desaparezca dicho mensaje [el mensaje no está listo implica que un sensor está abierto;
por ejemplo, que una puerta o ventana está abierta].
2. El propietario usa el teclado para introducir una clave de cuatro dígitos. La clave se compara con
la que guarda el sistema como válida. Si la clave es incorrecta, el panel de control emitirá un sonido
una vez y se reiniciará para recibir una entrada adicional. Si la clave es correcta, el panel de control
espera otras acciones.
3. El propietario selecciona y teclea permanecer o fuera (véase la figura 5.1) para activar el sistema. La
entrada permanecer activa sólo sensores perimetrales (se desactivan los sensores de detección de
movimiento interior). La entrada fuera activa todos los sensores.
4. Cuando ocurre una activación, el propietario observa una luz roja de alarma.
12 Las preguntas de Jacobson se han ampliado para que den una visión más completa del contenido del caso de
uso.
13 Observe que este caso de uso difiere de la situación en la que se accede al sistema a través de internet. En este
caso, la interacción es por medio del panel de control y no con la interfaz de usuario gráfica (GUI) que se da
cuando se emplea una PC.
www.FreeLibros.me
FIGURA 5.1
Panel de control CASASEGURA apagar fuera permanecer
de CasaSegura
1 2 3
fuera
permanecer max probar desvío
alarma de instantáneo 4 5 6
comprobación desvío
instantáneo código repicar
de incendio no está listo
7 8 9
listo
activada energía
* 0 #
pánico
El caso de uso básico presenta una historia de alto nivel que describe la interacción entre el
CONSEJO
actor y el sistema.
Es frecuente que los casos de uso se En muchas circunstancias, los casos de uso son más elaborados a fin de que brinden muchos
escriban de manera informal. Sin más detalles sobre la interacción. Por ejemplo, Cockburn [Coc01b] sugiere el formato siguiente
embargo, utilice el formato que se
para hacer descripciones detalladas de casos de uso:
presenta aquí para asegurar que se
incluyen todos los aspectos clave. Caso de uso: IniciarVigilancia
Objetivo en contexto: Preparar el sistema para que vigile los sensores cuando el propietario salga
de la casa o permanezca dentro.
Disparador: El propietario decide “preparar” el sistema, por ejemplo, para que encienda
las funciones de alarma.
Escenario:
4. Propietario: observa una luz roja de alarma que indica que CasaSegura ha sido activada.
Excepciones:
1. El panel de control no está listo: el propietario verifica todos los sensores para determinar cuáles
están abiertos; los cierra.
2. La clave es incorrecta (el panel de control suena una vez): el propietario introduce la clave co-
rrecta.
4. Se elige permanecer: el panel de control suena dos veces y se enciende un letrero luminoso que dice
permanecer; se activan los sensores del perímetro.
5. Se selecciona fuera: el panel de control suena tres veces y se enciende un letrero luminoso que dice
fuera; se activan todos los sensores.
www.FreeLibros.me
Aspectos pendientes:
1. ¿Debe haber una forma de activar el sistema sin usar clave o con una clave abreviada?
3. ¿De cuánto tiempo dispone el propietario para introducir la clave a partir del momento en el que se
oprime la primera tecla?
Los casos de uso para otras interacciones de propietario se desarrollarían en una forma simi-
lar. Es importante revisar con cuidado cada caso de uso. Si algún elemento de la interacción es
ambiguo, es probable que la revisión del caso de uso lo detecte.
C ASA S EGURA
Desarrollo de un diagrama de caso de uso de alto nivel
La escena: Sala de juntas, continúa la reunión el caso de uso…—; ¡ah! usé el cuadrado para representar un actor
para recabar los requerimientos. que no es persona… en este caso, sensores.
Participantes: Jamie Lazar, miembro del equipo de software; Doug: ¿Es válido eso en UML?
Vinod Roman, integrante del equipo de software; Ed Robbins, inte- Facilitador: La legalidad no es lo importante. El objetivo es comu-
grante del equipo de software; Doug Miller, gerente de ingeniería de nicar información. Veo que usar una figura humana para represen-
software; tres miembros de mercadotecnia; un representante de inge- tar un equipo sería erróneo. Así que adapté las cosas un poco. No
niería del producto; un facilitador. pienso que genere problemas.
La conversación: Vinod: Está bien, entonces tenemos narraciones de casos de uso
Facilitador: Hemos pasado un buen tiempo hablando de la fun- para cada óvalo. ¿Necesitamos desarrollarlas con base en los for-
ción de seguridad del hogar de CasaSegura. Durante el receso hice matos sobre los que he leído?
un diagrama de caso de uso para resumir los escenarios importantes Facilitador: Es probable, pero eso puede esperar hasta que haya-
que forman parte de esta función. Veámoslo. mos considerado otras funciones de CasaSegura.
(Todos los asistentes observan la figura 5.2.) Persona de mercadotecnia: Esperen, he estado observando
Jamie: Estoy aprendiendo la notación UML.14 Veo que la función de este diagrama y de pronto me doy cuenta de que hemos olvidado
seguridad del hogar está representada por el rectángulo grande con algo.
óvalos en su interior, ¿verdad? ¿Y los óvalos representan los casos de Facilitador: ¿De verdad? Dime, ¿qué hemos olvidado?
uso que hemos escrito?
(La reunión continúa.)
Facilitador: Sí. Y las figuras pegadas representan a los actores
—personas o cosas que interactúan con el sistema según los describe
14 En el apéndice 1 se presenta un breve método de aprendizaje de UML para aquellos lectores que no estén fami-
liarizados con dicha notación.
www.FreeLibros.me
FIGURA 5.2
Diagrama de Sistema
caso de uso de que activa o
UML para la desactiva
función de Accede
seguridad del al sistema Sensores
hogar de por internet
CasaSegura Propietario
Responde
a un evento
de alarma
Encuentra
una condición
de error
Administrador
del sistema
Reconfigura
sensores y
características
del sistema
relacionadas
H ERRAMIENTAS DE SOFTWARE
Desarrollo de un caso de uso Herramientas representativas15
Objetivo: Ayudar a desarrollar casos de uso proporcio- La gran mayoría de herramientas de análisis del modelado basadas
nando formatos y mecanismos automatizados para eva- en UML dan apoyo tanto de texto como gráfico para el desarrollo y
luar la claridad y consistencia. modelado de casos de uso.
5. 5 ELABORACIÓN D E L M O D E L O D E L O S R E Q U E R I M I E N T O S 16
El objetivo del modelo del análisis es describir los dominios de información, función y compor-
tamiento que se requieren para un sistema basado en computadora. El modelo cambia en forma
dinámica a medida que se aprende más sobre el sistema por construir, y otros participantes
comprenden más lo que en realidad requieren. Por esa razón, el modelo del análisis es una fo-
tografía de los requerimientos en cualquier momento dado. Es de esperar que cambie.
A medida que evoluciona el modelo de requerimientos, ciertos elementos se vuelven relati-
vamente estables, lo que da un fundamento sólido para diseñar las tareas que sigan. Sin em-
bargo, otros elementos del modelo son más volátiles, lo que indica que los participantes todavía
no entienden bien los requerimientos para el sistema. En los capítulos 6 y 7 se presentan en
15 Las herramientas mencionadas aquí no son obligatorias, sino una muestra de las que hay en esta categoría. En la
mayoría de casos, los nombres de las herramientas son marcas registradas por sus respectivos desarrolladores.
16 En este libro se usan como sinónimos las expresiones modelar el análisis y modelar los requerimientos. Ambos se
refieren a representaciones de los dominios de la información, funcional y de comportamiento que describen los
requerimientos del problema.
www.FreeLibros.me
detalle el modelo del análisis y los métodos que se usan para construirlo. En las secciones si-
guientes se da un panorama breve.
Elementos basados en clases. Cada escenario de uso implica un conjunto de objetos que
CONSEJO se manipulan cuando un actor interactúa con el sistema. Estos objetos se clasifican en clases:
Una forma de aislar las clases es conjunto de objetos que tienen atributos similares y comportamientos comunes. Por ejemplo,
buscar sustantivos descriptivos en un para ilustrar la clase Sensor de la función de seguridad de Casa Segura (véase la figura 5.4),
caso de usuario expresado con texto. puede utilizarse un diagrama de clase UML. Observe que el diagrama enlista los atributos de los
Al menos algunos de ellos serán
sensores (por ejemplo, nombre, tipo, etc.) y las operaciones (por ejemplo, identificar y permitir)
candidatos cercanos. Sobre esto se
habla más en el capítulo 8. que se aplican para modificarlos. Además de los diagramas de clase, otros elementos de mode-
lado del análisis ilustran la manera en la que las clases colaboran una con otra y las relaciones
e interacciones entre ellas. Esto se analiza con más detalle en el capítulo 7.
17 En el apéndice 1 se presenta un instructivo breve sobre UML, para aquellos lectores que no estén familiarizados
con dicha notación.
www.FreeLibros.me
FIGURA 5.3
Diagramas de
actividad del
UML para Efectuar
indagar los reuniones
requerimientos
Elaborar listas de
funciones y clases
Hacer listas de
restricciones, entre otras
¿Se dan prioridades
Indagación de formales?
los requerimientos Sí No
Definir
Usar el DFC Dar prioridad a actores
para asignar los requerimien-
prioridad a los tos de manera
requerimientos informal Hacer un Escribir
diagrama del el escenario
caso de uso
Terminar
Crear casos
el formato
de uso
FIGURA 5.4
Sensor
Diagrama de
clase para un Nombre
sensor
Tipo
Ubicación
Área
Características
Identificar()
Activar()
Desactivar()
Reconfigurar()
FIGURA 5.5
Comandos
Notación UML del
de lectura
diagrama de Nombre del estado
estado
Estado del sistema = “Listo”
Mensaje en la pantalla = “introducir comando” Variables del estado
Estado de la pantalla = estable
www.FreeLibros.me
C ASA S EGURA
Modelado preliminar del comportamiento
La escena: Sala de juntas, continúa la reunión de Persona de mercadotecnia: Esto parece un poco técnico. No
requerimientos. estoy seguro de ser de ayuda aquí.
Participantes: Jamie Lazar, integrante del equipo de software; Facilitador: Seguro que lo serás. ¿Qué comportamiento se obser-
Vinod Raman, miembro del equipo de software; Ed Robbins, inte- va desde el punto de vista de un usuario?
grante del equipo de software; Doug Miller, gerente de ingeniería de Persona de mercadotecnia: Mmm... bueno, el sistema estará
software; tres trabajadores de mercadotecnia; un representante de vigilando los sensores. Leerá comandos del propietario. Mostrará su
ingeniería del producto, y un facilitador. estado.
La conversación: Facilitador: ¿Ves?, lo puedes hacer.
Facilitador: Estamos por terminar de hablar sobre la funcionalidad Jamie: También estará interrogando a la PC para determinar si hay
de seguridad del hogar de CasaSegura. Pero antes, quisiera que alguna entrada desde ella, por ejemplo, un acceso por internet o
analizáramos el comportamiento de la función. información sobre la configuración.
Persona de mercadotecnia: No entiendo lo que quiere decir Vinod: Sí, en realidad, configurar el sistema es un estado por dere-
con comportamiento. cho propio.
Ed (sonríe): Es cuando le das un “tiempo fuera” al producto si se Doug: Muchachos, lo hacen bien. Pensemos un poco más... ¿hay
porta mal. alguna forma de hacer un diagrama de todo esto?
Facilitador: No exactamente. Permítanme explicarlo. Facilitador: Sí la hay, pero la dejaremos para la próxima reunión.
(El facilitador explica al equipo encargado de recabar los requeri-
mientos y los fundamentos de modelado del comportamiento.)
En primer lugar, los patrones de análisis aceleran el desarrollo de los modelos de análisis abstracto
que capturan los principales requerimientos del problema concreto, debido a que proveen modelos de
análisis reutilizables con ejemplos, así como una descripción de sus ventajas y limitaciones. En se-
18 En ciertos casos, los problemas vuelven a suceder sin importar el dominio de la aplicación. Por ejemplo, son
comunes las características y funciones usadas para resolver problemas de la interfaz de usuario sin importar el
dominio de la aplicación en consideración.
www.FreeLibros.me
gundo lugar, los patrones de análisis facilitan la transformación del modelo de análisis en un modelo
del diseño, sugiriendo patrones de diseño y soluciones confiables para problemas comunes.
Los patrones de análisis se integran en el modelo del análisis, haciendo referencia al nombre
del patrón. También se guardan en un medio de almacenamiento de modo que los ingenieros
de requerimientos usen herramientas de búsqueda para encontrarlos y aplicarlos. La informa-
ción sobre el patrón de análisis (y otros tipos de patrones) se presenta en un formato estándar
[Gey01]19 que se estudia con más detalle en el capítulo 12. En el capítulo 7 se dan ejemplos de
patrones de análisis y más detalles de este tema.
Ludwig Erhard sidades del participante y que al mismo tiempo refleje las restricciones del mundo real (por
ejemplo, tiempo, personas, presupuesto, etc.) que se hayan establecido al equipo del software.
Las mejores negociaciones buscan un resultado “ganar-ganar”.20 Es decir, los participantes
WebRef ganan porque obtienen el sistema o producto que satisface la mayoría de sus necesidades y
Un artículo breve sobre la negociación usted (como miembro del equipo de software) gana porque trabaja con presupuestos y plazos
para los requerimientos de software realistas y asequibles.
puede descargarse desde la dirección
Boehm [Boe98] define un conjunto de actividades de negociación al principio de cada itera-
www.alexander-egyed.com/
publications/Software_ ción del proceso de software. En lugar de una sola actividad de comunicación con el cliente, se
Requirements_Negotiation- definen las actividades siguientes:
Some_Lessons_Learned.html
1. Identificación de los participantes clave del sistema o subsistema.
2. Determinación de las “condiciones para ganar” de los participantes.
I NFOR MACIÓN
El arte de la negociación
Aprender a negociar con eficacia le servirá en su vida bable que obtenga conocimientos que lo ayuden a negociar
personal y técnica. Es útil considerar los lineamientos que mejor su posición.
siguen: 4. Centrarse en los intereses de la otra parte. Si quiere evitar con-
flictos, no adopte posiciones inamovibles.
1. Reconocer que no es una competencia. Para tener éxito, ambas 5. No lo tome en forma personal. Céntrese en el problema que
partes tienen que sentir que han ganado o logrado algo. Las necesita resolverse.
dos tienen que llegar a un compromiso. 6. Sea creativo. Si están empantanados, no tenga miedo de pen-
2. Mapear una estrategia. Decidir qué es lo que le gustaría lograr; sar fuera de los moldes.
qué quiere obtener la otra parte y cómo hacer para que ocu- 7. Esté listo para comprometerse. Una vez que se llegue a un
rran las dos cosas. acuerdo, no titubee; comprométase con él y cúmplalo.
3. Escuchar activamente. No trabaje en la formulación de su res-
puesta mientras la otra parte esté hablando. Escúchela. Es pro-
19 En la bibliografía existen varias propuestas de formatos para patrones. Si el lector tiene interés, consulte [Fow97],
[Gam95], [Yac03] y [Bus07], entre muchas otras fuentes.
20 Se han escrito decenas de libros acerca de las aptitudes para negociar (por ejemplo [Lew06], [Rai06] y [Fis06]).
Es una de las aptitudes más importantes que pueda aprender. Lea alguno.
www.FreeLibros.me
La realización exitosa de estos pasos iniciales lleva a un resultado ganar-ganar, que se convierte
en el criterio clave para avanzar hacia las siguientes actividades de la ingeniería de software.
C ASA S EGURA
El principio de una negociación
La escena: Oficina de Lisa Pérez, después de la Lisa: Doug, es el acceso por internet lo que da a CasaSegura su
primera reunión para recabar los requerimientos. “súper” atractivo. Toda nuestra campaña de publicidad va a girar
Participantes: Doug Miller, gerente de ingeniería de software, y alrededor de eso. Lo tenemos que tener…
Lisa Pérez, gerente de mercadotecnia. Doug: Entiendo la situación, de verdad. El problema es que para
La conversación: dar acceso por internet tendríamos que tener un sitio web por com-
pleto seguro y en operación. Esto requiere tiempo y personal. Tam-
Lisa: Pues escuché que la primera reunión salió realmente bien.
bién tenemos que elaborar mucha funcionalidad adicional en la pri-
Doug: En realidad, sí. Enviaste buenos representantes... contribuye- mera entrega… no creo que podamos hacerlo con los recursos que
ron de verdad. tenemos.
Lisa (sonríe): Sí; en realidad me dijeron que habían entrado y que Lisa (todavía frunce el ceño): Ya veo, pero tienes que imaginar
no había sido una “actividad que les despejara la cabeza”. una manera de hacerlo. Tiene importancia crítica para las funciones
Doug (ríe): La próxima vez me aseguraré de quitarme la vena tec- de seguridad del hogar y también para otras… éstas podrían espe-
nológica... Mira, Lisa, creo que tenemos un problema para llegar a rar hasta las siguientes entregas… estoy de acuerdo con eso.
toda esa funcionalidad del sistema de seguridad para el hogar en Lisa y Doug parecen estar en suspenso, pero todavía deben negociar
las fechas que propone tu dirección. Sé que aún es temprano, pero una solución a este problema. ¿Pueden “ganar” los dos en este caso?
hice un poco de planeación sobre las rodillas y... Si usted fuera el mediador, ¿qué sugeriría?
Lisa (con el ceño fruncido): Lo debemos tener para esa fecha,
Doug. ¿De qué funcionalidad hablas?
Doug: Supongo que podemos tener la funcionalidad completa en la
fecha establecida, pero tendríamos que retrasar el acceso por inter-
net hasta el segundo incremento.
5. 7 VA L I D A C I Ó N DE LOS REQUERIMIENTOS
A medida que se crea cada elemento del modelo de requerimientos, se estudia para detectar
inconsistencias, omisiones y ambigüedades. Los participantes asignan prioridades a los reque-
rimientos representados por el modelo y se agrupan en paquetes de requerimientos que se
implementarán como incrementos del software. La revisión del modelo de requerimientos
aborda las preguntas siguientes:
• ¿Es coherente cada requerimiento con los objetivos generales del sistema o producto?
? Cuando se revisan los
requerimientos, ¿qué • ¿Se han especificado todos los requerimientos en el nivel apropiado de abstracción? Es
preguntas deben
decir, ¿algunos de ellos tienen un nivel de detalle técnico que resulta inapropiado en
plantearse?
esta etapa?
www.FreeLibros.me
• ¿Se ha usado el patrón de requerimientos para simplificar el modelo de éstos? ¿Se han
validado todos los patrones de manera apropiada? ¿Son consistentes todos los patrones
con los requerimientos del cliente?
Éstas y otras preguntas deben plantearse y responderse para garantizar que el modelo de reque-
rimientos es una reflexión correcta sobre las necesidades del participante y que provee un fun-
damento sólido para el diseño.
5. 8 RESUMEN
Las tareas de la ingeniería de requerimientos se realizan para establecer un fundamento sólido
para el diseño y la construcción. La ingeniería de requerimientos ocurre durante las actividades
de comunicación y modelado que se hayan definido para el proceso general del software. Los
miembros del equipo de software llevan a cabo siete funciones de ingeniería de requerimientos:
concepción, indagación, elaboración, negociación, especificación, validación y administración.
En la concepción del proyecto, los participantes establecen los requerimientos básicos del
problema, definen las restricciones generales del proyecto, así como las características y fun-
ciones principales que debe presentar el sistema para cumplir sus objetivos. Esta información
se mejora y amplía durante la indagación, actividad en la que se recaban los requerimientos y
que hace uso de reuniones que lo facilitan, DFC y el desarrollo de escenarios de uso.
La elaboración amplía aún más los requerimientos en un modelo: una colección de elemen-
tos basados en escenarios, clases y comportamiento, y orientados al flujo. El modelo hace refe-
rencia a patrones de análisis: soluciones para problemas de análisis que se ha observado que
son recurrentes en diferentes aplicaciones.
Conforme se identifican los requerimientos y se crea su modelo, el equipo de software y otros
participantes negocian la prioridad, la disponibilidad y el costo relativo de cada requerimiento.
Además, se valida cada requerimiento y su modelo como un todo comparado con las necesida-
des del cliente a fin de garantizar que va a construirse el sistema correcto.
www.FreeLibros.me