Contexto
El consejo administrativo de una empresa que tiene más de 2000 empleados ha decidido reemplazar su antiguo sistema de información porque ya no cubre sus actuales necesidades, presenta algunos errores en la operación y ya no tiene soporte técnico de parte del proveedor.
Como parte de las actividades del proyecto de desarrollo de software, el ingeniero de requerimientos ha solicitado a los stakeholders un listado de todas las funciones que desean que tenga el nuevo sistema de información que está por desarrollarse.
Uno de los stakeholders es el gerente de marketing, quien se ha mostrado muy entusiasmado por la posibilidad de contar con un nuevo sistema que le ayude a administrar su área. Ha escrito algunas de sus necesidades sobre el sistema y se las ha enviado por correo electrónico al ingeniero de requerimientos. En el listado se encuentran los siguientes:
El sistema deberá realizar las siguientes funciones:
Al revisar el correo del gerente de marketing, el ingeniero de requerimientos se pregunta lo siguiente:
Explicación
11.1 Efectos del lenguaje natural
El uso del lenguaje natural en la redacción de requerimientos se refiere al uso de la escritura para describir los detalles de un requerimiento como mecanismo de comunicación entre el usuario final y el equipo de desarrollo.
Utilizar el lenguaje natural en muchas ocasiones provoca ambigüedad ya que un texto puede ser interpretado de diferentes formas. El ingeniero de requerimientos debe estar consciente de la posibilidad de una lectura errónea, sobre todo porque los requisitos de un software son revisados por personas diferentes, con antecedentes académicos diversos y objetivos distintos.
Un ejemplo de un mensaje ambiguo, que es frecuentemente objeto de debate, es el que encuentras al pie de las escaleras eléctricas: “Los perros deben ser cargados” que puede leerse también como “Deben llevarse perros” y sugiere la absurda idea que para utilizar las escaleras es obligatorio llevar un perro. El mensaje correcto debería ser “Si tienes un perro, debes cargarlo al utilizar las escaleras”.
Otro ejemplo puede ser el anuncio en una construcción que dice “Sedeben utilizar zapatos”, que no quiere decir “Si tienes zapatos, úsalos”, sino “Usa zapatos de seguridad”.
Sommerville (2011 ), ofrece las siguientes recomendaciones:
Sommerville (2011) sugiere utilizar el siguiente formato para evitar la variabilidad en la descripción de los requerimientos, que es uno de los problemas al utilizar el lenguaje natural.
Elemento |
Descripción |
Identificador |
Identificador del Requerimiento/Versión del documento |
Función |
Título de la función o entidad |
Descripción |
Descripción de la función o entidad a especificar |
Entradas |
Descripción de sus entradas y de dónde provienen |
Salidas |
Descripción de sus salidas y hacia dónde van |
Destino |
Ubicación de la función en el sistema |
Acción |
Descripción del requerimiento |
Precondición |
Especificar la precondición que se debe cumplir antes de invocar la función |
Postcondición |
Especifica lo que será verdad una vez invocada dicha función |
Efectos colaterales |
Efectos o posibles resultados alternos que se podrían dar |
Nota: En caso de ser necesario, la redacción del requerimiento puede hacer referencia a otros documentos que detallen la información.
Por ejemplo, si deseas describir la función un sistema de atención a fallas (SAF)
Identificador |
REQ-01v3 / ERS-SAF-v.10 |
Función |
Ingresar un registro de falla. |
Descripción |
El usuario ingresará los datos generales para registrar una falla detectada por el cliente. |
Entradas |
Número de cliente, número de servicio. |
Salidas |
Número de reporte de falla, tiempo promedio de resolución. |
Destino |
Control Principal. |
Acción |
El sistema deberá presentar un formulario para ingresar los datos generales del reporte de falla: número de cliente, número de servicio, datos del usuario que registra la falla, severidad, descripción de la falla. |
Precondición |
El sistema debe tener registrado al cliente. El servicio del cliente debe estar registrado. Si estas condiciones no se cumplen mostrar el mensaje “No existe el registro del cliente” o “No existe el registro del servicio asignado al cliente”. |
Postcondición |
El sistema deberá calcular el tiempo promedio de resolución basándose en el tipo de falla |
Efectos colaterales |
Ninguno. |
11.2 Calidad en los requerimientos
Es necesario que el ingeniero de requisitos tenga una presentación con los siguientes atributos que permitan redactar los requisitos con calidad:
Haz clic en cada atributo para conocer la información.
Pohl y Rupp (2011) sugieren dos principios fundamentales para mejorar la legibilidad al redactar requerimientos:
Las frases y párrafos cortos: Redactar los requerimientos de la forma más corta posible ofrece aprovechar la memoria a corto plazo de las personas, se recomiendan máximo 7 oraciones.
Formular un único requisito por oración: Utilizar la voz activa y sólo un verbo de proceso. Evitar frases entrelazadas largas y complicadas.
Observa la redacción del siguiente requerimiento:
“El sistema deberá ser amigable para el usuario y generar un reporte rápido de las órdenes de clientes más recientes que pueda leerse con facilidad”.
Como puedes observar en la redacción del requerimiento anterior, las palabras “amigable”, “rápido” y “facilidad”, son términos ambiguos que podrían producir errores de interpretación. Lo que para un usuario puede considerarse una característica “amigable”, “rápida” o “fácil” para otro no lo sería.
Este mismo problema aparecería en el equipo de desarrollo, ¿Cómo asegurar el diseño de una
interfaz “amigable”?, ¿Qué significa “rápido”: 1 minuto, 30 segundos, 1 milésima de segundo?
Una posible redacción más adecuada podría ser:
REQ-01: El sistema deberá poder ser utilizado por los usuarios que hayan pasado por un curso de capacitación de 2 horas. Se espera que el usuario cometa menos de 3 errores en promedio al capturar órdenes de venta.
REQ-02: El reporte de órdenes de cliente deberá ser obtenido en menos de 2 segundos.
REQ-03. El reporte deberá mostrar las 10 órdenes más recientes del cliente.
REQ-04. Las órdenes deberán ser mostradas en orden descendente tomando como base la fecha de creación y en una hoja tabular, incluyendo los siguientes datos: número de orden, fecha de creación, producto solicitado.
Observa cómo el requerimiento se divide en 4 partes. Esto permite que pueda ser analizado con mayor detalle, incluso cada requerimiento puede ser asignado a grupos de desarrollo distintos, el primero es para el diseñador de interfaz gráfica y los requerimientos 2, 3 y 4 pueden ser para un grupo de reportes y análisis de datos.
La redacción del REQ-01 expresa la cualidad “sistema amigable” a través de una clara descripción de lo que se espera: evitar introducir errores al sistema de órdenes de compra. Mientras que el texto del REQ-02 describe las cualidades “rapidez” al expresar claramente el tiempo de espera. Los REQ-03 y REQ-04 puntualizan la “facilidad” mediante una explicación de las características del reporte.
11.3 Criterios de calidad en la documentación
Pohl y Rupp (2011) recopilan los siguientes criterios de calidad del documento de requerimientos, tomando en cuenta algunos estándares que aún siguen vigentes:
Claridad y consistencia [IEEE Std. 830-1998]
Claridad en su estructura
Modificable y extensibilidad [IEEE Std. 830-1998]
Completitud [IEEE Std. 830-1998]
Trazabilidad [IEEE Std. 830-1998]
La consistencia se logra al comparar los requerimientos individuales entre sí, el objetivo es cerciorarse que no se contradicen unos con otros.
Para Pohl y Rupp (2011) otro aspecto de la claridad del documento es que sea posible identificar a cada uno de los requerimientos de forma individual y única en el mismo, entre otros documentos de requerimientos del mismo o de otro proyecto.
Cierre
La calidad del documento de requerimientos está relacionada directamente con la redacción de los requisitos individuales que contiene.
Al redactar cada uno de los requerimientos, debes preguntarte si su composición evita ambigüedades o imprecisiones que podrían poner el riesgo el éxito del proyecto. Cada uno debe ser analizado individualmente con mucho cuidado, tanto por los stakeholders, como por el equipo de desarrollo. Cualquier duda debe ser aclarada, ya sea volviendo a redactar el requerimiento o agregando información complementaria.
Un documento de requerimientos de calidad evita retrabajos posteriores que podrían generar gastos innecesarios, mantiene satisfecho al cliente y motiva a los participantes del proyecto al saber que están trabajando en lo que verdaderamente se espera del sistema.
Si cada requerimiento es escrito respetando sus criterios de calidad, es posible identificar aquellos que podrían no ser factibles económica o técnicamente, dándole la oportunidad al administrador de proyecto de establecer un alcance realista del desarrollo de software.
Checkpoint
Asegúrate de poder:
Referencias
Glosario
Pohl y Rupp (2011) también consideran que el Glosario es imprescindible para la calidad del documento de requerimientos de software.
El glosario es una colección de términos y definiciones que sirven como complemento para que los usuarios logren interpretar mejor la redacción de los requerimientos. Debe contener lo siguiente:
Es aconsejable poder reutilizar términos incluidos en otros proyectos que pertenecen al mismo dominio. Por ejemplo si se desarrolla un sistema de reservaciones, el mismo glosario podría ser utilizado en un proyecto de citas para un consultorio o para una estética.
Para reducir el esfuerzo de alinear términos es aconsejable comenzar a crear el glosario desde el principio del proyecto.
Reglas al utilizar el Glosario
Se recomienda que exista un solo glosario de términos que pueda ser compartido en todo el proyecto y por varios documentos.
La administración del glosario debe ser asignada a una sola persona quien será responsable de su mantenimiento y consistencia.
Mientras el proyecto siga vigente se debe mantener vivo para garantizar su coherencia
Al ser uno sólo para todos los documentos del proyecto, debe ser asequible a cualquier miembro del proyecto. Esto se puede lograr compartiéndolo en un repositorio común, o bien, publicándolo en una página web de acceso controlado.
Todo el personal involucrado debe estar obligado a utilizar exclusivamente los términos y definiciones como han sido definidos en el glosario.
Con el fin de ser capaz de resolver dudas y problemas en cualquier momento durante el curso del proyecto, debe ser posible determinar la fuente de un término.
Cada definición debe ser validada por los interesados o sus representantes; además de ser aprobada explícitamente. Esto indica que el significado es correcto y su uso es obligatorio.
Con el fin de apoyar una documentación consistente, es recomendable utilizar un formato para las definiciones del glosario. Además del significado, debe especificar posibles sinónimos y homónimos.