Capitulo 5
Capitulo 5
Capitulo 5
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 personas 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:
• Problemas de alcance. La frontera de los sistemas está mal definida o los clientes o usuarios
finales especifican detalles técnicos innecesarios que confunden, más que clarifican, los objetivos
generales del sistema. • Problemas de entendimiento. Los clientes o usuarios no están
completamente seguros de lo que se necesita, comprenden mal las capacidades y limitaciones de
su ambiente de computación, no entienden todo el dominio del problema, tienen problemas para
comunicar las necesidades al ingeniero de sistemas, omiten información que creen que es “obvia”,
especifican requerimientos que están en conflicto con las necesidades de otros clientes o usuarios,
o solicitan requerimientos ambiguos o que no pueden someterse a prueba. • Problemas de
volatilidad. Los requerimientos cambian con el tiempo. Para superar estos problemas, debe
enfocarse la obtención de requerimientos en forma organizada.
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
2.2 Características del producto 2.3 Clases y características del usuario 2.4 Ambiente de
operación 2.5 Restricciones de diseño e implementación 2.6 Documentación para el usuario 2.7
Suposiciones y dependencias 3. Características del sistema 3.1 Característica 1 del sistema 3.2
Característica 2 del sistema (y así sucesivamente) 4. Requerimientos de la interfaz externa 4.1
Interfaces de usuario 4.2 Interfaces del hardware 4.3 Interfaces del software 4.4 Interfaces de las
comunicaciones 5. Otros requerimientos no funcionales 5.1 Requerimientos de desempeño 5.2
Requerimientos de seguridad 5.3 Requerimientos de estabilidad 5.4 Atributos de calidad del
software 6. Otros requerimientos Apéndice A: Glosario Apéndice B: Modelos de análisis Apéndice
C: Lista de conceptos Puede obtenerse una descripción detallada de cada ERS si se descarga el
formato desde la URL mencionada antes.
INFORMACIÓN
En una negociación eficaz no debe haber ganador ni perdedor. Ambos lados ganan porque un
“trato” con el que ambas partes pueden vivir es algo sólido. CONSEJO
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 enunciados
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 establecidos para el
proceso, el proyecto y el producto. El mecanismo principal de validación de los requerimientos es
la revisión técnica (véase el capítulo 15). El equipo de revisión que los valida incluye ingenieros de
software, clientes, usuarios y otros participantes, que analizan la especificación en busca de
errores de contenido o de interpretación, de aspectos en los que tal vez se requiera hacer
aclaraciones, falta de información, inconsistencias (problema notable cuando se hace la ingeniería
de productos o sistemas grandes) y requerimientos en conflicto o irreales (no asequibles).
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 formalidad.
• ¿El requerimiento viola algunas restricciones del dominio? • ¿Puede someterse a prueba el
requerimiento? Si es así, ¿es posible especificar las pruebas (en ocasiones se denominan criterios
de validación) para ensayar el requerimiento? • ¿Puede rastrearse el requerimiento hasta
cualquier modelo del sistema que se haya creado? • ¿Es posible seguir el requerimiento hasta los
objetivos del sistema o producto? • ¿La especificación está estructurada en forma que lleva a
entenderlo con facilidad, con referencias y traducción fáciles a productos del trabajo más
técnicos? • ¿Se ha creado un índice para la especificación? • ¿Están enunciadas con claridad las
asociaciones de los requerimientos con las características de rendimiento, comportamiento y
operación? ¿Cuáles requerimientos parecen ser implícitos? INFORMACIÓN
computadora cambian, y el deseo de modificarlos persiste durante toda la vida del sistema. La
administración de los requerimientos es el conjunto de actividades que ayudan al equipo del
proyecto a identificar, controlar y dar seguimiento a los requerimientos y a sus cambios en
cualquier momento del desarrollo del proyecto.6 Muchas de estas actividades son idénticas a las
técnicas de administración de la configuración del software (TAS) que se estudian en el capítulo
22.
www.FreeLibros.me
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 conversaciones
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 dispongan 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. En las
secciones que siguen se estudian las etapas requeridas para establecer las bases que permiten
entender los requerimientos de software a fin de que el proyecto comience en forma tal que se
mantenga avanzando hacia una solución exitosa.
5.2.1 Identificación de los participantes 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 habituales: 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 software ágil.
HERRAMIENTAS DE SOFTWARE
Ingeniería de requerimientos
PUNTO CLAVE Un participante es cualquier persona que tenga interés directo o que se beneficie
del sistema que se va a desarrollar.
www.FreeLibros.me
Durante la concepción, debe hacerse la lista de personas que harán aportes cuando se recaben los
requerimientos (véase la sección 5.3). La lista inicial crecerá cuando se haga contacto con los
participantes porque a cada uno se le hará la pregunta: “¿A quién más piensa que debe
consultarse?”
5.2.2 Reconocer los múltiples puntos de vista Debido a que existen muchos participantes
distintos, los requerimientos del sistema se explorarán desde muchos puntos de vista diferentes.
Por ejemplo, el grupo de mercadotecnia se interesa en funciones y características que estimularán
el mercado potencial, lo que hará que el nuevo sistema sea fácil de vender. Los gerentes del
negocio tienen interés en un conjunto de características para que se elabore dentro del
presupuesto y que esté listo para ocupar nichos de mercado definidos. Los usuarios finales tal vez
quieran características que les resulten familiares y que sean fáciles de aprender y usar. Los
ingenieros de software quizá piensen en funciones invisibles para los participantes sin formación
técnica, pero que permitan una infraestructura que dé apoyo a funciones y características más
vendibles. Los ingenieros de apoyo tal vez se centren en la facilidad del software para recibir
mantenimiento. Cada uno de estos integrantes (y otros más) aportará información al proceso de
ingeniería de los requerimientos. A medida que se recaba información procedente de múltiples
puntos de vista, los requerimientos que surjan tal vez sean inconsistentes o estén en conflicto uno
con otro. Debe clasificarse toda la información de los participantes (incluso los requerimientos
inconsistentes y conflictivos) en forma que permita a quienes toman las decisiones escoger para el
sistema un conjunto de requerimientos que tenga coherencia interna.