Вы находитесь на странице: 1из 4

CAPITULO 6 - REQUERIMIENTOS DE SOFTWARE

REQUERIMIENTOS DE SOFTWARE

Concepto

 Los requerimientos para un sistema son la descripción de los servicios proporcionados por el sistema y
sus restricciones operativas.
 Reflejan las necesidades de los clientes de un sistema que ayude a resolver algún problema como el
control de un dispositivo, hacer un pedido o encontrar información.
 La Ingeniería de requerimientos es el proceso de descubrir, analizar, documentar y verificar estos
servicios y restricciones.

Requerimientos de usuario y de sistema

1. Los requerimientos del usuario son declaraciones, en lenguaje natural y en diagramas, de los servicios
que se espera que el sistema proporcione y de las restricciones bajo las cuales debe funcionar.
2. Los requerimientos del sistema establecen con detalle las funciones, servicios y restricciones
operativas del sistema.

Requerimientos Funcionales y no funcionales

1. Requerimientos funcionales. Son declaraciones de los servicios que debe proporcionar el sistema, de
la manera en que éste debe reaccionar a entradas particulares y de cómo se debe comportar en
situaciones particulares. En algunos casos, los requerimientos funcionales de los sistemas también
pueden declarar explícitamente lo que el sistema no debe hacer.
2. Requerimientos no funcionales. Son restricciones de los servicios o funciones ofrecidos por el sistema.
Incluyen restricciones de tiempo, sobre el proceso de desarrollo y estándares. Los requerimientos no
funcionales a menudo se aplican al sistema en su totalidad. Normalmente apenas se aplican a
características o servicios individuales del sistema.
3. Requerimientos del dominio. Son requerimientos que provienen del dominio de aplicación del sistema
y que reflejan las características y restricciones de ese dominio. Pueden ser funcionales o no
funcionales.

Tipos de requerimientos no funcionales

 Requerimientos del producto


o Requerimientos de usabilidad
o Requerimientos de eficiencia
 Requerimientos de rendimiento
 Requerimientos de espacio
o Requerimientos de fiabilidad
o Requerimientos de portabilidad
 Requerimientos organizacionales
o Requerimientos de entrega
o Requerimientos de implementación
o Requerimientos de estándares
 Requerimientos externos
o Requerimientos interoperabilidad
o Requerimientos éticos
o Requerimientos legislativos
 Requerimientos de privacidad
 Requerimientos de seguridad

Métricas para especificar requerimientos no funcionales

Transacciones procesadas por segundo.


Rapidez
Tiempo de respuesta al usuario y a eventos
Tiempo de actualización de la pantalla
KBytes
Tamaño
Número de chips de RAM
Tiempo de formación
Facilidad de uso
Número de cuadros de ayuda
Tiempo medio entre fallos
Fiabilidad
Probabilidad de no disponibilidad
Tasa de ocurrencia de fallos
Disponibilidad
Tiempo de reinicio después de fallos
Robustez
Porcentaje de eventos que provocan fallos
Probabilidad de corrupción de los datos después de fallos
Porcentaje de declaraciones dependientes del objetivo
Portabilidad
Número de sistemas objetivo

1. Requerimientos del producto. Estos requerimientos especifican el comportamiento del producto.


Algunos ejemplos son los requerimientos de rendimiento en la rapidez de ejecución del sistema y
cuánta memoria se requiere; los requerimientos de fiabílidad que fijan la tasa de fallos para que el
sistema sea aceptable; los requerimientos de portabilidad, y los requerimientos de usabilidad.
2. Requerimientos organizacionales. Estos requerimientos se derivan de políticas y procedimientos
existentes en la organización del cliente y en la del desarrollador. Algunos ejemplos son los estándares
en los procesos que deben utilizarse; los requerimientos de implementación, como los lenguajes de
programación o el método de diseño a utilizar, y los requerimientos de entrega que especifican cuándo
se entregará el producto y su documentación.
3. Requerimientos externos. Este gran apartado incluye todos los requerimientos que se derivan de los
factores externos al sistema y de su proceso de desarrollo. Éstos pueden incluir los requerimientos de
interoperabilidad que definen la manera en que el sistema interactúa con sistemas de otras
organizaciones; los requerimientos legislativos que deben seguirse para asegurar que el sistema
funcione dentro de la ley, y los requerimientos éticos. Estos últimos son puestos en un sistema para
asegurar que será aceptado por sus usuarios y por el público en general.

Requerimientos de usuario

Los requerimientos del usuario para un sistema deben describir los requerimientos funcionales y no
funcionales de tal forma que sean comprensibles por los usuarios del sistema sin conocimiento técnico
detallado. Por consiguiente, si se están redactando requerimientos del usuario, no se debe utilizar jerga del
software, notaciones estructuradas o formales, o describir los requerimientos por la descripción de la
implementación del sistema. Deben redactarse en un lenguaje sencillo, con tablas y formularios sencillos y
diagramas intuitivos.

Problemas en la redacción de requerimientos de usuario

1. Falta de claridad. Algunas veces es difícil utilizar el lenguaje de forma precisa y no ambigua sin hacer el
documento poco conciso y difícil de leer.
2. Confusión de requerimientos. No se distinguen claramente los requerimientos funcionales y no
funcionales, las metas del sistema y la información para el diseño.
3. Conjunción de requerimientos. Diversos requerimientos diferentes se pueden expresar de forma
conjunta como un único requerimiento.

Requerimientos del sistema

Los requerimientos del sistema son versiones extendidas de los requerimientos del usuario que son utilizados
por los ingenieros de software como punto de partida para el diseño del sistema. Agregan detalle y explican
cómo el sistema debe proporcionar los requerimientos del usuario. Pueden ser utilizados como parte del
contrato para la implementación del sistema y, por lo tanto, deben ser una especificación completa y
consistente del sistema entero. En teoría, los requerimientos del sistema simplemente deben describir el
comportamiento

Especificación de la Interfaz

Casi todos los sistemas software deben funcionar con otros sistemas que ya están implementados e instalados
en el entorno. Si el sistema nuevo y los ya existentes deben trabajar juntos, las interfaces de estos últimos
deben especificarse de forma precisa. Estas especificaciones se deben definir al inicio del proceso y se incluyen
(quizás como un apéndice) en el documento de requerimientos.

Existen tres tipos de interfaces que pueden definirse:

1. Interfaces de procedimientos en las cuales los programas o subsistemas existentes ofrecen una
variedad de servicios a los que se accede invocando a los procedimientos de la interfaz. Estas interfaces
a veces se denominan Interfaces de Programación de Aplicaciones (APIs).
2. Estructuras de datos que pasan de un subsistema a otro. Los modelos gráficos de datos son las
mejores notaciones para este tipo de descripción. Si es necesario, se pueden generar automáticamente
descripciones de programas en Java o C++ de estas descripciones.
3. Representaciones de datos (como el orden de los bits) establecidas para un subsistema existente.
Estas interfaces son muy comunes en sistemas de tiempo real embebido. A l gunos lenguajes de
programación como Ada (aunque no Java) soportan este nivel de especificación. Sin embargo, la mejor
forma de describir éstos es probablemente utilizar un diagrama de la estructura con anotaciones que
expliquen la función de cada grupo de bits.

Usuarios de un documento de requerimientos

Clientes del sistema Especifican los requerimientos y los leen para verificar
que cumplen sus necesidades. Los clientes especifican
los cambios en los requerimientos

Administradores Utilizan el documento de requerimientos para planificar


una oferta por el sistema y para planificar el proceso de
desarrollo del sistema

Ingenieros de sistemas Utilizan los requerimientos para comprender qué


sistema debe desarrollarse

Ingenieros probadores del sistema Utilizan los requerimientos para desarrollar las pruebas
de validación para el sistema
Ingenieros encargados del Utilizan los requerimientos para comprender el sistema
mantenimiento del sistema y las relaciones entre sus partes