Considere el siguiente requerimiento que fue planteado como parte de un sistema de Comercio Electrónico para una farmacia. Indique si el requerimiento es Funcional o No Funcional y si cumple con todas las características (no ambiguo, completo, correcto, factible, cksk vistas en clase para los requerimientos, justificando su respuesta.
Para determinar si un requerimiento es funcional o no funcional, debemos entender las diferencias. Un requerimiento funcional describe lo que el sistema debe hacer, es decir, las funcionalidades que debe ofrecer al usuario. Ejemplos de requerimientos funcionales incluyen "el sistema debe permitir a los usuarios registrarse", "el sistema debe mostrar una lista de productos disponibles", etc. Por otro lado, un requerimiento no funcional describe cómo debe funcionar el sistema, incluyendo características como rendimiento, usabilidad, seguridad, entre otros. Por ejemplo, "el sistema debe responder en menos de 2 segundos" es un requerimiento no funcional.
Para analizar si un requerimiento cumple con las características de ser no ambiguo, completo, correcto, factible, y, al menos, dos de las otras "C" que se ponen en práctica en la recolección de requisitos, procederemos de la siguiente manera:
1. **No ambiguo**: El requerimiento debe estar redactado de manera que no haya lugar a interpretaciones. Si el requerimiento dice, por ejemplo, "el sistema debe permitir la compra de medicamentos", no es ambiguo. Sin embargo, si dice "el sistema debe ser bueno en ventas", eso es ambiguo.
2. **Completo**: Debe incluir toda la información necesaria para su implementación. Un requerimiento como "el sistema debe permitir al usuario buscar medicamentos" podría no ser completo si no especifica como debe ser la búsqueda (por nombre, por tipo, etc.).
3. **Correcto**: Esto significa que el requerimiento debe ser consistente con los objetivos del sistema. Si se define una funcionalidad que no se alinea con el propósito del comercio electrónico, no es correcto.
4. **Factible**: El requerimiento debe ser posible de implementar dentro de las limitaciones del proyecto, incluyendo tiempo y recursos. "El sistema debe integrarse con el servicio de entrega a domicilio del país X" es factible si hay un API disponible.
5. **Otras "C":** Puede ser, por ejemplo, el ser verificado, si se puede validar que efectivamente el requerimiento se cumpla.
Supongamos que el requerimiento especificado es: "El sistema debe permitir a los usuarios registrar y comprar medicamentos en línea utilizando tarjeta de crédito".
- **Funcionalidad**: Este requerimiento es funcional porque describe una acción específica que el sistema debe realizar.
- **No ambiguo**: Está claro que los usuarios deben poder registrar medicamentos y realizar compras; no hay ambigüedad.
- **Completo**: Aunque da una idea general, podría no ser completo si no especifica si debe haber medidas de verificación (validación de tarjeta, autenticación, etc.).
- **Correcto**: Alineado con el objetivo de un sistema de comercio electrónico, sí es correcto.
- **Factible**: Si se dispone de los sistemas de pago necesarios, es factible.
- **Verificable**: Se puede probar si los usuarios pueden registrar y comprar medicamentos.
Si se necesita más profundidad en alguno de estos aspectos, por favor házmelo saber. Esto también puede iniciar una conversación sobre las aptitudes interpersonales necesarias para trabajar en equipo, como la comunicación clara entre desarrolladores y stakeholders para evitar malentendidos en los requerimientos.