Está en la página 1de 4

Clasificacin de los Requerimientos

REQUERIMIENTOS ESPECFICOS. Los requerimientos deben exponerse en la forma ms precisa posible, pero sin que la descripcin de un requisito individual resulte demasiado extensa. Si fuera necesario, puede darse una descripcion resumida y hacer referencia a un apndice con la descripcin detallada. Es importante no incluir en los requerimientos aspectos de desarrollo o diseo. Los requerimientos son lo mnimo que se impone al sistema, y no hay que describir soluciones particulares que no sea obligatorio utilizar (excepto como aclaracin o sugerencia). Es ventajoso enunciar los requerimientos en forma de una lista numerada, para facilitar su seguimiento y la validacin de sistema. Cada requerimiento debe ir acompaado de una indicacin del grado de cumplimiento necesario, es decir, si es obligatorio, recomendable o simplemente opcional.

Funcionales. Lo que el software debe de hacer. Se encuentran muy ligados al modelo conceptual propuesto. Se concretarn las operaciones de tratamiento de informacin que realiza el sistema, tales como almacenamiento de informacin, generacin de informes, clculos, estadsticas, operaciones, etc. Qu har el sistema? Cundo lo har? Existen varios modos de operacin? Cmo y cundo puede cambiarse o mejorarse el sistema? Existen restricciones de la velocidad de ejecucin, tiempo de respuesta o rendimiento? Ambiente fsico. Dnde est el equipamiento que necesita el sistema para funcionar? Existe una localizacin o varias? Existen restricciones ambientales, tales como temperatura, humedad o interferencia magntica? Usuarios y factores humanos. Quin usar el sistema? Habr varios tipos de usuario? Cul es el nivel de habilidad de cada tipo de usuario? Qu clase de entrenamiento requerir cada tipo de usuario? Qu tan fcil le ser a un usuario comprender y utilizar el sistema? Desempeo. Velocidad, disponibilidad, tiempo de respuesta, tiempo de recuperacin, etc. Interfaz. Elemento de interaccin con la gente, hardware u otro software. Se incluyen por lo tanto, bases de datos, protocolos, formatos de ficheros, sistemas operativos, datos, etc. La entrada proviene de uno o ms sistemas? La salida va a uno o ms sistemas? Restricciones de diseo. Estndares establecidos para el desarrollo. Operacin. Son los referentes al uso del sistema en general e incluyen los requisitos de la interfase de usuario (mens de pantalla, manejo de mouse, teclado, etc.). el inicio y fin, copias de seguridad, requisitos de instalacin y configuracin. Recursos. Son los referentes a elementos de hardware, software, instalaciones, etc., necesarios para el funcionamiento del sistema. Es muy importante estimar los recursos con

cierto coeficiente de seguridad en previsin de necesidades de ltima hora no provistas inicialmente. Verificacin. Son los que debe cumplir el sistema para que sea posible verificar y certificar que funciona correctamente el sistema (funciones de autotest, emulacin, simulacin, etc.). Prueba de aceptacin. Son los que deben cumplir las pruebas de aceptacin a que se someter el sistema. Documentacin. Son los referentes a la documentacin que debe formar parte del producto a entregar. Seguridad. Son los referentes a la proteccin del sistema contra cualquier manipulacin o utilizacin indebida (confidencialidad, integridad, virus, etc.). Transportabilidad. Son los referentes a la posible utilizacin del sistema en diversos entornos o sistemas operativos de una forma sencilla y barata. Calidad. Son los referentes a aspectos de calidad que no se incluyan en otros apartados Fiabilidad. Son los referentes al lmite aceptable de fallos o cadas durante la operacin del sistema. Mantenibilidad. Son los que debe cumplir el sistema para que se pueda realizar adecuadamente su mantenimiento durante la fase de explotacin. Capacidad. Son los referentes a los volmenes de informacin a procesar, tiempo de respuesta, tamaos de ficheros o discos, etc. Estos requerimientos deben expresarse mediante valores numricos e incluso, cuando sea necesario, se darn valores para el peor, el mejor y el caso ms habitual. No funcionales. Describen atributos del sistema o atributos del ambiente del sistema y generalmente no son establecidas por el usuario. Implcitos. Son los que se asumen que el software debe de tener. Extras. Agregados que generan valor al producto de software. rafa: REQUERIMIENTOS FUNCIONALES Y NO FUNCIONALES A menudo, los requerimientos de sistemas software se clasifican en funcionales y no funcionales, o como requerimientos del dominio: 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 cmo se debe comportar en situaciones particulares. En algunos casos, los requerimientos funcionales de los sistemas tambin pueden declarar explcitamente 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 estndares. Los requerimientos no funcionales a menudo se aplican al sistema en su totalidad. Normalmente apenas se aplican a caractersticas o servicios individuales del sistema. 3. Requerimientos del dominio. Son requerimientos que provienen del dominio de aplicacin del sistema y que reflejan las caractersticas y restricciones de ese dominio. Pueden ser funcionales o no funcionales. En realidad, la distincin entre diferentes tipos de requerimientos no es tan clara como sugieren estas definiciones. Por ejemplo. un requerimiento del usuario sobre seguridad podra parecer un requerimiento no funcional. Sin embargo, cuando se desarrolla en detalle, puede generar otros requerimientos que son claramente funcionales, como la necesidad de incluir en el sistema recursos para la autentificacin del usuario.
REQUERIMIENTOS FUNCIONALES

Los requerimientos funcionales de un sistema describen lo que el sistema debe hacer. Estos requerimientos dependen del tipo de software que se desarrolle, de los posibles usuarios del software y del enfoque general tomado por la organizacin al redactar requerimientos. Cuando se expresan como requerimientos del usuario, habitualmente se describen de una forma bastante abstracta. Sin embargo. los requerimientos funcionales del sistema describen con detalle la funcin de ste, sus entradas y salidas, excepciones, etctera. Los requerimientos funcionales para un sistema software se pueden expresar de diferentes formas. A continuacin se presentan algunos ejemplos de estos requerimientos funcionales para un sistema de biblioteca universitario, denominado LIBSYS y utilizado por estudiantes y personal docente que solicitan libros y documentos de otras bibliotecas. l. El usuario deber tener la posibilidad de buscar en el conjunto inicial de la base de datos o seleccionar un subconjunto de ella. 2. El sistema deber proporcionar visores adecuados para que el usuario lea documentos en el almacn de documentos. 3. A cada pedido se le deber asignar un identificador nico (ID_PEDIDO), que el usuario podr copiar al rea de almacenamiento permanente de la cuenta. Estos requerimientos funcionales del usuario definen los recursos especficos que el sistema debe proporcionar. Dichos requerimientos se toman del documento de requerimientos del usuario, e ilustran los diferentes niveles de detalle en que se pueden redactar los requerimientos funcionales (contraste los requerimientos l y 3). El sistema LIBSYS es una interfaz nica para diferentes bases de datos de artculos. Esto permite a los usuarios descargar copias de artculos publicados en revistas, peridicos y publicaciones cientficas. Una descripcin ms detallada de los requerimientos para el sistema en el cual se basa LIBSYS se puede ver en mi libro con Gerald Kotonya sobre ingeniera de requerimientos (Kontonya y Sommerville, 1998). La impresin en la especificacin de requerimientos es la causa de muchos de los problemas de la ingeniera del software. Para un desarrollador de sistema es natural dar interpretaciones de un requerimiento ambiguo con el fin de simplificar su implementacin. Sin embargo, a menudo no es lo que el cliente desea. Se deben establecer nuevos requerimientos y hacer cambios en el sistema. Por supuesto, esto retrasa la entrega de ste e incrementa los costes. Considere el segundo ejemplo de los requerimientos para el sistema de biblioteca que se refiere a los visores adecuados que debe proporcionar el sistema. El sistema de biblioteca puede mostrar documentos en diferentes formatos; la intencin de este requerimiento es que los visores para todos estos formatos estn disponibles. Sin embargo, el requerimiento est ambiguamente redactado; no clarifica que se deben proporcionar los visores de cada formato. Un desarrollador bajo la presin del tiempo sencillamente podra proporcionar un visor de texto y atinar que se ha cumplido el requerimiento. En principio, la especificacin de requerimientos funcionales de un sistema debe estar completa y ser consistente. La completitud significa que todos los servicios solicitados por el usuario deben estar definidos. La consistencia significa que los requerimientos no deben tener definiciones contradictorias. En la prctica, para sistemas grandes y complejos, es prcticamente imposible alcanzar los requerimientos de consistencia y completitud. Una razn de esto es que es fcil cometer errores y omisiones cuando se redactan especificaciones para sistemas grandes y complejos. Otra razn es que los stakeholders del sistema tienen necesidades diferentes, y a menudo contradictorias. Estas contradicciones

pueden no ser obvias cuando los requerimientos se especifican por primera vez, por lo que se incluyen requerimientos contradictorios en la especificacin. Es posible que los problemas surjan solamente despus de un anlisis ms profundo o, a veces, despus de que se termine el desarrollo y el sistema se entregue al cliente.
REQUERIMIENTOS NO FUNCIONALES

Los requerimientos no funcionales, como su nombre sugiere, son aquellos requerimientos que no se refieren directamente a las funciones especficas que proporciona el sistema, sino a las propiedades emergentes de ste como la fiabilidad, el tiempo de respuesta y la capacidad de almacenamiento. De forma alternativa, definen las restricciones del sistema como la capacidad de los dispositivos de entrada/salida y las representaciones de datos que se utilizan en las interfaces del sistema. Los requerimientos no funcionales rara vez se asocian con caractersticas particulares del sistema. Ms bien, estos requerimientos especifican o restringen las propiedades emergentes del sistema. Por lo tanto, pueden especificar el rendimiento del sistema, la proteccin, la disponibilidad, y otras propiedades emergentes. Esto significa que a menudo son ms crticos que los requerimientos funcionales particulares. Los usuarios del sistema normalmente pueden encontrar formas de trabajar alrededor de una funcin del sistema que realmente no cumple sus necesidades. Sin embargo. el incumplimiento de un requerimiento no funcional puede significar que el sistema entero sea inutilizable. Por ejemplo, si un sistema de vuelo no cumple sus requerimientos de fiabilidad, no se certificar como seguro para el funcionamiento; si un sistema de control de tiempo real no cumple sus requerimientos de rendimiento, las funciones de control no funcionarn correctamente. Los requerimientos no funcionales no slo se refieren al sistema software a desarrollar. Algunos de estos requerimientos pueden restringir el proceso que se debe utilizar para desarrollar el sistema. Ejemplos de requerimientos de procesos son la especificacin de los estndares de calidad que se deben utilizar en el proceso, una especificacin que el diseo debe producir con una herramienta CASE particular y una descripcin del proceso a seguir. Ian Sommerville, "Ingeniera de Software", 7ma edicin. Cerrada Jos A. "Introduccion a la ingenieria de software".