1er PA- Características y tipos de requisitos para el desarrollo de software - Unidad 3



En la ingeniería de sistemas, un requisito es una necesidad documentada sobre el contenido, forma o funcionalidad de un producto o servicio. Se usa en un sentido formal en la ingeniería de sistemas, ingeniería de software e ingeniería de requisitos.

En la ingeniería clásica, los requisitos se utilizan como datos de entrada en la etapa de diseño del producto. Establecen qué debe hacer el sistema, pero no cómo hacerlo.

La fase de captura, felicitación y registro de requisitos puede estar precedida por una fase de análisis conceptual del proyecto. Esta fase puede dividirse en recolección de requisitos, análisis de consistencia e integridad, definición en términos descriptivos para los desarrolladores y un esbozo de especificación, previo al diseño completo.

Características

Los requisitos bien formulados deben satisfacer varias características. Si no lo hacen, deben ser reformulados hasta hacerlo.

Necesario: Lo que pida un requisito debe ser necesario para el producto.

No ambiguo: El texto debe ser claro, preciso y tener una única interpretación posible.

Conciso: Debe redactarse en un lenguaje comprensible por los inversores en lugar de uno de tipo técnico y especializado, aunque aun así debe referenciar los aspectos importantes.

Consistente: Ningún requisito debe entrar en conflicto con otro requisito diferente, ni con parte de otro. Asimismo, el lenguaje empleado entre los distintos requisitos debe ser consistente también.

Completo: Los requisitos deben contener en sí mismos toda la información necesaria, y no remitir a otras fuentes externas que los expliquen con más detalle.

Alcanzable: Un requisito debe ser un objetivo realista, posible de ser alcanzado con el dinero, el tiempo y los recursos disponibles.

Verificable: Se debe poder verificar con absoluta certeza, si el requisito fue satisfecho o no. Esta verificación puede lograrse mediante inspección, análisis, demostración o testeo.

Estas características suelen ser subjetivas, es decir, no pueden ser calculadas de forma automática por ningún sistema. Por ello, se tiende a utilizar métricas o indicadores que sí que pueden ser calculados de forma automática y que, de algún modo, pueden contribuir a ponderar las anteriores características.


 

Tipos de requisitos

Requisitos funcionales

Requisitos que se relacionan a aspectos funcionales del software irían en esta categoría.

Definen las funciones y la funcionalidad en y desde el sistema de software o también es la definición de los servicios que el sistema debe proporcionar, cómo debe reaccionar a una entrada particular y cómo se debe comportar ante situaciones particulares

Ejemplos -

·        Buscar una opción dada al usuario para buscar desde varias facturas.

·        El usuario debe ser capaz de enviar por correo electrónico cualquier informe a la Dirección.

·        Los usuarios se pueden dividir en grupos y los grupos pueden tener derechos diferentes.

·        Debe cumplir reglas empresariales y funciones administrativas.

·        El Software se desarrolla manteniendo intacta la compatibilidad en descenso.

Requisitos no funcionales

Los requisitos no funcionales, como su nombre lo indica, son aquellos requerimientos que no se refieren directamente a las funciones detalladas que realiza el sistema, sino a las propiedades de éste como el tiempo de respuesta, la capacidad de almacenamiento y otros aspectos como el diseño, aspectos éticos, legales, de seguridad y ese tipo de cosas que no tienen que ver directamente con funciones del sistema. 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. 

A los requisitos no funcionales se los puede dividir en:

Requisitos de producto: Estos especifican el comportamiento del producto.

Requisitos de organización: Se derivan de las políticas y procedimientos existentes en la organización del cliente y en la del desarrollador.

Requisitos externos: Son los requisitos que derivan de los factores externos al sistema y de su proceso de desarrollo, incluyen requerimientos de interoperabilidad que definen la manera en que el sistema interactúa con los otros sistemas de la organización. 

Los requisitos no funcionales incluyen -

  • Seguridad
  • Acceso
  • Almacenaje
  • Configuración
  • Actuación
  • Coste
  • Interoperabilidad
  • Flexibilidad
  • Recuperación de desatre
  • Accessibilidad

Los requisitos se categorizan de forma lógica como

·        Tienen que tener : El Software no puede ser operacional sin ellos.

·        Deben tener : Motivando la funcionalidad del software.

·        Pueden tener : El Software aún puede funcionar bien con estos requisitos.

·        Lista de deseo : Estos requisitos no contienen ningún objetivo de software.

Mientras se desarrolla el software, el ‘tiene que tener’ se debe implementar, el ‘debe tener’ es un asunto de debate y negociación, en cambio el ‘puede tener’ y la ‘lita de deseo’ se pueden mantener para futuras actualizaciones del software.


Requisitos del Usuario: Los requisitos del usuario para un sistema deben describir los requerimientos funcionales y no funcionales de tal forma que sean comprensibles por los usuarios del sistema sin conocimiento técnico detallado. Únicamente deben especificar el comportamiento externo del sistema y deben evitar, tanto como sea posible, las características de diseño del sistema. Por consiguiente, si se están redactando requerimientos del usuario, no se debe utilizar vocabulario del software, notaciones estructuradas o formales, o describir los requerimientos por la descripción de la implementación del sistema. Deben redactarse en un lenguaje sencillo, con tablas y formularios sencillos y diagramas intuitivos.

 Requisitos del Sistema: Los requisitos del sistema son versiones extendidas de los requerimientos del usuario que son utilizados por los ingenieros de software como punto de partida para el diseño del sistema. Agregan detalle y explican cómo el sistema debe proporcionar los requerimientos del usuario. Pueden ser utilizados como parte del contrato para la implementación del sistema y, por lo tanto, deben ser una especificación completa y consistente del sistema entero. En teoría, los requerimientos del sistema simplemente deben describir el comportamiento externo del sistema y sus restricciones operativas. No deben tratar de cómo se debe diseñar o implementar el sistema. Sin embargo, en el nivel de detalle requerido para especificar completamente un sistema software complejo, es imposible, en la práctica, excluir toda la información de diseño.

Requerimientos del Dominio: Son requerimientos que provienen del dominio de aplicación del sistema y que reflejan las características de ese dominio. Éstos pueden ser funcionales o no funcionales. Se derivan del dominio del sistema más que de las necesidades específicas de los usuarios. Pueden ser requerimientos funcionales nuevos, restringir los existentes o establecer cómo se deben ejecutar cálculos particulares. Los requerimientos del dominio son importantes debido a que a menudo reflejan los fundamentos del dominio de aplicación. Si estos requerimientos no se satisfacen, es imposible hacer que el sistema trabaje de forma satisfactoria. Ejemplo en un Sistema de Biblioteca, este deberá proveer visores para que el usuario lea documentos en el almacén de documentos.


Jesus Aguilar Ramos. (2017, November 29). 3.1 Características de los requisitos. Blogspot.com; Blogger. https://aguilarramosjesusfis.blogspot.com/2017/11/ingenieria-de-requisitos.html

3.1.- Características de los requisitos. (2017). Blogspot.com. https://andoniandresperezdominguezfis.blogspot.com/2017/11/31-caracteristicas-de-los-requisitos.html

juana Hernandez Hernandez. (2021, October 8). UNIDAD II INGENIERIA DE REQUISITOS. Blogspot.com. https://ithuejutlajhh.blogspot.com/2013/03/unidad-ii-ingenieria-de-requisitos.html#:~:text=Entonces%2C%20la%20tarea%20m%C3%A1s%20importante%20que%20el%20ingeniero,2%20categor%C3%ADas%3A%20requerimientos%20funcionales%20y%20requerimientos%20no%20funcionales.

Software - Requisitos. (2021). Tutorialspoint.com. https://www.tutorialspoint.com/es/software_engineering/software_requirements.htm

Comentarios

Entradas más populares de este blog

2do PA- Diferentes tareas y técnicas que se utilizan en la ingeniería de requisitos para el desarrollo de software - Unidad 3