3
Requisitos funcionales Los usuarios comprarán créditos para adquirir canciones. Requisitos funcionales • El sistema debe registrar la información de los usuarios y los créditos que poseen. • El sistema debe permitir que los usuarios registrados compren créditos y proporcionar las herramientas para que las usuarios paguen. Los usuarios buscarán las canciones que deseen y las pagarán con créditos. El sistema debe almacenar información sobre las canciones que se pueden adquirir y su precio en créditos. • El sistema debe permitir a los usuarios buscar y consultar la información 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 Orgánica de Datos Personales y en el Reglamento de medidas de seguridad. El sistema no debe tardar más de cincosegundos en mostrar los resultados de una búsqueda. Si se supera este plazo, el sistema detiene la búsqueda y muestra los resultados encontrados. El sistema deberá almacenar la información personal de los pacientes. • El sistema deberá poder desplegar la historia clínica en cualquiera de los nodos de acceso. • El sistema deberá registrar cualquier acceso o modificación sobre una historia clínica 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 organización 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 función de éste, sus entradas y salidas, excepciones, etcétera. Los requerimientos funcionales para un sistema software se pueden ex.presar de diferentes formas. A continuación 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 almacén 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 específicos 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 artículos. Esto permite a los usuarios descargar copias de artículos publicados en revistas. periódicos y publicaciones científicas. Una descripción más detallada de los requerimientos para el sistema en el cual se basa LIBSYS se puede ver en mi libro con Gerald Kotonya sobre ingeniería de requerimientos (Kontonya y Sommerville, 1998). La impresión en la especificación de requerimientos es la causa de muchos de los problemas de la ingeniería del software. Para un desarrollador de sistema"! 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 deben establecer nuevos requerimientos y hacer cambios en el sistema. Por supuesto. esto retra"!a la entrega de éste e incrementa los costes.

Requisitos Funcionales

Embed Size (px)

Citation preview

Page 1: Requisitos Funcionales

Requisitos funcionalesLos usuarios comprarán créditos para adquirir canciones.

Requisitos funcionales• El sistema debe registrar la información de los usuarios y los créditos que poseen.• El sistema debe permitir que los usuarios registrados compren créditos y proporcionar las herramientas para que las usuarios paguen.

Los usuarios buscarán las canciones que deseen y las pagarán con créditos.El sistema debe almacenar información sobre las canciones que se pueden adquirir y su precio en créditos.• El sistema debe permitir a los usuarios buscar y consultar la información sobre las canciones.Requisitos no funcionalesEl 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 Orgánica de Datos Personales y en el Reglamento de medidas de seguridad.

El sistema no debe tardar más de cincosegundos en mostrar los resultados de una búsqueda. Si se supera este plazo, el sistema detiene la búsqueda y muestra los resultados encontrados.El sistema deberá almacenar la información personalde los pacientes.• El sistema deberá poder desplegar la historia clínica en cualquiera de los nodos de acceso.• El sistema deberá registrar cualquier acceso o modificación sobre una historia clínica

Requerimientos funcionalesLos 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 organización 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 función de éste, sus entradas y salidas, excepciones, etcétera.Los requerimientos funcionales para un sistema software se pueden ex.presar de diferentes formas. A continuación 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 almacén de documentos.3. A cada pedido se le deberá asignar un identificador único (ID_PEDIDO), que el usuariopodrá copiar al área de almacenamiento permanente de la cuenta.Estos requerimientos funcionales del usuario definen los recursos específicos 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 requerimientosfuncionales (contraste los requerimientos l y 3).El sistema LIBSYS es una interfaz única para diferentes bases de datos de artículos. Esto permite a los usuarios descargar copias de artículos publicados en revistas. periódicos y publicaciones científicas. Una descripción más detallada de los requerimientos para el sistemaen el cual se basa LIBSYS se puede ver en mi libro con Gerald Kotonya sobre ingeniería de requerimientos (Kontonya y Sommerville, 1998).La impresión en la especificación de requerimientos es la causa de muchos de los problemas de la ingeniería del software. Para un desarrollador de sistema"! es natural dar interpretaciones de un requerimiento ambiguo con el fin de simplificar su implementación. Sin embargo. a menudono es lo que el cliente desea. Se deben establecer nuevos requerimientos y hacer cambios en el sistema. Por supuesto. esto retra"!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 biblioteca6.1 • Requerimientos funcionales y no funcionales 111puede mostrar documentos en diferentes fonnatos; la intención de este requerimiento es que los visores para todos estos fonnatos estén disponibles. Sin embargo, el requerimiento está ambiguamente redactado; no clarifica que se deben proporcionar los visores de cada fonnatooUn desarrollador bajo la presión del tiempo sencillamente podría proporcionar un visor de texto y atinnar que se ha cumplido el requerimiento.En principio, la especificación 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 tenerdefiniciones contradictorias. En la práctica, para sistemas grandes y complejos, es prácticamente imposible alcanzar los requerimientos de consistencia y completitud.Una razón de esto es que es fácil cometer errores y omisiones cuando se redactan especificaciones para sistemas grandes y complejos. Otra razón es que los stakeholders del sistema (véase el Capítulo 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 especificación. Es posible que los problemas surjan solamente después de un análisis más profundo o, a veces, después de que se tennine el desarrollo y el sistema se entregue al cliente.

6.1.2 Requerimientos no funcionalesLos requerimientos no funcionales, como su nombre sugiere, son aquellos requerimientos que no se refieren directamente a las funciones específicas que proporciona el sistema, sino a las propiedades emergentes de éste como la fiabilidad, el tiempo de respuesta y la capacidad de

Page 2: Requisitos Funcionales

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 características particulares del sistema. Más bien, estos requerimientos especifican o restringen las propiedades emergentes del sistema. como se explicó en el Capítulo 2. Por lo tanto, pueden especificar el rendimiento del sistema, la protección, la disponibilidad, y otras propiedades emergentes. Esto significa que a menudo son más críticos que los requerimientos funcionales particulares.Los usuarios del sistema nonnalmente pueden encontrar fonnas de trabajar alrededor de una función del si~tema 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 funcionarán correctamente.Los requerimientos no funcionales no sólo 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 especificación de los estándares de calidad que se deben utilizar en el proceso, una especificación que el diseño debe producir con una herramienta CASE particular y una descripción del proceso a seguir.Los requerimientos no funcionales surgen de las necesidades 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 software o hardware, o a factores externos como regulaciones de segu

ridad o legislaciones sobre privacidad. La Figura 6.3 es una clasificación de los requerimientos no funcionales. Puede verse en este diagrama que los requerimientos no funcionales pueden venir de las características requeridas del software (requerimientos del producto), de la organizaciónque 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 rapidez de ejecución del sistema y cuánta memoria se requiere; los requerimientos de fiabilidadque 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 políticas y procedimientos existentes en la organización del cliente y en la del desarrollador. Algunos ejemplos son los estándares en los procesos que deben utilizarse; los requeri· mientos de implementación. como los lenguajes de programación o el método de diseño a utilizar, y los requerimientos de entrega que especifican cuándo se entregaráel producto y su documentación.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 interactúa 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 público en general.