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
Publicar un comentario