Especificación de requerimientos:
La especificación de requisitos de software (ERS) es una
descripción completa del comportamiento del sistema que se va a desarrollar.
Incluye un conjunto de casos de uso que describe todas las interacciones que
tendrán los usuarios con el software. Los casos de uso también son conocidos
como requisitos funcionales. Además de los casos de uso, la ERS también
contiene requisitos no funcionales (o complementarios). Los requisitos no funcionales
son requisitos que imponen restricciones en el diseño o la implementación,
como, por ejemplo, restricciones en el diseño o estándares de calidad.
Funcionales:
Son declaraciones
de los servicios que proveerá el sistema, de la manera en que éste reaccionará
a entradas particulares. En algunos casos, los requerimientos funcionales de
los sistemas también declaran explícitamente lo que el sistema no debe hacer.
Los requerimientos
funcionales de un sistema describen la funcionalidad o los servicios que se
espera que éste provea. Estos dependen del tipo de software y del sistema que
se desarrolle y de los posibles usuarios del software. Cuando se expresan como
requerimientos del usuario, habitualmente se describen de forma general
mientras que los requerimientos funcionales del sistema describen con detalle
la función de éste, sus entradas y salidas, excepciones, etc.
Muchos de los
problemas de la ingeniería de software provienen de la imprecisión en la
especificación de requerimientos. 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. La compleción significa que todos los servicios solicitados
por el usuario están definidos. La consistencia significa que los
requerimientos no tienen definiciones contradictorias. En la práctica, para
sistemas grandes y complejos, es imposible cumplir los requerimientos de
consistencia y compleción.
No funcionales:
Son restricciones
de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones
de tiempo, sobre el proceso de desarrollo, estándares, etc.
Son aquellos
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. De
forma alternativa, definen las restricciones del sistema como la capacidad de
los dispositivos de entrada/salida y la representación de datos que se utiliza
en la interface del sistema.
Muchos
requerimientos no funcionales se refieren al sistema como un todo más que a
rasgos particulares del mismo. Esto significa que a menudo con más críticos que
los requerimientos funcionales particulares. Mientras que el incumplimiento de
este último degradará el sistema, una falla en un requerimiento no funcional
del sistema lo inutiliza.
Los requerimientos
no funcionales surgen de la necesidad del usuario, debido a las restricciones
en el presupuesto, 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.
Comentarios
Publicar un comentario