Concepto: Requisitos
Un requisito se define como "una condición o posibilidad que debe cumplir el sistema".
Relaciones
Descripción principal

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.   

Funcionalidad

Los requisitos funcionales pueden incluir:

  • conjuntos de características
  • posibilidades
  • seguridad

Utilización

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

Fiabilidad

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)

Rendimiento

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

Capacidad de soporte

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)

Requisito de diseño

Un requisito de diseño, a menudo llamado restricción de diseño, especifica o restringe el diseño de un sistema.

Requisito de implementación

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

Requisito de interfaz

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

Requisito físico

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.