Normalmente, un tema de la Ingeniería de Software tiene diferentes significados. De las muchas definiciones que existen para requerimiento, a continuación se presenta la definición que aparece en el glosario de la IEEE .
(1) Una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo.
(2) Una condición o capacidad que debe estar presente en un sistema o componentes de sistema para satisfacer un contrato, estándar, especificación u otro documento formal.
(3) Una representación documentada de una condición o capacidad como en (1) o (2).
Clasificación
de requerimientos
Estos
requerimientos se utilizan para determinar que hará el Software, definiendo las
relaciones de su operación y su implementación, sin olvidar que deben ser
explícitos también en lo que el sistema no debe hacer y que validaciones se
deben realizar, teniendo en cuenta cual será el comportamiento del sistema.
Los
Requerimientos funcionales se pueden dividir en dos puntos de vista: El primero
tiene relación con el usuario, donde se identifica la relación del usuario con
el sistema desde el punto de vista del mismo; El segundo tiene relación con el
sistema dando respuesta al usuario, es decir desde el punto de vista de lo que
realiza el sistema.
Para
un desarrollador de sistemas es natural dar interpretaciones de un
requerimiento ambiguo con el fin de simplificar su implementación. Sin embargo,
a menudo no es lo que el cliente desea. Se tienen que estipular nuevos
requerimientos y se deben hacer cambios al sistema, retrasando la entrega de
éste e incrementando el costo. En principio, la especificación de requerimientos
funcionales de un sistema debe estar completa y ser consistente con lo
solicitado por el usuario
Requerimientos no
funcionales
Estos
requerimientos se basan en las restricciones de los servicios o funciones
ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de
desarrollo, estándares, usabilidad, portabilidad, entre otros.
Los
Requerimientos funcionales son los requerimientos que no se refieren
directamente a las funciones específicas que entrega el sistema, sino a las propiedades
emergentes de éste como la fiabilidad, la respuesta en el tiempo y la capacidad
de almacenamiento.
Los
requerimientos no funcionales surgen de la necesidad del usuario, debido a las
restricciones en el presupuesto, a las herramientas utilizadas, a las políticas
de la organización, a la necesidad de interoperabilidad con otros sistemas de
software o hardware o a factores externos como los reglamentos de seguridad,
las políticas de privacidad, etcétera.
Los
dos tipos de requerimientos especificados son de gran importancia para el
desarrollo de una aplicación en software, por lo tanto siempre deben ser
escritos con claridad, contener la mayor especificación de las necesidades
expuestas por el cliente, esto con el fin de tener un soporte base desde el
cual se trabajaran y no presentar ambigüedades en la definición y el resultado
del producto. La figura a continuación muestra los inconvenientes que se pueden
presentar cunado no se hace una identificación correcta de los requerimientos.
No hay comentarios:
Publicar un comentario