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

Requisitos funcionales Los usuarios comprarn crditos para adquirir canciones.

Requisitos funcionales El sistema debe registrar la informacin de los usuarios y los crditos que poseen. El sistema debe permitir que los usuarios registrados compren crditos y proporcionar las herramientas para que lasusuarios paguen. Los usuarios buscarn las canciones que deseen y las pagarn con crditos. El sistema debe almacenar informacin sobre las canciones que se pueden adquirir y su precio en crditos. El sistema debe permitir a los usuarios buscar y consultar la informacin sobre las canciones. Requisitos no funcionales El sistema debe visualizarse y funcionar correctamente en cualquier navegador, especialmente en Internet Explorer, Firebird, Mozilla y Nautilus. El sistema debe cumplir las disposiciones recogidas en la Ley Orgnica de Datos Personales y en el Reglamento de medidas de seguridad. El sistema no debe tardar ms de cincosegundos en mostrar los resultados de una bsqueda. Si se supera este plazo, el sistema detiene la bsqueda y muestra los resultados encontrados. El sistema deber almacenar la informacin personal de los pacientes. El sistema deber poder desplegar la historia clnica en cualquiera de los nodos de acceso. El sistema deber registrar cualquier acceso o modificacin sobre una historia clnica

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 ex.presar de diferentes formas. A continuacin se presentan algunos ejemplos de estos requerimientos funcionales para un sistema de biblioteca universitario, denominado LIBSYS, 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. peridicosy 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. estoretra"!a 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
6.1 Requerimientos funcionales y no funcionales 111

puede mostrar documentos en diferentes fonnatos; la intencin de este requerimiento es que los visores para todos estos fonnatos estn disponibles. Sin embargo, el requerimiento est ambiguamente redactado; no clarifica que se deben proporcionar los visores de cada fonnatoo Un desarrollador bajo la presin del tiempo sencillamente podra proporcionar un visor de texto y atinnar 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 stakeholdersdel sistema (vase el Captulo 7) 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 tennine el desarrollo y el sistema se entregue al cliente.

6.1.2 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 laspropiedades emergentes de ste como la fiabilidad, el tiempo de respuesta y la capacidad de

almacenamiento. De fonna 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. como se explic en el Captulo 2. 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 nonnalmente pueden encontrar fonnas de trabajar alrededor de una funcin del si~temaque 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. Los requerimientos no funcionales surgen de las necesidades del usuario, debido a las restricciones en el presupuesto, a las polticas de la organizacin, a la necesidad de interoperabilidad con otros sistemas software o hardware, o a factores externos como regulaciones de segu

ridad o legislaciones sobre privacidad. La Figura 6.3 es una clasificacin de los requerimientos no funcionales. Puede verse en este diagrama que los requerimientos no funcionales pueden venir de las caractersticas requeridas del software (requerimientos del producto), de la organizacin que desarrolla el software (requerimientos organizacionales) o de fuentes externas. Los tipos de requerimientos no funcionales son: l. Requerimientos del producto. Estos requerimientos especifican el comportamiento del producto. Algunos ejemplos son los requerimientos de rendimiento en la rapidezde ejecucin del sistema y cunta memoria se requiere; los requerimientos de fiabilidad que fijan la tasa de fallos para que el sistema sea aceptable; los requerimientos de portabilidad, y los requerimientos de usabilidad. 2. Requerimientos organi:acionales. Estos requerimientos se derivan de polticas y procedimientos existentes en la organizacin del cliente y en la del desarrollador. Algunos ejemplos son los estndares en los procesos que deben utilizarse; los requeri mientos de implementacin. como los lenguajes de programacin o el mtodo de diseo a utilizar, y los requerimientos de entrega que especifican cundo se entregar el producto y su documentacin. 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 interacta 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 a'iegurar que ser aceptado por sus usuarios y por el pblico en general.