Los requerimientos son las descripciones que hace el usuario a los desarrolladores de software de las necesidades que tiene frente a un producto, estos requerimientos originan requisitos que se deben llevar a cabo para poder llegar a cumplir los requerimientos.
Cuando nos referimos a las peticiones, es decir a lo que quiere el cliente, estaríamos hablando de requerimientos y cuando nos referimos a lo que se necesita para cumplir las peticiones del usuario nos referimos a los requisitos.
Un ejemplo de ambos sería: Si un usuario solicita el desarrollo de un sitio web, esta petición se convierte en un requerimiento que, a su vez, genera como requisitos, contar con un lenguaje de programación específico para el desarrollo web, así como la determinación detallada de sus funcionalidades y aspectos de seguridad, entre otros requisitos.
Requerimientos (Requerimientos del usuario) | Requisitos (Requerimientos del sistema) |
---|---|
Nos indican qué debe hacer el sistema | Nos indican como hacer el software |
Enunciado abstracto de más alto nivel de un servicio que debe proporcionar un software y de las restricciones con las que opera. | Son descripciones más detalladas de funciones, servicios y restricciones operacionales del software. |
Se expresan en un lenguaje más natural. | Se definen en un Documento de Requisitos |
El dominio de la aplicación es la parte particular del mundo en la cual el cliente está interesado. Es la porción relevante del problema. Gente, productos, otros sistemas que interactúan con el sistema.
El universo del discurso es todo el contexto en el cual el software se desarrolla e incluye todas las fuentes de información y todas las personas relacionadas con el software. Es la realidad acotada por el conjunto de objetivos establecidos por quienes demandan una solución de software. Las personas involucradas en el proceso de desarrollo son principalmente: usuarios, clientes, ingenieros de software, expertos del dominio.
La ingeniería de requisitos es una disciplina fundamental en el desarrollo de software, ya que se enfoca en establecer lo que el cliente requiere de un sistema de software. Esto implica determinar los servicios que el cliente necesita que el sistema provea, así como los límites en los que el sistema debe operar y desarrollarse.
La ingeniería de requisitos se lleva a cabo en la etapa inicial del proceso de ingeniería de software, conocida como la etapa de especificación de requisitos. Esta etapa se sitúa antes del diseño e implementación del software y es fundamental para comprender las necesidades de los usuarios y establecer los requisitos del sistema que se va a desarrollar, para asi no arrastrar problemas a futuras etapas.
Tiene la función de capturar, analizar, documentar y gestionar los requisitos del software, estableciendo las bases para el diseño, desarrollo e implementación exitosos del sistema.
Los requisitos funcionales son declaraciones de los servicios que debe proporcionar el sistema.
Ejemplo: El sistema de gestión de ventas debe permitir a los usuarios registrar pedidos de clientes, calcular el total de la venta y generar una factura electrónica.
Explicación: El ejemplo representa un requisito funcional porque describe un servicio o función específica que el sistema debe proporcionar, en este caso, la capacidad de registrar pedidos, realizar cálculos y generar facturas electrónicas.
Los requisitos No-funcionales son restricciones de los servicios o funciones ofrecidos por el sistema. Incluyen restricciones de tiempo, sobre el proceso de desarrollo y estándares. No son tan explícitos y por eso son difíciles de detectar.
Ejemplo: El sistema de reservas de vuelos debe tener un tiempo de respuesta de menos de 2 segundos para mostrar los resultados de búsqueda.
Explicación: El ejemplo representa un requisito no funcional porque establece una restricción sobre el servicio ofrecido por el sistema, en este caso, el tiempo de respuesta máximo permitido. No se trata de una función específica, sino de una restricción de rendimiento que debe cumplirse para garantizar la eficiencia y la experiencia del usuario.