Un requisito se define como "una condición o posibilidad que debe cumplir el sistema".
Hay muchas clases diferentes de requisitos. Una de las maneras de categorizarlos se describe como el modelo
FURPS+ [GRA92]; se utiliza el acrónimo FURPS para describir las principales categorías de
requisitos con subcategorías, como se muestra a continuación.
El "+" de FURPS+ le recuerda que debe incluir requisitos como:
(Consulte también [IEEE Std 610.12.1990].)
Estas categorías y ejemplos de requisitos no funcionales se pueden utilizar como una lista de comprobación, para
preguntarse si dispone de un requisito en una categoría concreta. Pero, ¿cómo se consigue un conjunto
completo de requisitos no funcionales candidatos? Otros orígenes incluyen:
-
Para obtener una descripción de un enfoque sistemático para la captura de requisitos de acuerdo con el uso de
FURPS+, consulte el
artículo de The Rational Edge, 'Capturing Architectural Requirements' de Peter
Eeles (http://www.ibm.com/developerworks/rational/library/4706.html).
Facilita un cuestionario que lista un gran número de requisitos no funcionales, junto con algunas preguntas que
determinan su aplicabilidad
-
El Software Engineering Institute también ha creado un catálogo de 'casos de ejemplo generales' (expresiones de
requisitos de atributos de calidad) que se pueden reutilizar en muchos tipos diferentes de sistemas para definir
los requisitos de calidad. Para obtener más información, consulte http://www.sei.cmu.edu/publications/documents/01.reports/01tr014.html o Software
Architecture in Practice, 2ª Ed., de Len
Bass, Paul Clements y Rick Kazman (Addison-Wesley, 2003).
Los requisitos funcionales especifican acciones que debe poder realizar un sistema, sin tener en cuenta las
restricciones físicas. Estos requisitos suelen describirse correctamente en un modelo
de guión de uso y en guiones de
uso. Los requisitos funcionales especifican el comportamiento de salida y entrada de un sistema.
Los requisitos que no son funcionales, como los que se listan a continuación, también se conocen a veces como
requisitos no funcionales. Muchos requisitos no son funcionales y sólo describen atributos del sistema o
atributos del entorno del sistema. Los requisitos no funcionales son los que tratan temas como los que se
describen a continuación.
Los requisitos funcionales pueden incluir:
-
conjuntos de características
-
posibilidades
-
seguridad
Los requisitos de utilización pueden incluir subcategorías como:
-
factores humanos
-
estética
-
coherencia de la interfaz de usuario
-
ayuda en línea y según contexto
-
asistentes y agentes
-
documentación de usuario
-
materiales de formación
Los requisitos de fiabilidad que se deben tener en cuenta son:
-
frecuencia y gravedad del error
-
capacidad de recuperación
-
previsibilidad
-
precisión
-
tiempo medio entre errores (MTBF)
Un requisito de rendimiento impone condiciones a los requisitos funcionales. Por ejemplo, en una acción dada, puede
especificar parámetros de rendimiento para lo siguiente:
-
velocidad
-
eficiencia
-
disponibilidad
-
precisión
-
rendimiento
-
tiempo de respuesta
-
tiempo de recuperación
-
utilización de recursos
Los requisitos de capacidad de soporte incluyen:
-
comprobabilidad
-
capacidad de ampliación
-
adaptabilidad
-
mantenimiento
-
compatibilidad
-
capacidad de configuración
-
capacidad de servicio
-
capacidad de instalación
-
capacidad de localización (internacionalización)
Un requisito de diseño, a menudo llamado restricción de diseño, especifica o restringe el diseño de un sistema.
Un requisito de implementación especifica o restringe la codificación o la construcción de un sistema. Los ejemplos
son:
-
estándares necesarios
-
lenguajes de implementación
-
políticas de integridad de bases de datos
-
límites de recursos
-
entornos operativos
Un requisito de interfaz especifica:
-
un elemento externo con el que debe interactuar un sistema
-
restricciones de formato, tiempo u otros factores que utilice esta interacción
Un requisito físico especifica un característica física que debe tener un sistema; por ejemplo,
-
material
-
forma
-
tamaño
-
peso
Este tipo de requisito se puede utilizar para representar requisitos de hardware, como las configuraciones de red
física necesarias.
|