Cap06 - Requerimientos de Software
Cap06 - Requerimientos de Software
Cap06 - 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.
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.
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.
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.
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.
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.
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.
Clientes del sistema Especifican los requerimientos y los leen para verificar
que cumplen sus necesidades. Los clientes especifican
los cambios en los requerimientos
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