Está en la página 1de 9

REQUERIMIENTOS. Tal vez el principal problema al que nos enfrentamos en el desarrollo de sistemas grandes y complejos es el de la ingenieria de requerimientos.

Esta trata de establecer lo que el sistema debe hacer, sus propiedades emergentes deseadas y esenciales, y las restricciones en el funcionamiento del sistema y los procesos de desarrollo del software. Por lo tanto puede considerar la ingeniera de requerimientos como el proceso de comunicacin entre los clientes y el usuario del software y los desarrolladores del mismo. La ingeniera de requerimientos no es simplemente un proceso tcnico. Los requerimientos del sistema estn influenciados por las preferencias, aversiones y prejuicios de los usuarios y por cuestiones polticas y organizacionales. Estas son caractersticas fundamentales humanas, y las nuevas tecnologas, como los casos de uso, los escenarios y los mtodos formales, no nos ayudan mucho en la resolucin de estos problemas espinosos. REQUERIMIENTOS DEL SOFTWARE. Los requerimientos para un sistema son la descripcin de os servicios proporcionados por el sistema y sus restricciones operativas. Estos requerimientos reflejan las necesidades de los clientes de un sistema que ayude a resolver algn problema como el control de un dispositivo, hacer un pedido o encontrar informacin. El proceso de descubrir, analizar, documentar y verificas estos servicios y restricciones se denomina como Ingenieria de Requerimientos (ER), El termino requerimiento no se utiliza de una forma constante en la industria del software. En algunos casos, un requerimiento es simplemente una declaracin abstracta de alto nivel de un servicio que debe proporcionar el sistema o una restriccin de este. En el otro extremo, es una definicin detallada y formal de una funcin del sistema. Si una compaa desea establecer un contrato para un proyecto de desarrollo de software grande, debe definir de una forma suficientemente abstracta para establecer a partir de una solucin. Los requerimientos deben redactarse de tal forma que varios contratistas pueden licitar el contrato, ofreciendo, quizs, formas diferentes de cumplir las necesidades de los clientes en la organizacin. Una vez que el contrato se asigna, el contratista debe redactar una definicin del sistema para el cliente mas detalladamente de forma que este comprenda y pueda validar lo que hara el software. Ambos documentos se pueden denominar documento de requerimientos para el sistema. Algunos de los problemas que surgen durante el proceso de IR son resultado de no hacer una clara separacin entre estos diferentes niveles de descripcin. Aqu se distinguen utilizando la denominacin de requerimientos del usuario para designar los requerimientos abstractos de alto nivel, y requerimientos del sistema para designar la descripcin detallada de o que el sistema debe hacer. Los requerimientos del usuario y del sistema se pueden definir como se muestra a continuacin: 1. Los requerimientos de usuario son declaraciones, en lenguaje natural y en diagramas, de los servicios que se espera que el sistema proporcione y de las restricciones bajo las cuales debe funcionar.

2. Los requerimientos del sistema establecen con detalle las funciones, servicios y restricciones operativas del sistema. El documento de requerimientos del sistema (algunas veces denominado especificacin funcional) debe ser preciso. Debe definir exactamente que es lo que se va a implementar. Puede ser parte del contrato entre el comprador del sistema y los desarrolladores del software. Diferentes niveles de especificacin del sistema son de utilidad debido a que comunican la informacin del sistema a diferentes tipos de lectores. Es necesario redactar los requerimientos en diversos niveles de detalle debido a que diferentes tipos de lectores los utilizan de distinta manera. Los lectores de los requerimientos de usuario normalmente no tratan de como se implementara el sistema y pueden ser administradores que no estn interesados en los recursos detallados del sistema. Los lectores de los requerimientos del sistema necesitan saber con mas precisin que hara el sistema debido a que estn interesados en como ayudara esto a los procesos de negocio o debido a que estn implicados en la implementacin del sistema. REQUERIMIENTOS FUNCIONALES Y NO FUNCIONALES. A menudo, los requerimientos del sistema de software se clasifican en funcionales y no funcionales, o como requerimientos del dominio> 1. Requerimientos funcionales. Son declaraciones de los servicios de debe proporcionar el sistema, de la manera en que este debe reaccionar a entradas particulares y de como de 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 autenticacin 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 este, sus entradas y salidas, excepciones, etc. La impresin en la especificacin de requerimientos es la causa de muchos de los problemas de la IS. Para un desarrollador de sistemas 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 este e incrementa los costes. En principio, la especificacin de requerimientos funcionales de un sistema debe estar completa y 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 practica, para sistemas grandes y complejos, es prcticamente imposible alcanzar los requerimientos de consistencia y completitud. Una razn de esto es que es fcil de 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 mas 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 especificas que proporciona el sistema, sino a las propiedades emergentes de este como la fiabilidad, el tiempo de respuesta y la capacidad de almacenamiento. De forma alternativa, definen las restricciones del sistema como a 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. Mas 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 mas 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 certificara como seguro para el funcionamiento, si un sistema de control de tiempo real no cumple sus requerimientos de rendimiento, las funciones de control no funcionaran correctamente. Los requerimientos no funcionales no solo 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 seguridad o legislaciones sobre privacidad. 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 son: 1. Requerimientos del producto. Especifican el comportamiento del producto. Algunos ejemplos son los requerimientos de rendimiento en la rapidez de ejecucin del sistema y cuanta 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 organizacionales. 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 requerimientos de implementacin, como los lenguajes de programacin o el mtodo de diseo a utilizar, y los requerimientos de entrega que especifican cuando se entregara el producto y su documentacin. 3. Requerimientos externos. Incluye todos los requerimientos que se derivan de factores externos al sistema y de su proceso de desarrollo. Estos pueden incluir los requerimientos de interoperabilidad que definan 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 asegurar que ser aceptado por sus usuarios y por el publico en general. Un problema comn con los requerimientos no funcionales es que pueden ser difciles de verificar. Los usuarios o clientes declaran a menudo estos requerimientos para recuperarse de los fallos o la respuesta rpida del usuario. Estas metas imprecisas causan problemas a los desarrolladores del sistema puesto que dejan abierta la posibilidad a interpretacin, lo que provoca discusiones subsecuentes una vez que el sistema se entrega. Siempre que sea posible, se deben redactar los requerimientos funcionales de manera cuantitativa para que se puedan probar de un modo objetivo. En la practica, sin embargo, los clientes de un sistema pueden encontrar prcticamente imposible traducir sus metas en requerimientos cuantitativos. Para algunas metas, como las de mantenibilidad, no existen mtricas que se puedan utilizar. En otros casos, aun cuando sea posible la especificacin cuantitativa, es posible que los clientes no puedan relacionar sus necesidades con estas especificaciones. No entienden lo que significa un cierto numero que define la fiabilidad requerida (por ejemplo) en funcin de su experiencia diaria con los sistemas

informticos. Adems, el coste de verificar de forma objetiva los requerimientos no funcionales cuantitativos puede ser muy alto, y los clientes que pagan el sistema quizs piensen que estos costes no son justificados. Por tanto los documentos de los requerimientos a menudo incluyen las declaraciones de las metas mezcladas con los requerimientos. Dichas metas pueden ser tiles para los desarrolladores puesto que dan idea de las prioridades del cliente. Sin embargo, siempre se les debe advertir que estn abiertas a interpretaciones errneas y que nos e pueden verificar de forma objetiva. A menudo, los requerimientos no funcionales entran en conflicto e interactan con otros requerimientos funcionales o no funcionales. Por ejemplo, puede haber un requerimiento que especifique que la capacidad mxima de memoria utilizada por un sistema no debe ser mayor a 4MB. Las restricciones de memoria son comunes en los sistemas embebidos donde el espacio y el peso estn limitados y de debe minimizar el numero de chips de ROM que almacenan el sistema software. Otro requerimiento podra ser que el sistema debe codificarse utilizando Ada, un lenguaje de programacin para el desarrollo de software critico de tiempo real. Sin embargo, puede que nos sea posible compilar con menos de 4MB un programa en Ada con la funcionalidad requerida. Por lo tanto, tiene que haber un equilibrio entre estos requerimientos> un lenguaje alternativo de desarrollo o un aumento en la memoria del sistema. Es de utilidad diferenciar los requerimientos funcionales y no funcionales en el documento de requerimientos. En la practica, esto es dificil. Si los requerimientos no funcionales se declaran de forma separada de los funcionales, algunas veces es difcil ver la relacin entre ellos. Si de declaran con los requerimientos funcionales, puede resultar difcil separar las consideraciones funcionales y no funcionales e identificar los requerimientos que se refieren al sistema como un todo. Sin embargo, se deben resaltar explcitamente los requerimientos que claramente se refieran a las propiedades emergentes del sistema, como el rendimiento o la fiabilidad. Se pueden hacer colocndolos en una seccin aparte o diferencindolos, de algina forma, de los otros requerimientos del sistema. Los requerimientos no funcionales como los requerimientos de seguridad y proteccin son especficamente importantes en los sistemas crticos. LOS REQUERIMIENTOS DEL DOMINIO. Los requerimientos del dominio se derivan del dominio de aplicacin del sistema mas que de las necesidades especificas de los usuarios. Normalmente incluyen terminologa especializada del dominio o referencias a conceptos del dominio. Pueden ser requerimientos funcionales nuevos, restringir los existentes o establecer como se deben ejecutar clculos particulares. Debido a que estos se especializan, a los ingenieros de software a menudo les resulta difcil entender como se relacionan con los otros requerimientos del sistema. Los requerimientos del dominio son importantes debido a que a menudo reflejan los fundamentos del dominio de aplicacin. Si estos requerimientos no se satisfacen, puede ser imposible hacer que el sistema funcione de forma satisfactoria.

REQUERIMIENTOS DEL USUARIO. Los requerimientos del usuario para un sistema deben describir los requerimientos funcionales y no funcionales de tal forma que sean comprensibles por los usuarios del sistema son conocimiento tcnico detallado. nicamente deben especificar el comportamiento externo del sistema y deben evitar, tanto como sea posible, las caractersticas de diseo del sistema. Por consiguiente, si se estn redactando requerimientos del usuario, no se debe utilizar jerga del software, notaciones estructuradas o formales, o describir los requerimientos por la descripcin de la implementacin del sistema. Deben redactarse en un lenguaje sencillo, son tablas y formularios sencillos y diagramas intuitivos. Sin embargo, pueden surgir diversos problemas cuando se redactan con frases del lenguaje natural en un documento de texto: 1. Falta de claridad. Algunas veces es difcil utilizar el lenguaje de forma precisa y no ambigua sin hacer el documento poso conciso y difcil de leer. 2. Confusin de requerimientos. No se distinguen claramente los requerimientos funcionales y no funcionales, las metas del sistema y la informacin para el diseo. 3. Conjuncin de requerimientos. Diversos requerimientos diferentes se pueden expresar de forma conjunta como un nico requerimiento. Para minimizar los malentendidos al redactar los requerimientos del usuario, se recomienda seguir algunas pautas sencillas: 1. Inventar un formato estndar y asegurar que todos los requerimientos de adhieren al formato. Estandarizar el formato hace que las omisiones sean menos probables y los requerimientos mas fciles de verificar. El formato utilizado muestra e; requerimiento inicial en negrita, incluyendo una declaracin del fundamento con cada requerimiento del usuario y una referencia a la especificacin mas detallada de los requerimientos del sistema. Tambin se puede incluir informacin sobre quien propuso el requerimiento (la fuente del requerimiento), de modo que se sepa a quien consultas si se tiene que cambiar el requerimiento. 2. Utilizar el lenguaje de forma consistente. Siempre debe distinguir entre los requerimientos deseables y los obligatorios. Los requerimientos obligatorios son los requerimientos a los que el sistema debe dar soporte y normalmente se redactan en futuro simple. Los requerimientos deseables no son fundamentales y se redactan en futuro condicional. 3. Resaltar el texto para distinguir las partes clave del requerimiento. 4. Evitar, hasta donde sea posible, el uso de jerga informtica. Sn embargo, inevitablemente se incluirn trminos tcnicos detallados en los requerimientos del usuario. REQUERIMIENTOS DEL SISTEMA. Los requerimientos del sistema son versiones extendidas de los requerimientos del usuario que son utilizados por los ingenieros de software como punto de partida para el diseo del sistema. Agregan detalle y explican como el sistema debe proporcionar los requerimientos del

usuario. Pueden ser utilizados como parte del contrato para la implementacin del sistema y, por lo tanto, deben ser una especificacin completa y consistente del sistema entero. En teora, los requerimientos del sistema simplemente deben describir el comportamiento externo del sistema y sus restricciones operativas. No deben tratar de como se debe disear o implementar el sistema. Sin embargo, en el nivel de detalle requerido para especificar completamente un sistema software complejo, es imposible, en la practica, excluir toda la informacin de diseo. Existen razones para esto: 1. Puede tener que disear una arquitectura inicial del sistema para ayudar a estructurar la especificacin de requerimientos. Los requerimientos del sistema se organizan conforme a los diferentes subsistemas que componen el sistema. 2. En muchos casos, los sistemas deben interoperar con otros ya existente. Esto restringe el diseo, y estas restricciones imponen requerimientos en el sistema nuevo. 3. Es necesario el uso de una arquitectura especifica para satisfacer los requerimientos no funcionales (como la programacin de n versiones para conseguir fiabilidad). Un regulador externo que necesita certificar que el sistema es seguro puede especificar que un diseo arquitectnico que ya ha sido certificado sea utilizado. A menudo se utiliza el lenguaje natural para redactar, adems de los requerimientos del usuario, las especificaciones de requerimientos del sistema. Sin embargo, debido a que los requerimientos del sistema son mas detallados que los requerimientos del usuario, las especificaciones en lenguaje natural pueden ser confusas y difciles de entender: 1. La comprensin del lenguaje natural depende de que los lectores y redactores de la especificacion utilicen las mismas palabras para el mismo concepto. Esto conduce a lamas interpretaciones debido a la ambigedad del lenguaje natural. 2. Una especificacin de requerimientos en lenguaje natural es demasiado flexible. Puede decir los mismo de formas completamente diferentes. Se deja al lector decidir cuando los requerimientos son los mismos y cuando diferentes. 3. No existe una forma fcil de modularizar los requerimientos en lenguaje natural. Puede ser difcil encontrar todos los requerimientos relacionados. Para descubrir la consecuencia de un cambio, puede ser necesario mirar todos los requerimientos en vez de solo un grupo de requerimientos relacionados. Debido a estos problemas, las especificaciones de requerimientos redactadas en lenguaje natural son propensas a malas interpretaciones. A menudo estas no se descubren hasta las fases posteriores del proceso del software, y resolverlas puede resultar muy costoso. Es esencial redactar los requerimientos del usuario en un lenguaje que los no especialistas puedan entender. Sin embargo, se pueden redactar los requerimientos del sistema en unas notaciones mas especializadas. Estas incluyen un lenguaje natural estructurado y estilizado, modelos graficos de los requerimientos como los casos de uso para las especificaciones matemticas formales. Ingenieria del Software. Ian Sommerville. 7ma edicin. Versin digitalizada.

DETERMINACION DE REQUERIMIENTOS. La determinacin de requerimientos es el estudio de un sistema para conocer como trabaja y donde es necesario efecturar mejoras. Los estudios de sistemas dan como resultado una evaluacin de la forma como trabajan los mtodos empleados y si es necesario o posible realizar ajustes. Un requerimiento es una caracterstica que debe de incluirse en un nuevo sistema. Esta puede ser la inclusin de determinada forma para capturar o procesar datos, producir informacin, controlar una actividad de la empresa o brindar soporte a la gerencia. REQUERIMIENTOS DE LAS TRANSACCIONES DE LOS USUARIOS. Los sistemas a niveld e transacciones, capturan, procesan y almacenan datos por alguna razn. Para entender los requerimientos de las transacciones, los analistas sin lugar a dudas formularan preguntas como las siguientes: Que es lo que forma parte de la transaccin que esta siendo procesada? Que es o que inicia la transaccin? Quien inicia los pedidos? Con que propsito? Con que frecuencia ocurren los pedidos? Que volumen esta asociado con cada pedido?

REQUERIMIENTOS DE DECISION DE LOS USUARIOS. A diferencia de las actividades de transaccin, las relacionadas con las decisiones no siguen un procedimiento especifico. Las rutinas no son muy claras y es posible que los controles sean vagos. Las decisiones se toman al integrar la informacin en forma tal que los gerentes puedan saber que acciones emprender. Es probable que los sistemas de decisin tengan que ver con el pasado, el presente o el futuro. Algunos brindan soporte para decisiones recurrentes (como el precio de la mercanca), mientras que otros son nicos y no recurrentes. Estos sistemas pueden utilizar datos que se originan dentro de las transacciones, o fuera de ella, por ejemplo asociaciones o fuentes comerciales. En algunos casos, se procesan datos de la transaccin para generar nueva informacin para la toma de decisiones. Los analistas que investigan sistemas para el soporte de decisiones deben formular las mismas preguntas sobre la frecuencia y volumen mencionadas anteriormente, pero tambin deben hacer otras para determinar los requerimientos de las decisiones: 1. Que informacin se utiliza para tomar la decisin? 2. Cual es la fuente de esa informacin? Que sistemas de transacciones producen los datos utilizados en el proceso de decisin? Que otros datos son necesarios y no es posible obtener del procesamiento de transacciones? Que datos se originan en fuentes externas a la organizacin? 3. Como se deben procesar los datos para producir la informacion necesaria? 4. Como se debe presentar la informacin? REQUERIMIENTOS DE TODA LA ORGANIZACIN.

En las empresas, los departamentos dependen unos de otros para brindar servicios, fabricar productos y satisfacer a los clientes. Por consiguiente, el trabajo hecho en un departamento afecta a los otros. Cuando los analistas estudian sistemas para un departamento tambin deben evaluar las implicaciones para los dems departamentos con los que interactua el sistema bajo investigacin. Algunas veces los sistemas abarcan el trabajo de varios departamentos. Es responsabilidad del analista identificar las dependencias entre los departamentos y determinar como los afecta un proyecto de sistemas. ANALISIS Y DISENO DE SISTEMAS DE INFORMACION. JAMES A. SENN. SEGUNDA EDICION. VERSION DIGITALIZADA.

También podría gustarte