IISW - Módulo 7 v02
IISW - Módulo 7 v02
IISW - Módulo 7 v02
Especificación de requerimientos
La especificación de requerimientos de software (SRS: Software Requirement
Specification) contiene una descripción completa del comportamiento externo del
software. El SRS son las especificaciones para un producto de software en particular,
programa o conjunto de programas que realizan ciertas funciones en un determinado
entorno. Deben especificarse tanto requerimientos funcionales como no funcionales.
Una alternativa es completar el análisis del problema y luego escribir el SRS. Otra, es ir
descomponiéndolo e ir escribiendo la sección correspondiente en el medida que se va
avanzando.
El documento SRS puede ser llevado a cabo por personal representativo del proveedor, es
decir, el desarrollador del producto, o podría ser realizado por el usuario o potencial
cliente. Lo recomendable es que fuera con la participación de ambos partes.
Si bien es probable que en el ámbito laboral no se lleve a cabo el estándar tal como lo
indica la IEEE, es habitual que las organizaciones se basen en él y hagan una adaptación
acorde a sus necesidades.
Los volúmenes no siempre son un problema, pero para saber si lo son o no, deben
analizarse. Por ejemplo: si mi sistema procesa autorizaciones de compras para tarjetas de
crédito, diseñar una solución para un pico de 20 autorizaciones por día, 500
autorizaciones por hora o 5000 autorizaciones por hora, no será lo mismo.
El siguiente cuadro fue confeccionado por Barry Boehm, un reconocido autor en el área de
ingeniería del software, que estableció en 1976 una lista jerárquica de cualidades
presentes un producto de software.
Si bien el cuadro es muy completo, no todos los sistemas de software que nosotros
desarrollemos van a requerir que se especifique toda la lista de cualidades precedente.
Lo más relevante a tener en cuenta es que debe determinarse para cada aplicación y cada
situación particular cuáles son los requerimientos críticos necesarios, sin generalizar, para
evitar malgastar tiempo y recursos en cuestiones que no son imprescindibles.
Correcto: Una especificación de requisitos de software es correcta si, y solo si, todos y
cada uno de los requisitos indicados representa algo requerido por el sistema a
construirse. No hay una herramienta que pueda garantizar la corrección, pero si es
recomendable que el cliente determine si la especificación del software muestra sus
necesidades.
Todo lo que el software tiene que hacer está en el SRS. Es una condición difícil de
lograr ya que, si lo olvidamos, no lo detectaremos fácilmente.
Todas las posibles respuestas del software a todas las posibles entradas de datos
deben estar definidas. Es importante especificar las respuestas tanto para datos de
entrada válidos, como inválidos.
Todas las páginas, figuras y tablas numeradas y referenciadas.
Ninguna sección puede contener las siglas en inglés TBD (to be determined: a
determinar), que se incluye junto a un requerimiento del SRS cuando su descripción
no se encuentra completa. Es recomendable incluir, en este caso, la causa por la cuál
está incompleto, junto con quién es la persona responsable de llevarlo a cabo y una
fecha estipulada para cumplirse.
En función de cómo se describe, puede ser difícil verificar el requerimiento: los requisitos
ambiguos no son verificables (por ejemplo: “el sistema debe tener una interfaz
amigable”). Lo mismo sucede cuando indican cantidades no mensurables (por ejemplo: “el
sistema usualmente no debe demorar más de 30 segundos en una consulta”) o cualquier
requerimiento referente a pruebas de bloqueo (por ejemplo: “el sistema no puede entrar
en un ciclo infinito”). Si no es posible establecer un método para comprobar si el software
cumple con un determinado requisito, el requisito debe eliminarse o revisarse.
Consistente: La documentación es internamente consistente si, y solo si, no se establecen
conflictos entre requisitos individuales o grupos de requisitos. Los tres tipos de conflictos
posibles son:
Entendible por no especialistas: refiere a que la notación formal que se emplee debe
poder ser comprendida por clientes y usuarios especialistas en todas las áreas. La idea es
que sea fácil de entender para que el cliente pueda validarla.
Trazabilidad hacia atrás desde los requerimientos: podemos conocer porque cada
requerimiento en el SRS existe.
Trazabilidad hacia adelante hasta los requerimientos: todos los documentos que
preceden al SRS pueden referenciarse al SRS.
Anotada: Cada requerimiento con una anotación que provee una guía al desarrollo.
Existen básicamente dos tipos de notaciones:
La validación de los requerimientos la debe realizar el cliente y los usuarios para confirmar
que coincidan con los definidos para el sistema en relación a lo que se desea o espera de
él. La validación es importante porque los costos de errores en los requerimientos son
altos, por lo cual, cuanto antes se detecten, más pronto podrán corregirse. El prototipado
es una técnica de gran utilidad al momento de validar los requerimientos.